| OLD | NEW |
| 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 812 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 823 EventGenerator generator(root_window(), gfx::Point(50, 50)); | 823 EventGenerator generator(root_window(), gfx::Point(50, 50)); |
| 824 generator.PressLeftButton(); | 824 generator.PressLeftButton(); |
| 825 EXPECT_EQ(1, delegate.mouse_event_count()); | 825 EXPECT_EQ(1, delegate.mouse_event_count()); |
| 826 generator.ReleaseLeftButton(); | 826 generator.ReleaseLeftButton(); |
| 827 | 827 |
| 828 EXPECT_EQ(2, delegate.mouse_event_count()); | 828 EXPECT_EQ(2, delegate.mouse_event_count()); |
| 829 delegate.ResetCounts(); | 829 delegate.ResetCounts(); |
| 830 | 830 |
| 831 ui::TouchEvent touchev( | 831 ui::TouchEvent touchev( |
| 832 ui::ET_TOUCH_PRESSED, gfx::Point(50, 50), 0, getTime()); | 832 ui::ET_TOUCH_PRESSED, gfx::Point(50, 50), 0, getTime()); |
| 833 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&touchev); | 833 DispatchEventUsingWindowDispatcher(&touchev); |
| 834 EXPECT_EQ(1, delegate.touch_event_count()); | 834 EXPECT_EQ(1, delegate.touch_event_count()); |
| 835 delegate.ResetCounts(); | 835 delegate.ResetCounts(); |
| 836 | 836 |
| 837 window->ReleaseCapture(); | 837 window->ReleaseCapture(); |
| 838 EXPECT_FALSE(window->HasCapture()); | 838 EXPECT_FALSE(window->HasCapture()); |
| 839 EXPECT_EQ(1, delegate.capture_lost_count()); | 839 EXPECT_EQ(1, delegate.capture_lost_count()); |
| 840 EXPECT_EQ(1, delegate.capture_changed_event_count()); | 840 EXPECT_EQ(1, delegate.capture_changed_event_count()); |
| 841 EXPECT_EQ(1, delegate.mouse_event_count()); | 841 EXPECT_EQ(1, delegate.mouse_event_count()); |
| 842 EXPECT_EQ(0, delegate.touch_event_count()); | 842 EXPECT_EQ(0, delegate.touch_event_count()); |
| 843 | 843 |
| 844 generator.PressLeftButton(); | 844 generator.PressLeftButton(); |
| 845 EXPECT_EQ(1, delegate.mouse_event_count()); | 845 EXPECT_EQ(1, delegate.mouse_event_count()); |
| 846 | 846 |
| 847 ui::TouchEvent touchev2( | 847 ui::TouchEvent touchev2( |
| 848 ui::ET_TOUCH_PRESSED, gfx::Point(250, 250), 1, getTime()); | 848 ui::ET_TOUCH_PRESSED, gfx::Point(250, 250), 1, getTime()); |
| 849 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&touchev2); | 849 DispatchEventUsingWindowDispatcher(&touchev2); |
| 850 EXPECT_EQ(0, delegate.touch_event_count()); | 850 EXPECT_EQ(0, delegate.touch_event_count()); |
| 851 | 851 |
| 852 // Removing the capture window from parent should reset the capture window | 852 // Removing the capture window from parent should reset the capture window |
| 853 // in the root window. | 853 // in the root window. |
| 854 window->SetCapture(); | 854 window->SetCapture(); |
| 855 EXPECT_EQ(window.get(), aura::client::GetCaptureWindow(root_window())); | 855 EXPECT_EQ(window.get(), aura::client::GetCaptureWindow(root_window())); |
| 856 window->parent()->RemoveChild(window.get()); | 856 window->parent()->RemoveChild(window.get()); |
| 857 EXPECT_FALSE(window->HasCapture()); | 857 EXPECT_FALSE(window->HasCapture()); |
| 858 EXPECT_EQ(NULL, aura::client::GetCaptureWindow(root_window())); | 858 EXPECT_EQ(NULL, aura::client::GetCaptureWindow(root_window())); |
| 859 } | 859 } |
| 860 | 860 |
| 861 TEST_F(WindowTest, TouchCaptureCancelsOtherTouches) { | 861 TEST_F(WindowTest, TouchCaptureCancelsOtherTouches) { |
| 862 CaptureWindowDelegateImpl delegate1; | 862 CaptureWindowDelegateImpl delegate1; |
| 863 scoped_ptr<Window> w1(CreateTestWindowWithDelegate( | 863 scoped_ptr<Window> w1(CreateTestWindowWithDelegate( |
| 864 &delegate1, 0, gfx::Rect(0, 0, 50, 50), root_window())); | 864 &delegate1, 0, gfx::Rect(0, 0, 50, 50), root_window())); |
| 865 CaptureWindowDelegateImpl delegate2; | 865 CaptureWindowDelegateImpl delegate2; |
| 866 scoped_ptr<Window> w2(CreateTestWindowWithDelegate( | 866 scoped_ptr<Window> w2(CreateTestWindowWithDelegate( |
| 867 &delegate2, 0, gfx::Rect(50, 50, 50, 50), root_window())); | 867 &delegate2, 0, gfx::Rect(50, 50, 50, 50), root_window())); |
| 868 | 868 |
| 869 // Press on w1. | 869 // Press on w1. |
| 870 ui::TouchEvent press( | 870 ui::TouchEvent press( |
| 871 ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime()); | 871 ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime()); |
| 872 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&press); | 872 DispatchEventUsingWindowDispatcher(&press); |
| 873 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN. | 873 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN. |
| 874 EXPECT_EQ(2, delegate1.gesture_event_count()); | 874 EXPECT_EQ(2, delegate1.gesture_event_count()); |
| 875 delegate1.ResetCounts(); | 875 delegate1.ResetCounts(); |
| 876 | 876 |
| 877 // Capturing to w2 should cause the touch to be canceled. | 877 // Capturing to w2 should cause the touch to be canceled. |
| 878 w2->SetCapture(); | 878 w2->SetCapture(); |
| 879 EXPECT_EQ(1, delegate1.touch_event_count()); | 879 EXPECT_EQ(1, delegate1.touch_event_count()); |
| 880 EXPECT_EQ(0, delegate2.touch_event_count()); | 880 EXPECT_EQ(0, delegate2.touch_event_count()); |
| 881 delegate1.ResetCounts(); | 881 delegate1.ResetCounts(); |
| 882 delegate2.ResetCounts(); | 882 delegate2.ResetCounts(); |
| 883 | 883 |
| 884 // Events now go to w2. | 884 // Events now go to w2. |
| 885 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(10, 20), 0, getTime()); | 885 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(10, 20), 0, getTime()); |
| 886 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&move); | 886 DispatchEventUsingWindowDispatcher(&move); |
| 887 EXPECT_EQ(0, delegate1.gesture_event_count()); | 887 EXPECT_EQ(0, delegate1.gesture_event_count()); |
| 888 EXPECT_EQ(0, delegate1.touch_event_count()); | 888 EXPECT_EQ(0, delegate1.touch_event_count()); |
| 889 EXPECT_EQ(0, delegate2.gesture_event_count()); | 889 EXPECT_EQ(0, delegate2.gesture_event_count()); |
| 890 EXPECT_EQ(1, delegate2.touch_event_count()); | 890 EXPECT_EQ(1, delegate2.touch_event_count()); |
| 891 | 891 |
| 892 ui::TouchEvent release( | 892 ui::TouchEvent release( |
| 893 ui::ET_TOUCH_RELEASED, gfx::Point(10, 20), 0, getTime()); | 893 ui::ET_TOUCH_RELEASED, gfx::Point(10, 20), 0, getTime()); |
| 894 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&release); | 894 DispatchEventUsingWindowDispatcher(&release); |
| 895 EXPECT_EQ(0, delegate1.gesture_event_count()); | 895 EXPECT_EQ(0, delegate1.gesture_event_count()); |
| 896 EXPECT_EQ(0, delegate2.gesture_event_count()); | 896 EXPECT_EQ(0, delegate2.gesture_event_count()); |
| 897 | 897 |
| 898 // A new press is captured by w2. | 898 // A new press is captured by w2. |
| 899 ui::TouchEvent press2( | 899 ui::TouchEvent press2( |
| 900 ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime()); | 900 ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime()); |
| 901 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&press2); | 901 DispatchEventUsingWindowDispatcher(&press2); |
| 902 EXPECT_EQ(0, delegate1.gesture_event_count()); | 902 EXPECT_EQ(0, delegate1.gesture_event_count()); |
| 903 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN. | 903 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN. |
| 904 EXPECT_EQ(2, delegate2.gesture_event_count()); | 904 EXPECT_EQ(2, delegate2.gesture_event_count()); |
| 905 delegate1.ResetCounts(); | 905 delegate1.ResetCounts(); |
| 906 delegate2.ResetCounts(); | 906 delegate2.ResetCounts(); |
| 907 | 907 |
| 908 // And releasing capture changes nothing. | 908 // And releasing capture changes nothing. |
| 909 w2->ReleaseCapture(); | 909 w2->ReleaseCapture(); |
| 910 EXPECT_EQ(0, delegate1.gesture_event_count()); | 910 EXPECT_EQ(0, delegate1.gesture_event_count()); |
| 911 EXPECT_EQ(0, delegate1.touch_event_count()); | 911 EXPECT_EQ(0, delegate1.touch_event_count()); |
| 912 EXPECT_EQ(0, delegate2.gesture_event_count()); | 912 EXPECT_EQ(0, delegate2.gesture_event_count()); |
| 913 EXPECT_EQ(0, delegate2.touch_event_count()); | 913 EXPECT_EQ(0, delegate2.touch_event_count()); |
| 914 } | 914 } |
| 915 | 915 |
| 916 TEST_F(WindowTest, TouchCaptureDoesntCancelCapturedTouches) { | 916 TEST_F(WindowTest, TouchCaptureDoesntCancelCapturedTouches) { |
| 917 CaptureWindowDelegateImpl delegate; | 917 CaptureWindowDelegateImpl delegate; |
| 918 scoped_ptr<Window> window(CreateTestWindowWithDelegate( | 918 scoped_ptr<Window> window(CreateTestWindowWithDelegate( |
| 919 &delegate, 0, gfx::Rect(0, 0, 50, 50), root_window())); | 919 &delegate, 0, gfx::Rect(0, 0, 50, 50), root_window())); |
| 920 | 920 |
| 921 ui::TouchEvent press( | 921 ui::TouchEvent press( |
| 922 ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime()); | 922 ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime()); |
| 923 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&press); | 923 DispatchEventUsingWindowDispatcher(&press); |
| 924 | 924 |
| 925 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN. | 925 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN. |
| 926 EXPECT_EQ(2, delegate.gesture_event_count()); | 926 EXPECT_EQ(2, delegate.gesture_event_count()); |
| 927 EXPECT_EQ(1, delegate.touch_event_count()); | 927 EXPECT_EQ(1, delegate.touch_event_count()); |
| 928 delegate.ResetCounts(); | 928 delegate.ResetCounts(); |
| 929 | 929 |
| 930 window->SetCapture(); | 930 window->SetCapture(); |
| 931 EXPECT_EQ(0, delegate.gesture_event_count()); | 931 EXPECT_EQ(0, delegate.gesture_event_count()); |
| 932 EXPECT_EQ(0, delegate.touch_event_count()); | 932 EXPECT_EQ(0, delegate.touch_event_count()); |
| 933 delegate.ResetCounts(); | 933 delegate.ResetCounts(); |
| 934 | 934 |
| 935 // On move We will get TOUCH_MOVED, GESTURE_TAP_CANCEL, | 935 // On move We will get TOUCH_MOVED, GESTURE_TAP_CANCEL, |
| 936 // GESTURE_SCROLL_START and GESTURE_SCROLL_UPDATE. | 936 // GESTURE_SCROLL_START and GESTURE_SCROLL_UPDATE. |
| 937 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(10, 20), 0, getTime()); | 937 ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(10, 20), 0, getTime()); |
| 938 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&move); | 938 DispatchEventUsingWindowDispatcher(&move); |
| 939 EXPECT_EQ(1, delegate.touch_event_count()); | 939 EXPECT_EQ(1, delegate.touch_event_count()); |
| 940 EXPECT_EQ(3, delegate.gesture_event_count()); | 940 EXPECT_EQ(3, delegate.gesture_event_count()); |
| 941 delegate.ResetCounts(); | 941 delegate.ResetCounts(); |
| 942 | 942 |
| 943 // Release capture shouldn't change anything. | 943 // Release capture shouldn't change anything. |
| 944 window->ReleaseCapture(); | 944 window->ReleaseCapture(); |
| 945 EXPECT_EQ(0, delegate.touch_event_count()); | 945 EXPECT_EQ(0, delegate.touch_event_count()); |
| 946 EXPECT_EQ(0, delegate.gesture_event_count()); | 946 EXPECT_EQ(0, delegate.gesture_event_count()); |
| 947 delegate.ResetCounts(); | 947 delegate.ResetCounts(); |
| 948 | 948 |
| 949 // On move we still get TOUCH_MOVED and GESTURE_SCROLL_UPDATE. | 949 // On move we still get TOUCH_MOVED and GESTURE_SCROLL_UPDATE. |
| 950 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(10, 30), 0, getTime()); | 950 ui::TouchEvent move2(ui::ET_TOUCH_MOVED, gfx::Point(10, 30), 0, getTime()); |
| 951 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&move2); | 951 DispatchEventUsingWindowDispatcher(&move2); |
| 952 EXPECT_EQ(1, delegate.touch_event_count()); | 952 EXPECT_EQ(1, delegate.touch_event_count()); |
| 953 EXPECT_EQ(1, delegate.gesture_event_count()); | 953 EXPECT_EQ(1, delegate.gesture_event_count()); |
| 954 delegate.ResetCounts(); | 954 delegate.ResetCounts(); |
| 955 | 955 |
| 956 // And on release we get TOUCH_RELEASED, GESTURE_SCROLL_END, GESTURE_END | 956 // And on release we get TOUCH_RELEASED, GESTURE_SCROLL_END, GESTURE_END |
| 957 ui::TouchEvent release( | 957 ui::TouchEvent release( |
| 958 ui::ET_TOUCH_RELEASED, gfx::Point(10, 20), 0, getTime()); | 958 ui::ET_TOUCH_RELEASED, gfx::Point(10, 20), 0, getTime()); |
| 959 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&release); | 959 DispatchEventUsingWindowDispatcher(&release); |
| 960 EXPECT_EQ(1, delegate.touch_event_count()); | 960 EXPECT_EQ(1, delegate.touch_event_count()); |
| 961 EXPECT_EQ(2, delegate.gesture_event_count()); | 961 EXPECT_EQ(2, delegate.gesture_event_count()); |
| 962 } | 962 } |
| 963 | 963 |
| 964 | 964 |
| 965 // Assertions around SetCapture() and touch/gestures. | 965 // Assertions around SetCapture() and touch/gestures. |
| 966 TEST_F(WindowTest, TransferCaptureTouchEvents) { | 966 TEST_F(WindowTest, TransferCaptureTouchEvents) { |
| 967 // Touch on |w1|. | 967 // Touch on |w1|. |
| 968 CaptureWindowDelegateImpl d1; | 968 CaptureWindowDelegateImpl d1; |
| 969 scoped_ptr<Window> w1(CreateTestWindowWithDelegate( | 969 scoped_ptr<Window> w1(CreateTestWindowWithDelegate( |
| 970 &d1, 0, gfx::Rect(0, 0, 20, 20), root_window())); | 970 &d1, 0, gfx::Rect(0, 0, 20, 20), root_window())); |
| 971 ui::TouchEvent p1(ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime()); | 971 ui::TouchEvent p1(ui::ET_TOUCH_PRESSED, gfx::Point(10, 10), 0, getTime()); |
| 972 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&p1); | 972 DispatchEventUsingWindowDispatcher(&p1); |
| 973 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN. | 973 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN. |
| 974 EXPECT_EQ(1, d1.touch_event_count()); | 974 EXPECT_EQ(1, d1.touch_event_count()); |
| 975 EXPECT_EQ(2, d1.gesture_event_count()); | 975 EXPECT_EQ(2, d1.gesture_event_count()); |
| 976 d1.ResetCounts(); | 976 d1.ResetCounts(); |
| 977 | 977 |
| 978 // Touch on |w2| with a different id. | 978 // Touch on |w2| with a different id. |
| 979 CaptureWindowDelegateImpl d2; | 979 CaptureWindowDelegateImpl d2; |
| 980 scoped_ptr<Window> w2(CreateTestWindowWithDelegate( | 980 scoped_ptr<Window> w2(CreateTestWindowWithDelegate( |
| 981 &d2, 0, gfx::Rect(40, 0, 40, 20), root_window())); | 981 &d2, 0, gfx::Rect(40, 0, 40, 20), root_window())); |
| 982 ui::TouchEvent p2(ui::ET_TOUCH_PRESSED, gfx::Point(41, 10), 1, getTime()); | 982 ui::TouchEvent p2(ui::ET_TOUCH_PRESSED, gfx::Point(41, 10), 1, getTime()); |
| 983 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&p2); | 983 DispatchEventUsingWindowDispatcher(&p2); |
| 984 EXPECT_EQ(0, d1.touch_event_count()); | 984 EXPECT_EQ(0, d1.touch_event_count()); |
| 985 EXPECT_EQ(0, d1.gesture_event_count()); | 985 EXPECT_EQ(0, d1.gesture_event_count()); |
| 986 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN for new target window. | 986 // We will get both GESTURE_BEGIN and GESTURE_TAP_DOWN for new target window. |
| 987 EXPECT_EQ(1, d2.touch_event_count()); | 987 EXPECT_EQ(1, d2.touch_event_count()); |
| 988 EXPECT_EQ(2, d2.gesture_event_count()); | 988 EXPECT_EQ(2, d2.gesture_event_count()); |
| 989 d1.ResetCounts(); | 989 d1.ResetCounts(); |
| 990 d2.ResetCounts(); | 990 d2.ResetCounts(); |
| 991 | 991 |
| 992 // Set capture on |w2|, this should send a cancel (TAP_CANCEL, END) to |w1| | 992 // Set capture on |w2|, this should send a cancel (TAP_CANCEL, END) to |w1| |
| 993 // but not |w2|. | 993 // but not |w2|. |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1009 EXPECT_EQ(0, d1.touch_event_count()); | 1009 EXPECT_EQ(0, d1.touch_event_count()); |
| 1010 EXPECT_EQ(0, d1.gesture_event_count()); | 1010 EXPECT_EQ(0, d1.gesture_event_count()); |
| 1011 EXPECT_EQ(0, d2.touch_event_count()); | 1011 EXPECT_EQ(0, d2.touch_event_count()); |
| 1012 EXPECT_EQ(0, d2.gesture_event_count()); | 1012 EXPECT_EQ(0, d2.gesture_event_count()); |
| 1013 EXPECT_EQ(0, d3.touch_event_count()); | 1013 EXPECT_EQ(0, d3.touch_event_count()); |
| 1014 EXPECT_EQ(0, d3.gesture_event_count()); | 1014 EXPECT_EQ(0, d3.gesture_event_count()); |
| 1015 | 1015 |
| 1016 // Move touch id originally associated with |w2|. Since capture was transfered | 1016 // Move touch id originally associated with |w2|. Since capture was transfered |
| 1017 // from 2 to 3 only |w3| should get the event. | 1017 // from 2 to 3 only |w3| should get the event. |
| 1018 ui::TouchEvent m3(ui::ET_TOUCH_MOVED, gfx::Point(110, 105), 1, getTime()); | 1018 ui::TouchEvent m3(ui::ET_TOUCH_MOVED, gfx::Point(110, 105), 1, getTime()); |
| 1019 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&m3); | 1019 DispatchEventUsingWindowDispatcher(&m3); |
| 1020 EXPECT_EQ(0, d1.touch_event_count()); | 1020 EXPECT_EQ(0, d1.touch_event_count()); |
| 1021 EXPECT_EQ(0, d1.gesture_event_count()); | 1021 EXPECT_EQ(0, d1.gesture_event_count()); |
| 1022 EXPECT_EQ(0, d2.touch_event_count()); | 1022 EXPECT_EQ(0, d2.touch_event_count()); |
| 1023 EXPECT_EQ(0, d2.gesture_event_count()); | 1023 EXPECT_EQ(0, d2.gesture_event_count()); |
| 1024 // |w3| gets a TOUCH_MOVE, TAP_CANCEL and two scroll related events. | 1024 // |w3| gets a TOUCH_MOVE, TAP_CANCEL and two scroll related events. |
| 1025 EXPECT_EQ(1, d3.touch_event_count()); | 1025 EXPECT_EQ(1, d3.touch_event_count()); |
| 1026 EXPECT_EQ(3, d3.gesture_event_count()); | 1026 EXPECT_EQ(3, d3.gesture_event_count()); |
| 1027 d1.ResetCounts(); | 1027 d1.ResetCounts(); |
| 1028 d2.ResetCounts(); | 1028 d2.ResetCounts(); |
| 1029 d3.ResetCounts(); | 1029 d3.ResetCounts(); |
| 1030 | 1030 |
| 1031 // When we release capture, no touches are canceled. | 1031 // When we release capture, no touches are canceled. |
| 1032 w3->ReleaseCapture(); | 1032 w3->ReleaseCapture(); |
| 1033 EXPECT_EQ(0, d1.touch_event_count()); | 1033 EXPECT_EQ(0, d1.touch_event_count()); |
| 1034 EXPECT_EQ(0, d1.gesture_event_count()); | 1034 EXPECT_EQ(0, d1.gesture_event_count()); |
| 1035 EXPECT_EQ(0, d2.touch_event_count()); | 1035 EXPECT_EQ(0, d2.touch_event_count()); |
| 1036 EXPECT_EQ(0, d2.gesture_event_count()); | 1036 EXPECT_EQ(0, d2.gesture_event_count()); |
| 1037 EXPECT_EQ(0, d3.touch_event_count()); | 1037 EXPECT_EQ(0, d3.touch_event_count()); |
| 1038 EXPECT_EQ(0, d3.gesture_event_count()); | 1038 EXPECT_EQ(0, d3.gesture_event_count()); |
| 1039 | 1039 |
| 1040 // And when we move the touch again, |w3| still gets the events. | 1040 // And when we move the touch again, |w3| still gets the events. |
| 1041 ui::TouchEvent m4(ui::ET_TOUCH_MOVED, gfx::Point(120, 105), 1, getTime()); | 1041 ui::TouchEvent m4(ui::ET_TOUCH_MOVED, gfx::Point(120, 105), 1, getTime()); |
| 1042 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&m4); | 1042 DispatchEventUsingWindowDispatcher(&m4); |
| 1043 EXPECT_EQ(0, d1.touch_event_count()); | 1043 EXPECT_EQ(0, d1.touch_event_count()); |
| 1044 EXPECT_EQ(0, d1.gesture_event_count()); | 1044 EXPECT_EQ(0, d1.gesture_event_count()); |
| 1045 EXPECT_EQ(0, d2.touch_event_count()); | 1045 EXPECT_EQ(0, d2.touch_event_count()); |
| 1046 EXPECT_EQ(0, d2.gesture_event_count()); | 1046 EXPECT_EQ(0, d2.gesture_event_count()); |
| 1047 EXPECT_EQ(1, d3.touch_event_count()); | 1047 EXPECT_EQ(1, d3.touch_event_count()); |
| 1048 EXPECT_EQ(1, d3.gesture_event_count()); | 1048 EXPECT_EQ(1, d3.gesture_event_count()); |
| 1049 d1.ResetCounts(); | 1049 d1.ResetCounts(); |
| 1050 d2.ResetCounts(); | 1050 d2.ResetCounts(); |
| 1051 d3.ResetCounts(); | 1051 d3.ResetCounts(); |
| 1052 } | 1052 } |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1197 root_window())); | 1197 root_window())); |
| 1198 | 1198 |
| 1199 test::EventGenerator generator(root_window()); | 1199 test::EventGenerator generator(root_window()); |
| 1200 generator.MoveMouseToCenterOf(w1.get()); | 1200 generator.MoveMouseToCenterOf(w1.get()); |
| 1201 EXPECT_TRUE(d1.entered()); | 1201 EXPECT_TRUE(d1.entered()); |
| 1202 EXPECT_FALSE(d1.exited()); | 1202 EXPECT_FALSE(d1.exited()); |
| 1203 d1.ResetExpectations(); | 1203 d1.ResetExpectations(); |
| 1204 | 1204 |
| 1205 ui::MouseEvent exit_event( | 1205 ui::MouseEvent exit_event( |
| 1206 ui::ET_MOUSE_EXITED, gfx::Point(), gfx::Point(), 0, 0); | 1206 ui::ET_MOUSE_EXITED, gfx::Point(), gfx::Point(), 0, 0); |
| 1207 dispatcher()->AsWindowTreeHostDelegate()->OnHostMouseEvent(&exit_event); | 1207 DispatchEventUsingWindowDispatcher(&exit_event); |
| 1208 EXPECT_FALSE(d1.entered()); | 1208 EXPECT_FALSE(d1.entered()); |
| 1209 EXPECT_TRUE(d1.exited()); | 1209 EXPECT_TRUE(d1.exited()); |
| 1210 } | 1210 } |
| 1211 | 1211 |
| 1212 // Verifies that the WindowDelegate receives MouseExit and MouseEnter events for | 1212 // Verifies that the WindowDelegate receives MouseExit and MouseEnter events for |
| 1213 // mouse transitions from window to window, even if the entered window sets | 1213 // mouse transitions from window to window, even if the entered window sets |
| 1214 // and releases capture. | 1214 // and releases capture. |
| 1215 TEST_F(WindowTest, MouseEnterExitWithClick) { | 1215 TEST_F(WindowTest, MouseEnterExitWithClick) { |
| 1216 MouseEnterExitWindowDelegate d1; | 1216 MouseEnterExitWindowDelegate d1; |
| 1217 scoped_ptr<Window> w1( | 1217 scoped_ptr<Window> w1( |
| (...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1556 gfx::Rect(0, 0, 20, 20), root_window())); | 1556 gfx::Rect(0, 0, 20, 20), root_window())); |
| 1557 | 1557 |
| 1558 // Rotate the root-window clock-wise 90 degrees. | 1558 // Rotate the root-window clock-wise 90 degrees. |
| 1559 gfx::Transform transform; | 1559 gfx::Transform transform; |
| 1560 transform.Translate(size.height(), 0.0); | 1560 transform.Translate(size.height(), 0.0); |
| 1561 transform.Rotate(90.0); | 1561 transform.Rotate(90.0); |
| 1562 dispatcher()->host()->SetTransform(transform); | 1562 dispatcher()->host()->SetTransform(transform); |
| 1563 | 1563 |
| 1564 ui::TouchEvent press( | 1564 ui::TouchEvent press( |
| 1565 ui::ET_TOUCH_PRESSED, gfx::Point(size.height() - 10, 10), 0, getTime()); | 1565 ui::ET_TOUCH_PRESSED, gfx::Point(size.height() - 10, 10), 0, getTime()); |
| 1566 dispatcher()->AsWindowTreeHostDelegate()->OnHostTouchEvent(&press); | 1566 DispatchEventUsingWindowDispatcher(&press); |
| 1567 EXPECT_EQ(gfx::Point(10, 10).ToString(), delegate->position().ToString()); | 1567 EXPECT_EQ(gfx::Point(10, 10).ToString(), delegate->position().ToString()); |
| 1568 } | 1568 } |
| 1569 | 1569 |
| 1570 namespace { | 1570 namespace { |
| 1571 DEFINE_WINDOW_PROPERTY_KEY(int, kIntKey, -2); | 1571 DEFINE_WINDOW_PROPERTY_KEY(int, kIntKey, -2); |
| 1572 DEFINE_WINDOW_PROPERTY_KEY(const char*, kStringKey, "squeamish"); | 1572 DEFINE_WINDOW_PROPERTY_KEY(const char*, kStringKey, "squeamish"); |
| 1573 } | 1573 } |
| 1574 | 1574 |
| 1575 TEST_F(WindowTest, Property) { | 1575 TEST_F(WindowTest, Property) { |
| 1576 scoped_ptr<Window> w(CreateTestWindowWithId(0, root_window())); | 1576 scoped_ptr<Window> w(CreateTestWindowWithId(0, root_window())); |
| (...skipping 1746 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3323 BuildRootLayerTreeDescription(*root.layer())) | 3323 BuildRootLayerTreeDescription(*root.layer())) |
| 3324 << "layer tree doesn't match at " << i; | 3324 << "layer tree doesn't match at " << i; |
| 3325 EXPECT_EQ(data[i].expected_description, | 3325 EXPECT_EQ(data[i].expected_description, |
| 3326 BuildRootWindowTreeDescription(root)) | 3326 BuildRootWindowTreeDescription(root)) |
| 3327 << "window tree doesn't match at " << i; | 3327 << "window tree doesn't match at " << i; |
| 3328 } | 3328 } |
| 3329 } | 3329 } |
| 3330 | 3330 |
| 3331 } // namespace test | 3331 } // namespace test |
| 3332 } // namespace aura | 3332 } // namespace aura |
| OLD | NEW |