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

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

Issue 745743002: Makes views be initially hidden (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: feedback Created 6 years, 1 month 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
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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/message_loop/message_loop.h" 6 #include "base/message_loop/message_loop.h"
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "mojo/public/cpp/application/application_delegate.h" 8 #include "mojo/public/cpp/application/application_delegate.h"
9 #include "mojo/public/cpp/application/application_impl.h" 9 #include "mojo/public/cpp/application/application_impl.h"
10 #include "mojo/public/cpp/application/application_test_base.h" 10 #include "mojo/public/cpp/application/application_test_base.h"
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 // different connection). Create a view to ensure we got a response from 634 // different connection). Create a view to ensure we got a response from
635 // the server. 635 // the server.
636 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 100))); 636 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 100)));
637 EXPECT_TRUE(changes2()->empty()); 637 EXPECT_TRUE(changes2()->empty());
638 } 638 }
639 639
640 // Verifies HierarchyChanged is correctly sent for various adds/removes. 640 // Verifies HierarchyChanged is correctly sent for various adds/removes.
641 TEST_F(ViewManagerServiceAppTest, ViewHierarchyChangedViews) { 641 TEST_F(ViewManagerServiceAppTest, ViewHierarchyChangedViews) {
642 // 1,2->1,11. 642 // 1,2->1,11.
643 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); 643 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2)));
644 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 2), true));
644 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 11))); 645 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 11)));
646 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 11), true));
645 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 2), BuildViewId(1, 11))); 647 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 2), BuildViewId(1, 11)));
646 648
647 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true)); 649 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(true));
650 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 1), true));
651
652 ASSERT_TRUE(WaitForAllMessages(vm2()));
653 changes2()->clear();
648 654
649 // 1,1->1,2->1,11 655 // 1,1->1,2->1,11
650 { 656 {
651 // Client 2 should not get anything (1,2 is from another connection). 657 // Client 2 should not get anything (1,2 is from another connection).
652 changes2()->clear();
653 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 1), BuildViewId(1, 2))); 658 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 1), BuildViewId(1, 2)));
654 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 100))); 659 ASSERT_TRUE(WaitForAllMessages(vm2()));
655 EXPECT_TRUE(changes2()->empty()); 660 EXPECT_TRUE(changes2()->empty());
656 } 661 }
657 662
658 // 0,1->1,1->1,2->1,11. 663 // 0,1->1,1->1,2->1,11.
659 { 664 {
660 // Client 2 is now connected to the root, so it should have gotten a drawn 665 // Client 2 is now connected to the root, so it should have gotten a drawn
661 // notification. 666 // notification.
662 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); 667 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
663 vm_client2_->WaitForChangeCount(1u); 668 vm_client2_->WaitForChangeCount(1u);
664 EXPECT_EQ("DrawnStateChanged view=1,1 drawn=true", 669 EXPECT_EQ("DrawnStateChanged view=1,1 drawn=true",
665 SingleChangeToDescription(*changes2())); 670 SingleChangeToDescription(*changes2()));
666 } 671 }
667 672
668 // 1,1->1,2->1,11. 673 // 1,1->1,2->1,11.
669 { 674 {
670 // Client 2 is no longer connected to the root, should get drawn state 675 // Client 2 is no longer connected to the root, should get drawn state
671 // changed. 676 // changed.
672 changes2()->clear(); 677 changes2()->clear();
673 ASSERT_TRUE(RemoveViewFromParent(vm1(), BuildViewId(1, 1))); 678 ASSERT_TRUE(RemoveViewFromParent(vm1(), BuildViewId(1, 1)));
674 vm_client2_->WaitForChangeCount(1); 679 vm_client2_->WaitForChangeCount(1);
675 EXPECT_EQ("DrawnStateChanged view=1,1 drawn=false", 680 EXPECT_EQ("DrawnStateChanged view=1,1 drawn=false",
676 SingleChangeToDescription(*changes2())); 681 SingleChangeToDescription(*changes2()));
677 } 682 }
678 683
679 // 1,1->1,2->1,11->1,111. 684 // 1,1->1,2->1,11->1,111.
680 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 111))); 685 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 111)));
686 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 111), true));
681 { 687 {
682 changes2()->clear(); 688 changes2()->clear();
683 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 11), BuildViewId(1, 111))); 689 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 11), BuildViewId(1, 111)));
684 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 103))); 690 ASSERT_TRUE(WaitForAllMessages(vm2()));
685 EXPECT_TRUE(changes2()->empty()); 691 EXPECT_TRUE(changes2()->empty());
686 } 692 }
687 693
688 // 0,1->1,1->1,2->1,11->1,111 694 // 0,1->1,1->1,2->1,11->1,111
689 { 695 {
690 changes2()->clear(); 696 changes2()->clear();
691 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); 697 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
692 vm_client2_->WaitForChangeCount(1); 698 vm_client2_->WaitForChangeCount(1);
693 EXPECT_EQ("DrawnStateChanged view=1,1 drawn=true", 699 EXPECT_EQ("DrawnStateChanged view=1,1 drawn=true",
694 SingleChangeToDescription(*changes2())); 700 SingleChangeToDescription(*changes2()));
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
1114 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); 1120 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1)));
1115 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); 1121 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2)));
1116 1122
1117 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); 1123 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
1118 { 1124 {
1119 std::vector<TestView> views; 1125 std::vector<TestView> views;
1120 GetViewTree(vm1(), BuildViewId(0, 1), &views); 1126 GetViewTree(vm1(), BuildViewId(0, 1), &views);
1121 ASSERT_EQ(2u, views.size()); 1127 ASSERT_EQ(2u, views.size());
1122 EXPECT_EQ("view=0,1 parent=null visible=true drawn=true", 1128 EXPECT_EQ("view=0,1 parent=null visible=true drawn=true",
1123 views[0].ToString2()); 1129 views[0].ToString2());
1130 EXPECT_EQ("view=1,1 parent=0,1 visible=false drawn=false",
1131 views[1].ToString2());
1132 }
1133
1134 // Show all the views.
1135 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 1), true));
1136 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 2), true));
1137 {
1138 std::vector<TestView> views;
1139 GetViewTree(vm1(), BuildViewId(0, 1), &views);
1140 ASSERT_EQ(2u, views.size());
1141 EXPECT_EQ("view=0,1 parent=null visible=true drawn=true",
1142 views[0].ToString2());
1124 EXPECT_EQ("view=1,1 parent=0,1 visible=true drawn=true", 1143 EXPECT_EQ("view=1,1 parent=0,1 visible=true drawn=true",
1125 views[1].ToString2()); 1144 views[1].ToString2());
1126 } 1145 }
1127 1146
1128 // Hide 1. 1147 // Hide 1.
1129 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 1), false)); 1148 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 1), false));
1130 { 1149 {
1131 std::vector<TestView> views; 1150 std::vector<TestView> views;
1132 GetViewTree(vm1(), BuildViewId(1, 1), &views); 1151 GetViewTree(vm1(), BuildViewId(1, 1), &views);
1133 ASSERT_EQ(1u, views.size()); 1152 ASSERT_EQ(1u, views.size());
(...skipping 23 matching lines...) Expand all
1157 views[0].ToString2()); 1176 views[0].ToString2());
1158 EXPECT_EQ("view=1,2 parent=1,1 visible=true drawn=true", 1177 EXPECT_EQ("view=1,2 parent=1,1 visible=true drawn=true",
1159 views[1].ToString2()); 1178 views[1].ToString2());
1160 } 1179 }
1161 } 1180 }
1162 1181
1163 // Assertions for SetViewVisibility sending notifications. 1182 // Assertions for SetViewVisibility sending notifications.
1164 TEST_F(ViewManagerServiceAppTest, SetViewVisibilityNotifications) { 1183 TEST_F(ViewManagerServiceAppTest, SetViewVisibilityNotifications) {
1165 // Create 1,1 and 1,2. 1,2 is made a child of 1,1 and 1,1 a child of the root. 1184 // Create 1,1 and 1,2. 1,2 is made a child of 1,1 and 1,1 a child of the root.
1166 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); 1185 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1)));
1186 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 1), true));
1167 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2))); 1187 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 2)));
1188 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 2), true));
1168 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); 1189 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
1169 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 1), BuildViewId(1, 2))); 1190 ASSERT_TRUE(AddView(vm1(), BuildViewId(1, 1), BuildViewId(1, 2)));
1170 1191
1171 // Establish the second connection at 1,2. 1192 // Establish the second connection at 1,2.
1172 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnectionWithRoot(BuildViewId(1, 2))); 1193 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnectionWithRoot(BuildViewId(1, 2)));
1173 1194
1174 // Add 2,3 as a child of 1,2. 1195 // Add 2,3 as a child of 1,2.
1175 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 3))); 1196 ASSERT_TRUE(CreateView(vm2(), BuildViewId(2, 3)));
1176 changes1()->clear(); 1197 ASSERT_TRUE(SetViewVisibility(vm2(), BuildViewId(2, 3), true));
1177 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 2), BuildViewId(2, 3))); 1198 ASSERT_TRUE(AddView(vm2(), BuildViewId(1, 2), BuildViewId(2, 3)));
1178 vm_client1_.WaitForChangeCount(1); 1199 WaitForAllMessages(vm1());
1179 1200
1180 changes2()->clear(); 1201 changes2()->clear();
1181 // Hide 1,2 from connection 1. Connection 2 should see this. 1202 // Hide 1,2 from connection 1. Connection 2 should see this.
1182 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 2), false)); 1203 ASSERT_TRUE(SetViewVisibility(vm1(), BuildViewId(1, 2), false));
1183 { 1204 {
1184 vm_client2_->WaitForChangeCount(1); 1205 vm_client2_->WaitForChangeCount(1);
1185 EXPECT_EQ("VisibilityChanged view=1,2 visible=false", 1206 EXPECT_EQ("VisibilityChanged view=1,2 visible=false",
1186 SingleChangeToDescription(*changes2())); 1207 SingleChangeToDescription(*changes2()));
1187 } 1208 }
1188 1209
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1246 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1))); 1267 ASSERT_TRUE(CreateView(vm1(), BuildViewId(1, 1)));
1247 1268
1248 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false)); 1269 ASSERT_NO_FATAL_FAILURE(EstablishSecondConnection(false));
1249 changes2()->clear(); 1270 changes2()->clear();
1250 1271
1251 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1))); 1272 ASSERT_TRUE(AddView(vm1(), BuildViewId(0, 1), BuildViewId(1, 1)));
1252 { 1273 {
1253 std::vector<TestView> views; 1274 std::vector<TestView> views;
1254 GetViewTree(vm1(), BuildViewId(0, 1), &views); 1275 GetViewTree(vm1(), BuildViewId(0, 1), &views);
1255 ASSERT_EQ(2u, views.size()); 1276 ASSERT_EQ(2u, views.size());
1256 EXPECT_EQ("view=0,1 parent=null visible=true drawn=true", 1277 EXPECT_EQ(BuildViewId(0, 1), views[0].view_id);
1257 views[0].ToString2()); 1278 EXPECT_EQ(BuildViewId(1, 1), views[1].view_id);
1258 EXPECT_EQ("view=1,1 parent=0,1 visible=true drawn=true",
1259 views[1].ToString2());
1260
1261 ASSERT_EQ(0u, views[1].properties.size()); 1279 ASSERT_EQ(0u, views[1].properties.size());
1262
1263 vm_client2_->WaitForChangeCount(1);
1264 EXPECT_EQ("DrawnStateChanged view=1,1 drawn=true",
1265 SingleChangeToDescription(*changes2()));
1266 } 1280 }
1267 1281
1268 // Set properties on 1. 1282 // Set properties on 1.
1269 changes2()->clear(); 1283 changes2()->clear();
1270 std::vector<uint8_t> one(1, '1'); 1284 std::vector<uint8_t> one(1, '1');
1271 ASSERT_TRUE(SetViewProperty(vm1(), BuildViewId(1, 1), "one", &one)); 1285 ASSERT_TRUE(SetViewProperty(vm1(), BuildViewId(1, 1), "one", &one));
1272 { 1286 {
1273 vm_client2_->WaitForChangeCount(1); 1287 vm_client2_->WaitForChangeCount(1);
1274 EXPECT_EQ("PropertyChanged view=1,1 key=one value=1", 1288 EXPECT_EQ("PropertyChanged view=1,1 key=one value=1",
1275 SingleChangeToDescription(*changes2())); 1289 SingleChangeToDescription(*changes2()));
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
1382 // that SetBounsdViews/AddView and the like don't result in messages to the 1396 // that SetBounsdViews/AddView and the like don't result in messages to the
1383 // originating connection. 1397 // originating connection.
1384 1398
1385 // TODO(sky): make sure coverage of what was 1399 // TODO(sky): make sure coverage of what was
1386 // ViewManagerTest.SecondEmbedRoot_InitService and 1400 // ViewManagerTest.SecondEmbedRoot_InitService and
1387 // ViewManagerTest.MultipleEmbedRootsBeforeWTHReady gets added to window manager 1401 // ViewManagerTest.MultipleEmbedRootsBeforeWTHReady gets added to window manager
1388 // tests. 1402 // tests.
1389 1403
1390 } // namespace service 1404 } // namespace service
1391 } // namespace mojo 1405 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/services/view_manager/server_view.cc ('k') | mojo/services/view_manager/view_manager_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698