Index: chrome/browser/chromeos/accessibility/select_to_speak_event_handler_unittest.cc |
diff --git a/chrome/browser/chromeos/accessibility/select_to_speak_event_handler_unittest.cc b/chrome/browser/chromeos/accessibility/select_to_speak_event_handler_unittest.cc |
index d3a986547fecb526b8ecdaddbac2a45ab2e96593..79d31f9fe22a076e7b8361533059967cd22a9d7c 100644 |
--- a/chrome/browser/chromeos/accessibility/select_to_speak_event_handler_unittest.cc |
+++ b/chrome/browser/chromeos/accessibility/select_to_speak_event_handler_unittest.cc |
@@ -11,14 +11,12 @@ |
#include "ash/test/ash_test_helper.h" |
#include "ash/test/ash_test_views_delegate.h" |
#include "base/macros.h" |
-#include "chrome/browser/chromeos/accessibility/speech_monitor.h" |
#include "chrome/browser/ui/aura/accessibility/automation_manager_aura.h" |
#include "chrome/test/base/testing_profile.h" |
#include "ui/aura/window.h" |
#include "ui/events/event.h" |
#include "ui/events/event_constants.h" |
#include "ui/events/test/event_generator.h" |
-#include "ui/views/views_delegate.h" |
using chromeos::SelectToSpeakEventHandler; |
@@ -52,28 +50,27 @@ class EventCapturer : public ui::EventHandler { |
DISALLOW_COPY_AND_ASSIGN(EventCapturer); |
}; |
-class SelectToSpeakAccessibilityEventDelegate |
- : public ash::test::TestAccessibilityEventDelegate { |
+class SelectToSpeakMouseEventDelegate |
+ : public chromeos::SelectToSpeakForwardedEventDelegateForTesting { |
public: |
- SelectToSpeakAccessibilityEventDelegate() {} |
- ~SelectToSpeakAccessibilityEventDelegate() override {} |
+ SelectToSpeakMouseEventDelegate() {} |
void Reset() { events_captured_.clear(); } |
- bool CapturedAXEvent(ui::AXEvent event_type) { |
+ bool CapturedMouseEvent(ui::EventType event_type) { |
return events_captured_.find(event_type) != events_captured_.end(); |
} |
- // Overriden from TestAccessibilityEventDelegate. |
- void NotifyAccessibilityEvent(views::View* view, |
- ui::AXEvent event_type) override { |
- events_captured_.insert(event_type); |
+ // Overriden from SelectToSpeakForwardedEventDelegateForTesting |
+ void OnForwardEventToSelectToSpeakExtension( |
+ const ui::MouseEvent& event) override { |
+ events_captured_.insert(event.type()); |
} |
private: |
- std::set<ui::AXEvent> events_captured_; |
+ std::set<ui::EventType> events_captured_; |
- DISALLOW_COPY_AND_ASSIGN(SelectToSpeakAccessibilityEventDelegate); |
+ DISALLOW_COPY_AND_ASSIGN(SelectToSpeakMouseEventDelegate); |
}; |
class SelectToSpeakEventHandlerTest : public ash::test::AshTestBase { |
@@ -84,10 +81,9 @@ class SelectToSpeakEventHandlerTest : public ash::test::AshTestBase { |
void SetUp() override { |
ash::test::AshTestBase::SetUp(); |
- event_delegate_.reset(new SelectToSpeakAccessibilityEventDelegate()); |
- ash_test_helper() |
- ->test_views_delegate() |
- ->set_test_accessibility_event_delegate(event_delegate_.get()); |
+ mouse_event_delegate_.reset(new SelectToSpeakMouseEventDelegate()); |
+ select_to_speak_event_handler_->CaptureForwardedEventsForTesting( |
+ mouse_event_delegate_.get()); |
generator_ = &AshTestBase::GetEventGenerator(); |
CurrentContext()->AddPreTargetHandler(select_to_speak_event_handler_.get()); |
CurrentContext()->AddPreTargetHandler(&event_capturer_); |
@@ -106,7 +102,7 @@ class SelectToSpeakEventHandlerTest : public ash::test::AshTestBase { |
ui::test::EventGenerator* generator_; |
EventCapturer event_capturer_; |
TestingProfile profile_; |
- std::unique_ptr<SelectToSpeakAccessibilityEventDelegate> event_delegate_; |
+ std::unique_ptr<SelectToSpeakMouseEventDelegate> mouse_event_delegate_; |
private: |
std::unique_ptr<SelectToSpeakEventHandler> select_to_speak_event_handler_; |
@@ -135,10 +131,12 @@ TEST_F(SelectToSpeakEventHandlerTest, PressAndReleaseSearchNotHandled) { |
EXPECT_FALSE(event_capturer_.last_key_event()->handled()); |
} |
+// Note: when running these tests locally on desktop Linux, you may need |
+// to use xvfb-run, otherwise simulating the Search key press may not work. |
TEST_F(SelectToSpeakEventHandlerTest, SearchPlusClick) { |
// If the user holds the Search key and then clicks the mouse button, |
- // the mouse events and the key release event get hancled by the |
- // SelectToSpeakEventHandler, and accessibility events are generated. |
+ // the mouse events and the key release event get handled by the |
+ // SelectToSpeakEventHandler, and mouse events are forwarded to the extension. |
generator_->PressKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN); |
ASSERT_TRUE(event_capturer_.last_key_event()); |
@@ -148,12 +146,12 @@ TEST_F(SelectToSpeakEventHandlerTest, SearchPlusClick) { |
generator_->PressLeftButton(); |
EXPECT_FALSE(event_capturer_.last_mouse_event()); |
- EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_PRESSED)); |
+ EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_PRESSED)); |
generator_->ReleaseLeftButton(); |
EXPECT_FALSE(event_capturer_.last_mouse_event()); |
- EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_RELEASED)); |
+ EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_RELEASED)); |
event_capturer_.Reset(); |
generator_->ReleaseKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN); |
@@ -170,7 +168,7 @@ TEST_F(SelectToSpeakEventHandlerTest, RepeatSearchKey) { |
generator_->PressLeftButton(); |
EXPECT_FALSE(event_capturer_.last_mouse_event()); |
- EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_PRESSED)); |
+ EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_PRESSED)); |
generator_->PressKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN); |
generator_->PressKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN); |
@@ -178,7 +176,7 @@ TEST_F(SelectToSpeakEventHandlerTest, RepeatSearchKey) { |
generator_->ReleaseLeftButton(); |
EXPECT_FALSE(event_capturer_.last_mouse_event()); |
- EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_RELEASED)); |
+ EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_RELEASED)); |
event_capturer_.Reset(); |
generator_->ReleaseKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN); |
@@ -196,23 +194,24 @@ TEST_F(SelectToSpeakEventHandlerTest, SearchPlusClickTwice) { |
generator_->set_current_location(gfx::Point(100, 12)); |
generator_->PressLeftButton(); |
EXPECT_FALSE(event_capturer_.last_mouse_event()); |
- EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_PRESSED)); |
+ EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_PRESSED)); |
generator_->ReleaseLeftButton(); |
EXPECT_FALSE(event_capturer_.last_mouse_event()); |
- EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_RELEASED)); |
+ EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_RELEASED)); |
- event_delegate_->Reset(); |
- EXPECT_FALSE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_PRESSED)); |
- EXPECT_FALSE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_RELEASED)); |
+ mouse_event_delegate_->Reset(); |
+ EXPECT_FALSE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_PRESSED)); |
+ EXPECT_FALSE( |
+ mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_RELEASED)); |
generator_->PressLeftButton(); |
EXPECT_FALSE(event_capturer_.last_mouse_event()); |
- EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_PRESSED)); |
+ EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_PRESSED)); |
generator_->ReleaseLeftButton(); |
EXPECT_FALSE(event_capturer_.last_mouse_event()); |
- EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_RELEASED)); |
+ EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_RELEASED)); |
event_capturer_.Reset(); |
generator_->ReleaseKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN); |
@@ -237,13 +236,14 @@ TEST_F(SelectToSpeakEventHandlerTest, SearchPlusKeyIgnoresClicks) { |
ASSERT_TRUE(event_capturer_.last_mouse_event()); |
EXPECT_FALSE(event_capturer_.last_mouse_event()->handled()); |
- EXPECT_FALSE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_PRESSED)); |
+ EXPECT_FALSE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_PRESSED)); |
generator_->ReleaseLeftButton(); |
ASSERT_TRUE(event_capturer_.last_mouse_event()); |
EXPECT_FALSE(event_capturer_.last_mouse_event()->handled()); |
- EXPECT_FALSE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_RELEASED)); |
+ EXPECT_FALSE( |
+ mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_RELEASED)); |
event_capturer_.Reset(); |
generator_->ReleaseKey(ui::VKEY_I, ui::EF_COMMAND_DOWN); |
@@ -256,36 +256,4 @@ TEST_F(SelectToSpeakEventHandlerTest, SearchPlusKeyIgnoresClicks) { |
EXPECT_FALSE(event_capturer_.last_key_event()->handled()); |
} |
-TEST_F(SelectToSpeakEventHandlerTest, TappingControlStopsSpeech) { |
- SpeechMonitor monitor; |
- EXPECT_FALSE(monitor.DidStop()); |
- generator_->PressKey(ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN); |
- generator_->ReleaseKey(ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN); |
- EXPECT_TRUE(monitor.DidStop()); |
-} |
- |
-TEST_F(SelectToSpeakEventHandlerTest, TappingSearchStopsSpeech) { |
- SpeechMonitor monitor; |
- EXPECT_FALSE(monitor.DidStop()); |
- generator_->PressKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN); |
- generator_->ReleaseKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN); |
- EXPECT_TRUE(monitor.DidStop()); |
-} |
- |
-TEST_F(SelectToSpeakEventHandlerTest, TappingShiftDoesNotStopSpeech) { |
- SpeechMonitor monitor; |
- generator_->PressKey(ui::VKEY_SHIFT, ui::EF_SHIFT_DOWN); |
- generator_->ReleaseKey(ui::VKEY_SHIFT, ui::EF_SHIFT_DOWN); |
- EXPECT_FALSE(monitor.DidStop()); |
-} |
- |
-TEST_F(SelectToSpeakEventHandlerTest, PressingControlZDoesNotStopSpeech) { |
- SpeechMonitor monitor; |
- generator_->PressKey(ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN); |
- generator_->PressKey(ui::VKEY_Z, ui::EF_CONTROL_DOWN); |
- generator_->ReleaseKey(ui::VKEY_Z, ui::EF_CONTROL_DOWN); |
- generator_->ReleaseKey(ui::VKEY_CONTROL, ui::EF_CONTROL_DOWN); |
- EXPECT_FALSE(monitor.DidStop()); |
-} |
- |
} // namespace chromeos |