Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Side by Side Diff: mojo/services/view_manager/view_manager_connection_unittest.cc

Issue 307003004: Fixes bug where IViewManagerClient could be messaged unnecessarily (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « mojo/services/view_manager/view_manager_connection.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/auto_reset.h" 8 #include "base/auto_reset.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 902 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 ASSERT_EQ(1u, changes.size()); 913 ASSERT_EQ(1u, changes.size());
914 EXPECT_EQ("HierarchyChanged change_id=1 node=1,2 new_parent=1,1 " 914 EXPECT_EQ("HierarchyChanged change_id=1 node=1,2 new_parent=1,1 "
915 "old_parent=null", changes[0]); 915 "old_parent=null", changes[0]);
916 } 916 }
917 917
918 // Delete 2. 918 // Delete 2.
919 { 919 {
920 ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 2))); 920 ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 2)));
921 EXPECT_TRUE(connection_->changes().empty()); 921 EXPECT_TRUE(connection_->changes().empty());
922 922
923 // TODO(sky): fix this, client should not get ServerChangeIdAdvanced. 923 connection2_->DoRunLoopUntilChangesCount(1);
924 connection2_->DoRunLoopUntilChangesCount(2);
925 const Changes changes(ChangesToDescription1(connection2_->changes())); 924 const Changes changes(ChangesToDescription1(connection2_->changes()));
926 ASSERT_EQ(2u, changes.size()); 925 ASSERT_EQ(1u, changes.size());
927 EXPECT_EQ("NodeDeleted change_id=2 node=1,2", changes[0]); 926 EXPECT_EQ("NodeDeleted change_id=2 node=1,2", changes[0]);
928 EXPECT_EQ("ServerChangeIdAdvanced 3", changes[1]);
929 } 927 }
930 } 928 }
931 929
932 // Verifies DeleteNode isn't allowed from a separate connection. 930 // Verifies DeleteNode isn't allowed from a separate connection.
933 TEST_F(ViewManagerConnectionTest, DeleteNodeFromAnotherConnectionDisallowed) { 931 TEST_F(ViewManagerConnectionTest, DeleteNodeFromAnotherConnectionDisallowed) {
934 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); 932 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
935 EXPECT_FALSE(connection2_->DeleteNode(BuildNodeId(1, 1))); 933 EXPECT_FALSE(connection2_->DeleteNode(BuildNodeId(1, 1)));
936 } 934 }
937 935
938 // Verifies DeleteView isn't allowed from a separate connection. 936 // Verifies DeleteView isn't allowed from a separate connection.
(...skipping 19 matching lines...) Expand all
958 "HierarchyChanged change_id=1 node=1,2 new_parent=1,1 old_parent=null", 956 "HierarchyChanged change_id=1 node=1,2 new_parent=1,1 old_parent=null",
959 changes[0]); 957 changes[0]);
960 EXPECT_EQ("[node=1,2 parent=1,1 view=null]", 958 EXPECT_EQ("[node=1,2 parent=1,1 view=null]",
961 ChangeNodeDescription(connection2_->changes())); 959 ChangeNodeDescription(connection2_->changes()));
962 } 960 }
963 961
964 // Delete 2. 962 // Delete 2.
965 { 963 {
966 ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 2))); 964 ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 2)));
967 965
968 // TODO(sky): fix this, shouldn't get ServerChangeIdAdvanced. 966 connection2_->DoRunLoopUntilChangesCount(1);
969 connection2_->DoRunLoopUntilChangesCount(2);
970 const Changes changes(ChangesToDescription1(connection2_->changes())); 967 const Changes changes(ChangesToDescription1(connection2_->changes()));
971 ASSERT_EQ(2u, changes.size()); 968 ASSERT_EQ(1u, changes.size());
972 EXPECT_EQ("NodeDeleted change_id=2 node=1,2", changes[0]); 969 EXPECT_EQ("NodeDeleted change_id=2 node=1,2", changes[0]);
973 EXPECT_EQ("ServerChangeIdAdvanced 3", changes[1]);
974 } 970 }
975 971
976 // Create 2 again, and add it back to 1. Should get the same notification. 972 // Create 2 again, and add it back to 1. Should get the same notification.
977 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); 973 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2)));
978 { 974 {
979 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 3)); 975 ASSERT_TRUE(connection_->AddNode(BuildNodeId(1, 1), BuildNodeId(1, 2), 3));
980 976
981 connection2_->DoRunLoopUntilChangesCount(1); 977 connection2_->DoRunLoopUntilChangesCount(1);
982 const Changes changes(ChangesToDescription1(connection2_->changes())); 978 const Changes changes(ChangesToDescription1(connection2_->changes()));
983 EXPECT_EQ( 979 EXPECT_EQ(
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
1060 connection2_->DoRunLoopUntilChangesCount(1); 1056 connection2_->DoRunLoopUntilChangesCount(1);
1061 const Changes changes(ChangesToDescription1(connection2_->changes())); 1057 const Changes changes(ChangesToDescription1(connection2_->changes()));
1062 ASSERT_EQ(1u, changes.size()); 1058 ASSERT_EQ(1u, changes.size());
1063 EXPECT_EQ("ViewReplaced node=1,3 new_view=1,11 old_view=null", changes[0]); 1059 EXPECT_EQ("ViewReplaced node=1,3 new_view=1,11 old_view=null", changes[0]);
1064 } 1060 }
1065 1061
1066 // Delete 3. 1062 // Delete 3.
1067 { 1063 {
1068 ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 3))); 1064 ASSERT_TRUE(connection_->DeleteNode(BuildNodeId(1, 3)));
1069 1065
1070 // TODO(sky): shouldn't get ServerChangeIdAdvanced here. 1066 connection2_->DoRunLoopUntilChangesCount(1);
1071 connection2_->DoRunLoopUntilChangesCount(2);
1072 const Changes changes(ChangesToDescription1(connection2_->changes())); 1067 const Changes changes(ChangesToDescription1(connection2_->changes()));
1073 ASSERT_EQ(2u, changes.size()); 1068 ASSERT_EQ(1u, changes.size());
1074 EXPECT_EQ("NodeDeleted change_id=3 node=1,3", changes[0]); 1069 EXPECT_EQ("NodeDeleted change_id=3 node=1,3", changes[0]);
1075 EXPECT_EQ("ServerChangeIdAdvanced 4", changes[1]);
1076 } 1070 }
1077 } 1071 }
1078 1072
1079 // Sets view from one connection on another. 1073 // Sets view from one connection on another.
1080 TEST_F(ViewManagerConnectionTest, SetViewFromSecondConnection) { 1074 TEST_F(ViewManagerConnectionTest, SetViewFromSecondConnection) {
1081 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); 1075 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
1082 1076
1083 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2))); 1077 ASSERT_TRUE(connection_->CreateNode(BuildNodeId(1, 2)));
1084 1078
1085 // Create a view in the second connection. 1079 // Create a view in the second connection.
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
1347 // TODO(sky): add coverage of test that destroys connections and ensures other 1341 // TODO(sky): add coverage of test that destroys connections and ensures other
1348 // connections get deletion notification (or advanced server id). 1342 // connections get deletion notification (or advanced server id).
1349 1343
1350 // TODO(sky): need to better track changes to initial connection. For example, 1344 // TODO(sky): need to better track changes to initial connection. For example,
1351 // that SetBounsdNodes/AddNode and the like don't result in messages to the 1345 // that SetBounsdNodes/AddNode and the like don't result in messages to the
1352 // originating connection. 1346 // originating connection.
1353 1347
1354 } // namespace service 1348 } // namespace service
1355 } // namespace view_manager 1349 } // namespace view_manager
1356 } // namespace mojo 1350 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/services/view_manager/view_manager_connection.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698