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

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

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