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

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

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

Powered by Google App Engine
This is Rietveld 408576698