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

Side by Side Diff: components/mus/public/cpp/tests/window_unittest.cc

Issue 1527183003: Change mojo enums to be scoped enums in the generated C++ bindings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mojo-binding-equals
Patch Set: rebase Created 4 years, 11 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
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 "components/mus/public/cpp/window.h" 5 #include "components/mus/public/cpp/window.h"
6 6
7 #include <limits.h> 7 #include <limits.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 // Move w11 to front. 509 // Move w11 to front.
510 // Resulting order: w12, w13, w11 510 // Resulting order: w12, w13, w11
511 w11.MoveToFront(); 511 w11.MoveToFront();
512 EXPECT_EQ(&w12, w1.children().front()); 512 EXPECT_EQ(&w12, w1.children().front());
513 EXPECT_EQ(&w11, w1.children().back()); 513 EXPECT_EQ(&w11, w1.children().back());
514 514
515 OrderChangeObserver::Changes changes = observer.GetAndClearChanges(); 515 OrderChangeObserver::Changes changes = observer.GetAndClearChanges();
516 ASSERT_EQ(2U, changes.size()); 516 ASSERT_EQ(2U, changes.size());
517 EXPECT_EQ(&w11, changes[0].window); 517 EXPECT_EQ(&w11, changes[0].window);
518 EXPECT_EQ(&w13, changes[0].relative_window); 518 EXPECT_EQ(&w13, changes[0].relative_window);
519 EXPECT_EQ(mojom::ORDER_DIRECTION_ABOVE, changes[0].direction); 519 EXPECT_EQ(mojom::OrderDirection::ABOVE, changes[0].direction);
520 520
521 EXPECT_EQ(&w11, changes[1].window); 521 EXPECT_EQ(&w11, changes[1].window);
522 EXPECT_EQ(&w13, changes[1].relative_window); 522 EXPECT_EQ(&w13, changes[1].relative_window);
523 EXPECT_EQ(mojom::ORDER_DIRECTION_ABOVE, changes[1].direction); 523 EXPECT_EQ(mojom::OrderDirection::ABOVE, changes[1].direction);
524 } 524 }
525 525
526 { 526 {
527 OrderChangeObserver observer(&w11); 527 OrderChangeObserver observer(&w11);
528 528
529 // Move w11 to back. 529 // Move w11 to back.
530 // Resulting order: w11, w12, w13 530 // Resulting order: w11, w12, w13
531 w11.MoveToBack(); 531 w11.MoveToBack();
532 EXPECT_EQ(&w11, w1.children().front()); 532 EXPECT_EQ(&w11, w1.children().front());
533 EXPECT_EQ(&w13, w1.children().back()); 533 EXPECT_EQ(&w13, w1.children().back());
534 534
535 OrderChangeObserver::Changes changes = observer.GetAndClearChanges(); 535 OrderChangeObserver::Changes changes = observer.GetAndClearChanges();
536 ASSERT_EQ(2U, changes.size()); 536 ASSERT_EQ(2U, changes.size());
537 EXPECT_EQ(&w11, changes[0].window); 537 EXPECT_EQ(&w11, changes[0].window);
538 EXPECT_EQ(&w12, changes[0].relative_window); 538 EXPECT_EQ(&w12, changes[0].relative_window);
539 EXPECT_EQ(mojom::ORDER_DIRECTION_BELOW, changes[0].direction); 539 EXPECT_EQ(mojom::OrderDirection::BELOW, changes[0].direction);
540 540
541 EXPECT_EQ(&w11, changes[1].window); 541 EXPECT_EQ(&w11, changes[1].window);
542 EXPECT_EQ(&w12, changes[1].relative_window); 542 EXPECT_EQ(&w12, changes[1].relative_window);
543 EXPECT_EQ(mojom::ORDER_DIRECTION_BELOW, changes[1].direction); 543 EXPECT_EQ(mojom::OrderDirection::BELOW, changes[1].direction);
544 } 544 }
545 545
546 { 546 {
547 OrderChangeObserver observer(&w11); 547 OrderChangeObserver observer(&w11);
548 548
549 // Move w11 above w12. 549 // Move w11 above w12.
550 // Resulting order: w12. w11, w13 550 // Resulting order: w12. w11, w13
551 w11.Reorder(&w12, mojom::ORDER_DIRECTION_ABOVE); 551 w11.Reorder(&w12, mojom::OrderDirection::ABOVE);
552 EXPECT_EQ(&w12, w1.children().front()); 552 EXPECT_EQ(&w12, w1.children().front());
553 EXPECT_EQ(&w13, w1.children().back()); 553 EXPECT_EQ(&w13, w1.children().back());
554 554
555 OrderChangeObserver::Changes changes = observer.GetAndClearChanges(); 555 OrderChangeObserver::Changes changes = observer.GetAndClearChanges();
556 ASSERT_EQ(2U, changes.size()); 556 ASSERT_EQ(2U, changes.size());
557 EXPECT_EQ(&w11, changes[0].window); 557 EXPECT_EQ(&w11, changes[0].window);
558 EXPECT_EQ(&w12, changes[0].relative_window); 558 EXPECT_EQ(&w12, changes[0].relative_window);
559 EXPECT_EQ(mojom::ORDER_DIRECTION_ABOVE, changes[0].direction); 559 EXPECT_EQ(mojom::OrderDirection::ABOVE, changes[0].direction);
560 560
561 EXPECT_EQ(&w11, changes[1].window); 561 EXPECT_EQ(&w11, changes[1].window);
562 EXPECT_EQ(&w12, changes[1].relative_window); 562 EXPECT_EQ(&w12, changes[1].relative_window);
563 EXPECT_EQ(mojom::ORDER_DIRECTION_ABOVE, changes[1].direction); 563 EXPECT_EQ(mojom::OrderDirection::ABOVE, changes[1].direction);
564 } 564 }
565 565
566 { 566 {
567 OrderChangeObserver observer(&w11); 567 OrderChangeObserver observer(&w11);
568 568
569 // Move w11 below w12. 569 // Move w11 below w12.
570 // Resulting order: w11, w12, w13 570 // Resulting order: w11, w12, w13
571 w11.Reorder(&w12, mojom::ORDER_DIRECTION_BELOW); 571 w11.Reorder(&w12, mojom::OrderDirection::BELOW);
572 EXPECT_EQ(&w11, w1.children().front()); 572 EXPECT_EQ(&w11, w1.children().front());
573 EXPECT_EQ(&w13, w1.children().back()); 573 EXPECT_EQ(&w13, w1.children().back());
574 574
575 OrderChangeObserver::Changes changes = observer.GetAndClearChanges(); 575 OrderChangeObserver::Changes changes = observer.GetAndClearChanges();
576 ASSERT_EQ(2U, changes.size()); 576 ASSERT_EQ(2U, changes.size());
577 EXPECT_EQ(&w11, changes[0].window); 577 EXPECT_EQ(&w11, changes[0].window);
578 EXPECT_EQ(&w12, changes[0].relative_window); 578 EXPECT_EQ(&w12, changes[0].relative_window);
579 EXPECT_EQ(mojom::ORDER_DIRECTION_BELOW, changes[0].direction); 579 EXPECT_EQ(mojom::OrderDirection::BELOW, changes[0].direction);
580 580
581 EXPECT_EQ(&w11, changes[1].window); 581 EXPECT_EQ(&w11, changes[1].window);
582 EXPECT_EQ(&w12, changes[1].relative_window); 582 EXPECT_EQ(&w12, changes[1].relative_window);
583 EXPECT_EQ(mojom::ORDER_DIRECTION_BELOW, changes[1].direction); 583 EXPECT_EQ(mojom::OrderDirection::BELOW, changes[1].direction);
584 } 584 }
585 } 585 }
586 586
587 namespace { 587 namespace {
588 588
589 typedef std::vector<std::string> Changes; 589 typedef std::vector<std::string> Changes;
590 590
591 std::string WindowIdToString(Id id) { 591 std::string WindowIdToString(Id id) {
592 return (id == 0) ? "null" 592 return (id == 0) ? "null"
593 : base::StringPrintf("%d,%d", HiWord(id), LoWord(id)); 593 : base::StringPrintf("%d,%d", HiWord(id), LoWord(id));
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
978 EXPECT_EQ(w11, parent->children().back()); 978 EXPECT_EQ(w11, parent->children().back());
979 EXPECT_EQ("2 21 211 212 213 22 1 11", ChildWindowIDsAsString(parent.get())); 979 EXPECT_EQ("2 21 211 212 213 22 1 11", ChildWindowIDsAsString(parent.get()));
980 980
981 // This tests that the order in children_ array rather than in 981 // This tests that the order in children_ array rather than in
982 // transient_children_ array is used when reinserting transient children. 982 // transient_children_ array is used when reinserting transient children.
983 // If transient_children_ array was used '22' would be following '21'. 983 // If transient_children_ array was used '22' would be following '21'.
984 w2->MoveToFront(); 984 w2->MoveToFront();
985 EXPECT_EQ(w22, parent->children().back()); 985 EXPECT_EQ(w22, parent->children().back());
986 EXPECT_EQ("1 11 2 21 211 212 213 22", ChildWindowIDsAsString(parent.get())); 986 EXPECT_EQ("1 11 2 21 211 212 213 22", ChildWindowIDsAsString(parent.get()));
987 987
988 w11->Reorder(w2.get(), mojom::ORDER_DIRECTION_ABOVE); 988 w11->Reorder(w2.get(), mojom::OrderDirection::ABOVE);
989 EXPECT_EQ(w11, parent->children().back()); 989 EXPECT_EQ(w11, parent->children().back());
990 EXPECT_EQ("2 21 211 212 213 22 1 11", ChildWindowIDsAsString(parent.get())); 990 EXPECT_EQ("2 21 211 212 213 22 1 11", ChildWindowIDsAsString(parent.get()));
991 991
992 w21->Reorder(w1.get(), mojom::ORDER_DIRECTION_ABOVE); 992 w21->Reorder(w1.get(), mojom::OrderDirection::ABOVE);
993 EXPECT_EQ(w22, parent->children().back()); 993 EXPECT_EQ(w22, parent->children().back());
994 EXPECT_EQ("1 11 2 21 211 212 213 22", ChildWindowIDsAsString(parent.get())); 994 EXPECT_EQ("1 11 2 21 211 212 213 22", ChildWindowIDsAsString(parent.get()));
995 995
996 w21->Reorder(w22, mojom::ORDER_DIRECTION_ABOVE); 996 w21->Reorder(w22, mojom::OrderDirection::ABOVE);
997 EXPECT_EQ(w213, parent->children().back()); 997 EXPECT_EQ(w213, parent->children().back());
998 EXPECT_EQ("1 11 2 22 21 211 212 213", ChildWindowIDsAsString(parent.get())); 998 EXPECT_EQ("1 11 2 22 21 211 212 213", ChildWindowIDsAsString(parent.get()));
999 999
1000 w11->Reorder(w21, mojom::ORDER_DIRECTION_ABOVE); 1000 w11->Reorder(w21, mojom::OrderDirection::ABOVE);
1001 EXPECT_EQ(w11, parent->children().back()); 1001 EXPECT_EQ(w11, parent->children().back());
1002 EXPECT_EQ("2 22 21 211 212 213 1 11", ChildWindowIDsAsString(parent.get())); 1002 EXPECT_EQ("2 22 21 211 212 213 1 11", ChildWindowIDsAsString(parent.get()));
1003 1003
1004 w213->Reorder(w21, mojom::ORDER_DIRECTION_ABOVE); 1004 w213->Reorder(w21, mojom::OrderDirection::ABOVE);
1005 EXPECT_EQ(w11, parent->children().back()); 1005 EXPECT_EQ(w11, parent->children().back());
1006 EXPECT_EQ("2 22 21 213 211 212 1 11", ChildWindowIDsAsString(parent.get())); 1006 EXPECT_EQ("2 22 21 213 211 212 1 11", ChildWindowIDsAsString(parent.get()));
1007 1007
1008 // No change when stacking a transient parent above its transient child. 1008 // No change when stacking a transient parent above its transient child.
1009 w21->Reorder(w211, mojom::ORDER_DIRECTION_ABOVE); 1009 w21->Reorder(w211, mojom::OrderDirection::ABOVE);
1010 EXPECT_EQ(w11, parent->children().back()); 1010 EXPECT_EQ(w11, parent->children().back());
1011 EXPECT_EQ("2 22 21 213 211 212 1 11", ChildWindowIDsAsString(parent.get())); 1011 EXPECT_EQ("2 22 21 213 211 212 1 11", ChildWindowIDsAsString(parent.get()));
1012 1012
1013 // This tests that the order in children_ array rather than in 1013 // This tests that the order in children_ array rather than in
1014 // transient_children_ array is used when reinserting transient children. 1014 // transient_children_ array is used when reinserting transient children.
1015 // If transient_children_ array was used '22' would be following '21'. 1015 // If transient_children_ array was used '22' would be following '21'.
1016 w2->Reorder(w1.get(), mojom::ORDER_DIRECTION_ABOVE); 1016 w2->Reorder(w1.get(), mojom::OrderDirection::ABOVE);
1017 EXPECT_EQ(w212, parent->children().back()); 1017 EXPECT_EQ(w212, parent->children().back());
1018 EXPECT_EQ("1 11 2 22 21 213 211 212", ChildWindowIDsAsString(parent.get())); 1018 EXPECT_EQ("1 11 2 22 21 213 211 212", ChildWindowIDsAsString(parent.get()));
1019 1019
1020 w11->Reorder(w213, mojom::ORDER_DIRECTION_ABOVE); 1020 w11->Reorder(w213, mojom::OrderDirection::ABOVE);
1021 EXPECT_EQ(w11, parent->children().back()); 1021 EXPECT_EQ(w11, parent->children().back());
1022 EXPECT_EQ("2 22 21 213 211 212 1 11", ChildWindowIDsAsString(parent.get())); 1022 EXPECT_EQ("2 22 21 213 211 212 1 11", ChildWindowIDsAsString(parent.get()));
1023 } 1023 }
1024 1024
1025 // Tests that transient children are stacked as a unit when using order below. 1025 // Tests that transient children are stacked as a unit when using order below.
1026 TEST_F(WindowTest, TransientWindowsGroupBelow) { 1026 TEST_F(WindowTest, TransientWindowsGroupBelow) {
1027 scoped_ptr<TestWindow> parent(CreateTestWindow(0, nullptr)); 1027 scoped_ptr<TestWindow> parent(CreateTestWindow(0, nullptr));
1028 scoped_ptr<TestWindow> w1(CreateTestWindow(1, parent.get())); 1028 scoped_ptr<TestWindow> w1(CreateTestWindow(1, parent.get()));
1029 1029
1030 TestWindow* w11 = CreateTestWindow(11, parent.get()); 1030 TestWindow* w11 = CreateTestWindow(11, parent.get());
(...skipping 25 matching lines...) Expand all
1056 // transient_children_ array is used when reinserting transient children. 1056 // transient_children_ array is used when reinserting transient children.
1057 // If transient_children_ array was used '22' would be following '21'. 1057 // If transient_children_ array was used '22' would be following '21'.
1058 w2->MoveToBack(); 1058 w2->MoveToBack();
1059 EXPECT_EQ(w11, parent->children().back()); 1059 EXPECT_EQ(w11, parent->children().back());
1060 EXPECT_EQ("2 21 211 212 213 22 1 11", ChildWindowIDsAsString(parent.get())); 1060 EXPECT_EQ("2 21 211 212 213 22 1 11", ChildWindowIDsAsString(parent.get()));
1061 1061
1062 w1->MoveToBack(); 1062 w1->MoveToBack();
1063 EXPECT_EQ(w22, parent->children().back()); 1063 EXPECT_EQ(w22, parent->children().back());
1064 EXPECT_EQ("1 11 2 21 211 212 213 22", ChildWindowIDsAsString(parent.get())); 1064 EXPECT_EQ("1 11 2 21 211 212 213 22", ChildWindowIDsAsString(parent.get()));
1065 1065
1066 w21->Reorder(w1.get(), mojom::ORDER_DIRECTION_BELOW); 1066 w21->Reorder(w1.get(), mojom::OrderDirection::BELOW);
1067 EXPECT_EQ(w11, parent->children().back()); 1067 EXPECT_EQ(w11, parent->children().back());
1068 EXPECT_EQ("2 21 211 212 213 22 1 11", ChildWindowIDsAsString(parent.get())); 1068 EXPECT_EQ("2 21 211 212 213 22 1 11", ChildWindowIDsAsString(parent.get()));
1069 1069
1070 w11->Reorder(w2.get(), mojom::ORDER_DIRECTION_BELOW); 1070 w11->Reorder(w2.get(), mojom::OrderDirection::BELOW);
1071 EXPECT_EQ(w22, parent->children().back()); 1071 EXPECT_EQ(w22, parent->children().back());
1072 EXPECT_EQ("1 11 2 21 211 212 213 22", ChildWindowIDsAsString(parent.get())); 1072 EXPECT_EQ("1 11 2 21 211 212 213 22", ChildWindowIDsAsString(parent.get()));
1073 1073
1074 w22->Reorder(w21, mojom::ORDER_DIRECTION_BELOW); 1074 w22->Reorder(w21, mojom::OrderDirection::BELOW);
1075 EXPECT_EQ(w213, parent->children().back()); 1075 EXPECT_EQ(w213, parent->children().back());
1076 EXPECT_EQ("1 11 2 22 21 211 212 213", ChildWindowIDsAsString(parent.get())); 1076 EXPECT_EQ("1 11 2 22 21 211 212 213", ChildWindowIDsAsString(parent.get()));
1077 1077
1078 w21->Reorder(w11, mojom::ORDER_DIRECTION_BELOW); 1078 w21->Reorder(w11, mojom::OrderDirection::BELOW);
1079 EXPECT_EQ(w11, parent->children().back()); 1079 EXPECT_EQ(w11, parent->children().back());
1080 EXPECT_EQ("2 22 21 211 212 213 1 11", ChildWindowIDsAsString(parent.get())); 1080 EXPECT_EQ("2 22 21 211 212 213 1 11", ChildWindowIDsAsString(parent.get()));
1081 1081
1082 w213->Reorder(w211, mojom::ORDER_DIRECTION_BELOW); 1082 w213->Reorder(w211, mojom::OrderDirection::BELOW);
1083 EXPECT_EQ(w11, parent->children().back()); 1083 EXPECT_EQ(w11, parent->children().back());
1084 EXPECT_EQ("2 22 21 213 211 212 1 11", ChildWindowIDsAsString(parent.get())); 1084 EXPECT_EQ("2 22 21 213 211 212 1 11", ChildWindowIDsAsString(parent.get()));
1085 1085
1086 // No change when stacking a transient parent below its transient child. 1086 // No change when stacking a transient parent below its transient child.
1087 w21->Reorder(w211, mojom::ORDER_DIRECTION_BELOW); 1087 w21->Reorder(w211, mojom::OrderDirection::BELOW);
1088 EXPECT_EQ(w11, parent->children().back()); 1088 EXPECT_EQ(w11, parent->children().back());
1089 EXPECT_EQ("2 22 21 213 211 212 1 11", ChildWindowIDsAsString(parent.get())); 1089 EXPECT_EQ("2 22 21 213 211 212 1 11", ChildWindowIDsAsString(parent.get()));
1090 1090
1091 w1->Reorder(w2.get(), mojom::ORDER_DIRECTION_BELOW); 1091 w1->Reorder(w2.get(), mojom::OrderDirection::BELOW);
1092 EXPECT_EQ(w212, parent->children().back()); 1092 EXPECT_EQ(w212, parent->children().back());
1093 EXPECT_EQ("1 11 2 22 21 213 211 212", ChildWindowIDsAsString(parent.get())); 1093 EXPECT_EQ("1 11 2 22 21 213 211 212", ChildWindowIDsAsString(parent.get()));
1094 1094
1095 w213->Reorder(w11, mojom::ORDER_DIRECTION_BELOW); 1095 w213->Reorder(w11, mojom::OrderDirection::BELOW);
1096 EXPECT_EQ(w11, parent->children().back()); 1096 EXPECT_EQ(w11, parent->children().back());
1097 EXPECT_EQ("2 22 21 213 211 212 1 11", ChildWindowIDsAsString(parent.get())); 1097 EXPECT_EQ("2 22 21 213 211 212 1 11", ChildWindowIDsAsString(parent.get()));
1098 } 1098 }
1099 1099
1100 // Tests that windows are restacked properly after a call to 1100 // Tests that windows are restacked properly after a call to
1101 // AddTransientWindow() or RemoveTransientWindow). 1101 // AddTransientWindow() or RemoveTransientWindow).
1102 TEST_F(WindowTest, RestackUponAddOrRemoveTransientWindow) { 1102 TEST_F(WindowTest, RestackUponAddOrRemoveTransientWindow) {
1103 scoped_ptr<TestWindow> parent(CreateTestWindow(0, nullptr)); 1103 scoped_ptr<TestWindow> parent(CreateTestWindow(0, nullptr));
1104 scoped_ptr<TestWindow> windows[4]; 1104 scoped_ptr<TestWindow> windows[4];
1105 for (int i = 0; i < 4; i++) 1105 for (int i = 0; i < 4; i++)
(...skipping 20 matching lines...) Expand all
1126 scoped_ptr<TestWindow> window0(CreateTestWindow(1, parent.get())); 1126 scoped_ptr<TestWindow> window0(CreateTestWindow(1, parent.get()));
1127 scoped_ptr<TestWindow> window1(CreateTestWindow(2, parent.get())); 1127 scoped_ptr<TestWindow> window1(CreateTestWindow(2, parent.get()));
1128 1128
1129 TestWindow* window2 = CreateTestWindow(3, parent.get()); 1129 TestWindow* window2 = CreateTestWindow(3, parent.get());
1130 1130
1131 window0->AddTransientWindow(window2); 1131 window0->AddTransientWindow(window2);
1132 EXPECT_EQ("1 3 2", ChildWindowIDsAsString(parent.get())); 1132 EXPECT_EQ("1 3 2", ChildWindowIDsAsString(parent.get()));
1133 } 1133 }
1134 1134
1135 } // namespace mus 1135 } // namespace mus
OLDNEW
« no previous file with comments | « components/mus/public/cpp/tests/window_tree_client_impl_unittest.cc ('k') | components/mus/public/interfaces/cursor.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698