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

Side by Side Diff: trunk/src/ui/aura/window_unittest.cc

Issue 77203002: Revert 236048 "Rename RootWindowHost* to WindowTreeHost*" (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 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 | Annotate | Revision Log
« no previous file with comments | « trunk/src/ui/aura/window_tree_host_delegate.h ('k') | trunk/src/ui/base/ime/input_method.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/aura/window.h" 5 #include "ui/aura/window.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 EXPECT_FALSE(w1.HitTest(gfx::Point(-1, -1))); 481 EXPECT_FALSE(w1.HitTest(gfx::Point(-1, -1)));
482 482
483 // We can expand the bounds slightly to track events outside our border. 483 // We can expand the bounds slightly to track events outside our border.
484 w1.SetHitTestBoundsOverrideOuter(gfx::Insets(-1, -1, -1, -1), 484 w1.SetHitTestBoundsOverrideOuter(gfx::Insets(-1, -1, -1, -1),
485 gfx::Insets(-5, -5, -5, -5)); 485 gfx::Insets(-5, -5, -5, -5));
486 EXPECT_TRUE(w1.HitTest(gfx::Point(-1, -1))); 486 EXPECT_TRUE(w1.HitTest(gfx::Point(-1, -1)));
487 EXPECT_FALSE(w1.HitTest(gfx::Point(-2, -2))); 487 EXPECT_FALSE(w1.HitTest(gfx::Point(-2, -2)));
488 488
489 ui::TouchEvent pressed( 489 ui::TouchEvent pressed(
490 ui::ET_TOUCH_PRESSED, gfx::Point(50, 50), 0, getTime()); 490 ui::ET_TOUCH_PRESSED, gfx::Point(50, 50), 0, getTime());
491 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&pressed); 491 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&pressed);
492 EXPECT_TRUE(w1.HitTest(gfx::Point(-2, -2))); 492 EXPECT_TRUE(w1.HitTest(gfx::Point(-2, -2)));
493 EXPECT_TRUE(w1.HitTest(gfx::Point(-5, -5))); 493 EXPECT_TRUE(w1.HitTest(gfx::Point(-5, -5)));
494 EXPECT_FALSE(w1.HitTest(gfx::Point(-5, -6))); 494 EXPECT_FALSE(w1.HitTest(gfx::Point(-5, -6)));
495 ui::TouchEvent released( 495 ui::TouchEvent released(
496 ui::ET_TOUCH_RELEASED, gfx::Point(50, 50), 0, getTime()); 496 ui::ET_TOUCH_RELEASED, gfx::Point(50, 50), 0, getTime());
497 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&released); 497 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&released);
498 EXPECT_FALSE(w1.HitTest(gfx::Point(-2, -2))); 498 EXPECT_FALSE(w1.HitTest(gfx::Point(-2, -2)));
499 499
500 // TODO(beng): clip Window to parent. 500 // TODO(beng): clip Window to parent.
501 } 501 }
502 502
503 TEST_F(WindowTest, HitTestMask) { 503 TEST_F(WindowTest, HitTestMask) {
504 MaskedWindowDelegate d1(gfx::Rect(5, 6, 20, 30)); 504 MaskedWindowDelegate d1(gfx::Rect(5, 6, 20, 30));
505 Window w1(&d1); 505 Window w1(&d1);
506 w1.Init(ui::LAYER_NOT_DRAWN); 506 w1.Init(ui::LAYER_NOT_DRAWN);
507 w1.SetBounds(gfx::Rect(10, 20, 50, 60)); 507 w1.SetBounds(gfx::Rect(10, 20, 50, 60));
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 EventGenerator generator(root_window(), gfx::Point(50, 50)); 838 EventGenerator generator(root_window(), gfx::Point(50, 50));
839 generator.PressLeftButton(); 839 generator.PressLeftButton();
840 EXPECT_EQ(1, delegate.mouse_event_count()); 840 EXPECT_EQ(1, delegate.mouse_event_count());
841 generator.ReleaseLeftButton(); 841 generator.ReleaseLeftButton();
842 842
843 EXPECT_EQ(2, delegate.mouse_event_count()); 843 EXPECT_EQ(2, delegate.mouse_event_count());
844 delegate.ResetCounts(); 844 delegate.ResetCounts();
845 845
846 ui::TouchEvent touchev( 846 ui::TouchEvent touchev(
847 ui::ET_TOUCH_PRESSED, gfx::Point(50, 50), 0, getTime()); 847 ui::ET_TOUCH_PRESSED, gfx::Point(50, 50), 0, getTime());
848 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&touchev); 848 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&touchev);
849 EXPECT_EQ(1, delegate.touch_event_count()); 849 EXPECT_EQ(1, delegate.touch_event_count());
850 delegate.ResetCounts(); 850 delegate.ResetCounts();
851 851
852 window->ReleaseCapture(); 852 window->ReleaseCapture();
853 EXPECT_FALSE(window->HasCapture()); 853 EXPECT_FALSE(window->HasCapture());
854 EXPECT_EQ(1, delegate.capture_lost_count()); 854 EXPECT_EQ(1, delegate.capture_lost_count());
855 EXPECT_EQ(1, delegate.capture_changed_event_count()); 855 EXPECT_EQ(1, delegate.capture_changed_event_count());
856 EXPECT_EQ(1, delegate.mouse_event_count()); 856 EXPECT_EQ(1, delegate.mouse_event_count());
857 EXPECT_EQ(0, delegate.touch_event_count()); 857 EXPECT_EQ(0, delegate.touch_event_count());
858 858
859 generator.PressLeftButton(); 859 generator.PressLeftButton();
860 EXPECT_EQ(1, delegate.mouse_event_count()); 860 EXPECT_EQ(1, delegate.mouse_event_count());
861 861
862 ui::TouchEvent touchev2( 862 ui::TouchEvent touchev2(
863 ui::ET_TOUCH_PRESSED, gfx::Point(250, 250), 1, getTime()); 863 ui::ET_TOUCH_PRESSED, gfx::Point(250, 250), 1, getTime());
864 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&touchev2); 864 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&touchev2);
865 EXPECT_EQ(0, delegate.touch_event_count()); 865 EXPECT_EQ(0, delegate.touch_event_count());
866 866
867 // Removing the capture window from parent should reset the capture window 867 // Removing the capture window from parent should reset the capture window
868 // in the root window. 868 // in the root window.
869 window->SetCapture(); 869 window->SetCapture();
870 EXPECT_EQ(window.get(), aura::client::GetCaptureWindow(root_window())); 870 EXPECT_EQ(window.get(), aura::client::GetCaptureWindow(root_window()));
871 window->parent()->RemoveChild(window.get()); 871 window->parent()->RemoveChild(window.get());
872 EXPECT_FALSE(window->HasCapture()); 872 EXPECT_FALSE(window->HasCapture());
873 EXPECT_EQ(NULL, aura::client::GetCaptureWindow(root_window())); 873 EXPECT_EQ(NULL, aura::client::GetCaptureWindow(root_window()));
874 } 874 }
875 875
876 TEST_F(WindowTest, TouchCaptureCancelsOtherTouches) { 876 TEST_F(WindowTest, TouchCaptureCancelsOtherTouches) {
877 CaptureWindowDelegateImpl delegate1; 877 CaptureWindowDelegateImpl delegate1;
878 scoped_ptr<Window> w1(CreateTestWindowWithDelegate( 878 scoped_ptr<Window> w1(CreateTestWindowWithDelegate(
879 &delegate1, 0, gfx::Rect(0, 0, 50, 50), root_window())); 879 &delegate1, 0, gfx::Rect(0, 0, 50, 50), root_window()));
880 CaptureWindowDelegateImpl delegate2; 880 CaptureWindowDelegateImpl delegate2;
881 scoped_ptr<Window> w2(CreateTestWindowWithDelegate( 881 scoped_ptr<Window> w2(CreateTestWindowWithDelegate(
882 &delegate2, 0, gfx::Rect(50, 50, 50, 50), root_window())); 882 &delegate2, 0, gfx::Rect(50, 50, 50, 50), root_window()));
883 883
884 // Press on w1. 884 // Press on w1.
885 ui::TouchEvent press( 885 ui::TouchEvent press(
886 ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime()); 886 ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime());
887 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&press); 887 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
888 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN. 888 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN.
889 EXPECT_EQ(2, delegate1.gesture_event_count()); 889 EXPECT_EQ(2, delegate1.gesture_event_count());
890 delegate1.ResetCounts(); 890 delegate1.ResetCounts();
891 891
892 // Capturing to w2 should cause the touch to be canceled. 892 // Capturing to w2 should cause the touch to be canceled.
893 w2->SetCapture(); 893 w2->SetCapture();
894 EXPECT_EQ(1, delegate1.touch_event_count()); 894 EXPECT_EQ(1, delegate1.touch_event_count());
895 EXPECT_EQ(0, delegate2.touch_event_count()); 895 EXPECT_EQ(0, delegate2.touch_event_count());
896 delegate1.ResetCounts(); 896 delegate1.ResetCounts();
897 delegate2.ResetCounts(); 897 delegate2.ResetCounts();
898 898
899 // Events now go to w2. 899 // Events now go to w2.
900 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(10, 20), 0, getTime()); 900 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(10, 20), 0, getTime());
901 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&move); 901 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move);
902 EXPECT_EQ(0, delegate1.gesture_event_count()); 902 EXPECT_EQ(0, delegate1.gesture_event_count());
903 EXPECT_EQ(0, delegate1.touch_event_count()); 903 EXPECT_EQ(0, delegate1.touch_event_count());
904 EXPECT_EQ(0, delegate2.gesture_event_count()); 904 EXPECT_EQ(0, delegate2.gesture_event_count());
905 EXPECT_EQ(1, delegate2.touch_event_count()); 905 EXPECT_EQ(1, delegate2.touch_event_count());
906 906
907 ui::TouchEvent release( 907 ui::TouchEvent release(
908 ui::ET_TOUCH_RELEASED, gfx::Point(10, 20), 0, getTime()); 908 ui::ET_TOUCH_RELEASED, gfx::Point(10, 20), 0, getTime());
909 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&release); 909 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
910 EXPECT_EQ(0, delegate1.gesture_event_count()); 910 EXPECT_EQ(0, delegate1.gesture_event_count());
911 EXPECT_EQ(0, delegate2.gesture_event_count()); 911 EXPECT_EQ(0, delegate2.gesture_event_count());
912 912
913 // A new press is captured by w2. 913 // A new press is captured by w2.
914 ui::TouchEvent press2( 914 ui::TouchEvent press2(
915 ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime()); 915 ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime());
916 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&press2); 916 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press2);
917 EXPECT_EQ(0, delegate1.gesture_event_count()); 917 EXPECT_EQ(0, delegate1.gesture_event_count());
918 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN. 918 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN.
919 EXPECT_EQ(2, delegate2.gesture_event_count()); 919 EXPECT_EQ(2, delegate2.gesture_event_count());
920 delegate1.ResetCounts(); 920 delegate1.ResetCounts();
921 delegate2.ResetCounts(); 921 delegate2.ResetCounts();
922 922
923 // And releasing capture changes nothing. 923 // And releasing capture changes nothing.
924 w2->ReleaseCapture(); 924 w2->ReleaseCapture();
925 EXPECT_EQ(0, delegate1.gesture_event_count()); 925 EXPECT_EQ(0, delegate1.gesture_event_count());
926 EXPECT_EQ(0, delegate1.touch_event_count()); 926 EXPECT_EQ(0, delegate1.touch_event_count());
927 EXPECT_EQ(0, delegate2.gesture_event_count()); 927 EXPECT_EQ(0, delegate2.gesture_event_count());
928 EXPECT_EQ(0, delegate2.touch_event_count()); 928 EXPECT_EQ(0, delegate2.touch_event_count());
929 } 929 }
930 930
931 TEST_F(WindowTest, TouchCaptureDoesntCancelCapturedTouches) { 931 TEST_F(WindowTest, TouchCaptureDoesntCancelCapturedTouches) {
932 CaptureWindowDelegateImpl delegate; 932 CaptureWindowDelegateImpl delegate;
933 scoped_ptr<Window> window(CreateTestWindowWithDelegate( 933 scoped_ptr<Window> window(CreateTestWindowWithDelegate(
934 &delegate, 0, gfx::Rect(0, 0, 50, 50), root_window())); 934 &delegate, 0, gfx::Rect(0, 0, 50, 50), root_window()));
935 935
936 ui::TouchEvent press( 936 ui::TouchEvent press(
937 ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime()); 937 ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime());
938 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&press); 938 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
939 939
940 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN. 940 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN.
941 EXPECT_EQ(2, delegate.gesture_event_count()); 941 EXPECT_EQ(2, delegate.gesture_event_count());
942 EXPECT_EQ(1, delegate.touch_event_count()); 942 EXPECT_EQ(1, delegate.touch_event_count());
943 delegate.ResetCounts(); 943 delegate.ResetCounts();
944 944
945 window->SetCapture(); 945 window->SetCapture();
946 EXPECT_EQ(0, delegate.gesture_event_count()); 946 EXPECT_EQ(0, delegate.gesture_event_count());
947 EXPECT_EQ(0, delegate.touch_event_count()); 947 EXPECT_EQ(0, delegate.touch_event_count());
948 delegate.ResetCounts(); 948 delegate.ResetCounts();
949 949
950 // On move We will get TOUCH_MOVED, GESTURE_TAP_CANCEL, 950 // On move We will get TOUCH_MOVED, GESTURE_TAP_CANCEL,
951 // GESTURE_SCROLL_START and GESTURE_SCROLL_UPDATE. 951 // GESTURE_SCROLL_START and GESTURE_SCROLL_UPDATE.
952 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(10, 20), 0, getTime()); 952 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(10, 20), 0, getTime());
953 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&move); 953 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move);
954 EXPECT_EQ(1, delegate.touch_event_count()); 954 EXPECT_EQ(1, delegate.touch_event_count());
955 EXPECT_EQ(3, delegate.gesture_event_count()); 955 EXPECT_EQ(3, delegate.gesture_event_count());
956 delegate.ResetCounts(); 956 delegate.ResetCounts();
957 957
958 // Release capture shouldn't change anything. 958 // Release capture shouldn't change anything.
959 window->ReleaseCapture(); 959 window->ReleaseCapture();
960 EXPECT_EQ(0, delegate.touch_event_count()); 960 EXPECT_EQ(0, delegate.touch_event_count());
961 EXPECT_EQ(0, delegate.gesture_event_count()); 961 EXPECT_EQ(0, delegate.gesture_event_count());
962 delegate.ResetCounts(); 962 delegate.ResetCounts();
963 963
964 // On move we still get TOUCH_MOVED and GESTURE_SCROLL_UPDATE. 964 // On move we still get TOUCH_MOVED and GESTURE_SCROLL_UPDATE.
965 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(10, 30), 0, getTime()); 965 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(10, 30), 0, getTime());
966 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&move2); 966 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&move2);
967 EXPECT_EQ(1, delegate.touch_event_count()); 967 EXPECT_EQ(1, delegate.touch_event_count());
968 EXPECT_EQ(1, delegate.gesture_event_count()); 968 EXPECT_EQ(1, delegate.gesture_event_count());
969 delegate.ResetCounts(); 969 delegate.ResetCounts();
970 970
971 // And on release we get TOUCH_RELEASED, GESTURE_SCROLL_END, GESTURE_END 971 // And on release we get TOUCH_RELEASED, GESTURE_SCROLL_END, GESTURE_END
972 ui::TouchEvent release( 972 ui::TouchEvent release(
973 ui::ET_TOUCH_RELEASED, gfx::Point(10, 20), 0, getTime()); 973 ui::ET_TOUCH_RELEASED, gfx::Point(10, 20), 0, getTime());
974 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&release); 974 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&release);
975 EXPECT_EQ(1, delegate.touch_event_count()); 975 EXPECT_EQ(1, delegate.touch_event_count());
976 EXPECT_EQ(2, delegate.gesture_event_count()); 976 EXPECT_EQ(2, delegate.gesture_event_count());
977 } 977 }
978 978
979 979
980 // Assertions around SetCapture() and touch/gestures. 980 // Assertions around SetCapture() and touch/gestures.
981 TEST_F(WindowTest, TransferCaptureTouchEvents) { 981 TEST_F(WindowTest, TransferCaptureTouchEvents) {
982 // Touch on |w1|. 982 // Touch on |w1|.
983 CaptureWindowDelegateImpl d1; 983 CaptureWindowDelegateImpl d1;
984 scoped_ptr<Window> w1(CreateTestWindowWithDelegate( 984 scoped_ptr<Window> w1(CreateTestWindowWithDelegate(
985 &d1, 0, gfx::Rect(0, 0, 20, 20), root_window())); 985 &d1, 0, gfx::Rect(0, 0, 20, 20), root_window()));
986 ui::TouchEvent p1(ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime()); 986 ui::TouchEvent p1(ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime());
987 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&p1); 987 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&p1);
988 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN. 988 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN.
989 EXPECT_EQ(1, d1.touch_event_count()); 989 EXPECT_EQ(1, d1.touch_event_count());
990 EXPECT_EQ(2, d1.gesture_event_count()); 990 EXPECT_EQ(2, d1.gesture_event_count());
991 d1.ResetCounts(); 991 d1.ResetCounts();
992 992
993 // Touch on |w2| with a different id. 993 // Touch on |w2| with a different id.
994 CaptureWindowDelegateImpl d2; 994 CaptureWindowDelegateImpl d2;
995 scoped_ptr<Window> w2(CreateTestWindowWithDelegate( 995 scoped_ptr<Window> w2(CreateTestWindowWithDelegate(
996 &d2, 0, gfx::Rect(40, 0, 40, 20), root_window())); 996 &d2, 0, gfx::Rect(40, 0, 40, 20), root_window()));
997 ui::TouchEvent p2(ui::ET_TOUCH_PRESSED, gfx::Point(41, 10), 1, getTime()); 997 ui::TouchEvent p2(ui::ET_TOUCH_PRESSED, gfx::Point(41, 10), 1, getTime());
998 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&p2); 998 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&p2);
999 EXPECT_EQ(0, d1.touch_event_count()); 999 EXPECT_EQ(0, d1.touch_event_count());
1000 EXPECT_EQ(0, d1.gesture_event_count()); 1000 EXPECT_EQ(0, d1.gesture_event_count());
1001 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN for new target window. 1001 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN for new target window.
1002 EXPECT_EQ(1, d2.touch_event_count()); 1002 EXPECT_EQ(1, d2.touch_event_count());
1003 EXPECT_EQ(2, d2.gesture_event_count()); 1003 EXPECT_EQ(2, d2.gesture_event_count());
1004 d1.ResetCounts(); 1004 d1.ResetCounts();
1005 d2.ResetCounts(); 1005 d2.ResetCounts();
1006 1006
1007 // Set capture on |w2|, this should send a cancel (TAP_CANCEL, END) to |w1| 1007 // Set capture on |w2|, this should send a cancel (TAP_CANCEL, END) to |w1|
1008 // but not |w2|. 1008 // but not |w2|.
(...skipping 15 matching lines...) Expand all
1024 EXPECT_EQ(0, d1.touch_event_count()); 1024 EXPECT_EQ(0, d1.touch_event_count());
1025 EXPECT_EQ(0, d1.gesture_event_count()); 1025 EXPECT_EQ(0, d1.gesture_event_count());
1026 EXPECT_EQ(0, d2.touch_event_count()); 1026 EXPECT_EQ(0, d2.touch_event_count());
1027 EXPECT_EQ(0, d2.gesture_event_count()); 1027 EXPECT_EQ(0, d2.gesture_event_count());
1028 EXPECT_EQ(0, d3.touch_event_count()); 1028 EXPECT_EQ(0, d3.touch_event_count());
1029 EXPECT_EQ(0, d3.gesture_event_count()); 1029 EXPECT_EQ(0, d3.gesture_event_count());
1030 1030
1031 // Move touch id originally associated with |w2|. Since capture was transfered 1031 // Move touch id originally associated with |w2|. Since capture was transfered
1032 // from 2 to 3 only |w3| should get the event. 1032 // from 2 to 3 only |w3| should get the event.
1033 ui::TouchEvent m3(ui::ET_TOUCH_MOVED, gfx::Point(110, 105), 1, getTime()); 1033 ui::TouchEvent m3(ui::ET_TOUCH_MOVED, gfx::Point(110, 105), 1, getTime());
1034 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&m3); 1034 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&m3);
1035 EXPECT_EQ(0, d1.touch_event_count()); 1035 EXPECT_EQ(0, d1.touch_event_count());
1036 EXPECT_EQ(0, d1.gesture_event_count()); 1036 EXPECT_EQ(0, d1.gesture_event_count());
1037 EXPECT_EQ(0, d2.touch_event_count()); 1037 EXPECT_EQ(0, d2.touch_event_count());
1038 EXPECT_EQ(0, d2.gesture_event_count()); 1038 EXPECT_EQ(0, d2.gesture_event_count());
1039 // |w3| gets a TOUCH_MOVE, TAP_CANCEL and two scroll related events. 1039 // |w3| gets a TOUCH_MOVE, TAP_CANCEL and two scroll related events.
1040 EXPECT_EQ(1, d3.touch_event_count()); 1040 EXPECT_EQ(1, d3.touch_event_count());
1041 EXPECT_EQ(3, d3.gesture_event_count()); 1041 EXPECT_EQ(3, d3.gesture_event_count());
1042 d1.ResetCounts(); 1042 d1.ResetCounts();
1043 d2.ResetCounts(); 1043 d2.ResetCounts();
1044 d3.ResetCounts(); 1044 d3.ResetCounts();
1045 1045
1046 // When we release capture, no touches are canceled. 1046 // When we release capture, no touches are canceled.
1047 w3->ReleaseCapture(); 1047 w3->ReleaseCapture();
1048 EXPECT_EQ(0, d1.touch_event_count()); 1048 EXPECT_EQ(0, d1.touch_event_count());
1049 EXPECT_EQ(0, d1.gesture_event_count()); 1049 EXPECT_EQ(0, d1.gesture_event_count());
1050 EXPECT_EQ(0, d2.touch_event_count()); 1050 EXPECT_EQ(0, d2.touch_event_count());
1051 EXPECT_EQ(0, d2.gesture_event_count()); 1051 EXPECT_EQ(0, d2.gesture_event_count());
1052 EXPECT_EQ(0, d3.touch_event_count()); 1052 EXPECT_EQ(0, d3.touch_event_count());
1053 EXPECT_EQ(0, d3.gesture_event_count()); 1053 EXPECT_EQ(0, d3.gesture_event_count());
1054 1054
1055 // And when we move the touch again, |w3| still gets the events. 1055 // And when we move the touch again, |w3| still gets the events.
1056 ui::TouchEvent m4(ui::ET_TOUCH_MOVED, gfx::Point(120, 105), 1, getTime()); 1056 ui::TouchEvent m4(ui::ET_TOUCH_MOVED, gfx::Point(120, 105), 1, getTime());
1057 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&m4); 1057 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&m4);
1058 EXPECT_EQ(0, d1.touch_event_count()); 1058 EXPECT_EQ(0, d1.touch_event_count());
1059 EXPECT_EQ(0, d1.gesture_event_count()); 1059 EXPECT_EQ(0, d1.gesture_event_count());
1060 EXPECT_EQ(0, d2.touch_event_count()); 1060 EXPECT_EQ(0, d2.touch_event_count());
1061 EXPECT_EQ(0, d2.gesture_event_count()); 1061 EXPECT_EQ(0, d2.gesture_event_count());
1062 EXPECT_EQ(1, d3.touch_event_count()); 1062 EXPECT_EQ(1, d3.touch_event_count());
1063 EXPECT_EQ(1, d3.gesture_event_count()); 1063 EXPECT_EQ(1, d3.gesture_event_count());
1064 d1.ResetCounts(); 1064 d1.ResetCounts();
1065 d2.ResetCounts(); 1065 d2.ResetCounts();
1066 d3.ResetCounts(); 1066 d3.ResetCounts();
1067 } 1067 }
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1198 EXPECT_FALSE(d2.exited()); 1198 EXPECT_FALSE(d2.exited());
1199 1199
1200 generator.MoveMouseToCenterOf(w2.get()); 1200 generator.MoveMouseToCenterOf(w2.get());
1201 EXPECT_TRUE(d1.entered()); 1201 EXPECT_TRUE(d1.entered());
1202 EXPECT_TRUE(d1.exited()); 1202 EXPECT_TRUE(d1.exited());
1203 EXPECT_TRUE(d2.entered()); 1203 EXPECT_TRUE(d2.entered());
1204 EXPECT_FALSE(d2.exited()); 1204 EXPECT_FALSE(d2.exited());
1205 } 1205 }
1206 1206
1207 // Verifies that the WindowDelegate receives MouseExit from ET_MOUSE_EXITED. 1207 // Verifies that the WindowDelegate receives MouseExit from ET_MOUSE_EXITED.
1208 TEST_F(WindowTest, WindowTreeHostExit) { 1208 TEST_F(WindowTest, RootWindowHostExit) {
1209 MouseEnterExitWindowDelegate d1; 1209 MouseEnterExitWindowDelegate d1;
1210 scoped_ptr<Window> w1( 1210 scoped_ptr<Window> w1(
1211 CreateTestWindowWithDelegate(&d1, 1, gfx::Rect(10, 10, 50, 50), 1211 CreateTestWindowWithDelegate(&d1, 1, gfx::Rect(10, 10, 50, 50),
1212 root_window())); 1212 root_window()));
1213 1213
1214 test::EventGenerator generator(root_window()); 1214 test::EventGenerator generator(root_window());
1215 generator.MoveMouseToCenterOf(w1.get()); 1215 generator.MoveMouseToCenterOf(w1.get());
1216 EXPECT_TRUE(d1.entered()); 1216 EXPECT_TRUE(d1.entered());
1217 EXPECT_FALSE(d1.exited()); 1217 EXPECT_FALSE(d1.exited());
1218 d1.ResetExpectations(); 1218 d1.ResetExpectations();
1219 1219
1220 ui::MouseEvent exit_event( 1220 ui::MouseEvent exit_event(
1221 ui::ET_MOUSE_EXITED, gfx::Point(), gfx::Point(), 0); 1221 ui::ET_MOUSE_EXITED, gfx::Point(), gfx::Point(), 0);
1222 dispatcher()->AsWindowTreeHostDelegate()->OnHostMouseEvent(&exit_event); 1222 dispatcher()->AsRootWindowHostDelegate()->OnHostMouseEvent(&exit_event);
1223 EXPECT_FALSE(d1.entered()); 1223 EXPECT_FALSE(d1.entered());
1224 EXPECT_TRUE(d1.exited()); 1224 EXPECT_TRUE(d1.exited());
1225 } 1225 }
1226 1226
1227 // Verifies that the WindowDelegate receives MouseExit and MouseEnter events for 1227 // Verifies that the WindowDelegate receives MouseExit and MouseEnter events for
1228 // mouse transitions from window to window, even if the entered window sets 1228 // mouse transitions from window to window, even if the entered window sets
1229 // and releases capture. 1229 // and releases capture.
1230 TEST_F(WindowTest, MouseEnterExitWithClick) { 1230 TEST_F(WindowTest, MouseEnterExitWithClick) {
1231 MouseEnterExitWindowDelegate d1; 1231 MouseEnterExitWindowDelegate d1;
1232 scoped_ptr<Window> w1( 1232 scoped_ptr<Window> w1(
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
1569 gfx::Rect(0, 0, 20, 20), root_window())); 1569 gfx::Rect(0, 0, 20, 20), root_window()));
1570 1570
1571 // Rotate the root-window clock-wise 90 degrees. 1571 // Rotate the root-window clock-wise 90 degrees.
1572 gfx::Transform transform; 1572 gfx::Transform transform;
1573 transform.Translate(size.height(), 0.0); 1573 transform.Translate(size.height(), 0.0);
1574 transform.Rotate(90.0); 1574 transform.Rotate(90.0);
1575 dispatcher()->host()->SetTransform(transform); 1575 dispatcher()->host()->SetTransform(transform);
1576 1576
1577 ui::TouchEvent press( 1577 ui::TouchEvent press(
1578 ui::ET_TOUCH_PRESSED, gfx::Point(size.height() - 10, 10), 0, getTime()); 1578 ui::ET_TOUCH_PRESSED, gfx::Point(size.height() - 10, 10), 0, getTime());
1579 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&press); 1579 dispatcher()->AsRootWindowHostDelegate()->OnHostTouchEvent(&press);
1580 EXPECT_EQ(gfx::Point(10, 10).ToString(), delegate->position().ToString()); 1580 EXPECT_EQ(gfx::Point(10, 10).ToString(), delegate->position().ToString());
1581 } 1581 }
1582 1582
1583 // Various assertions for transient children. 1583 // Various assertions for transient children.
1584 TEST_F(WindowTest, TransientChildren) { 1584 TEST_F(WindowTest, TransientChildren) {
1585 scoped_ptr<Window> parent(CreateTestWindowWithId(0, root_window())); 1585 scoped_ptr<Window> parent(CreateTestWindowWithId(0, root_window()));
1586 scoped_ptr<Window> w1(CreateTestWindowWithId(1, parent.get())); 1586 scoped_ptr<Window> w1(CreateTestWindowWithId(1, parent.get()));
1587 scoped_ptr<Window> w3(CreateTestWindowWithId(3, parent.get())); 1587 scoped_ptr<Window> w3(CreateTestWindowWithId(3, parent.get()));
1588 Window* w2 = CreateTestWindowWithId(2, parent.get()); 1588 Window* w2 = CreateTestWindowWithId(2, parent.get());
1589 w1->AddTransientChild(w2); // w2 is now owned by w1. 1589 w1->AddTransientChild(w2); // w2 is now owned by w1.
(...skipping 1590 matching lines...) Expand 10 before | Expand all | Expand 10 after
3180 parent->AddTransientChild(transient); 3180 parent->AddTransientChild(transient);
3181 parent.reset(); 3181 parent.reset();
3182 3182
3183 ASSERT_EQ(2u, destruction_order.size()); 3183 ASSERT_EQ(2u, destruction_order.size());
3184 EXPECT_EQ("transient", destruction_order[0]); 3184 EXPECT_EQ("transient", destruction_order[0]);
3185 EXPECT_EQ("parent", destruction_order[1]); 3185 EXPECT_EQ("parent", destruction_order[1]);
3186 } 3186 }
3187 3187
3188 } // namespace test 3188 } // namespace test
3189 } // namespace aura 3189 } // namespace aura
OLDNEW
« no previous file with comments | « trunk/src/ui/aura/window_tree_host_delegate.h ('k') | trunk/src/ui/base/ime/input_method.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698