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

Unified Diff: chrome/browser/chromeos/accessibility/select_to_speak_event_handler_unittest.cc

Issue 2892463003: Revert of Refactor Select-to-speak so that mouse events are forwarded to the extension. (Closed)
Patch Set: Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
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 79d31f9fe22a076e7b8361533059967cd22a9d7c..d3a986547fecb526b8ecdaddbac2a45ab2e96593 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,12 +11,14 @@
#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;
@@ -50,27 +52,28 @@
DISALLOW_COPY_AND_ASSIGN(EventCapturer);
};
-class SelectToSpeakMouseEventDelegate
- : public chromeos::SelectToSpeakForwardedEventDelegateForTesting {
+class SelectToSpeakAccessibilityEventDelegate
+ : public ash::test::TestAccessibilityEventDelegate {
public:
- SelectToSpeakMouseEventDelegate() {}
+ SelectToSpeakAccessibilityEventDelegate() {}
+ ~SelectToSpeakAccessibilityEventDelegate() override {}
void Reset() { events_captured_.clear(); }
- bool CapturedMouseEvent(ui::EventType event_type) {
+ bool CapturedAXEvent(ui::AXEvent event_type) {
return events_captured_.find(event_type) != events_captured_.end();
}
- // Overriden from SelectToSpeakForwardedEventDelegateForTesting
- void OnForwardEventToSelectToSpeakExtension(
- const ui::MouseEvent& event) override {
- events_captured_.insert(event.type());
+ // Overriden from TestAccessibilityEventDelegate.
+ void NotifyAccessibilityEvent(views::View* view,
+ ui::AXEvent event_type) override {
+ events_captured_.insert(event_type);
}
private:
- std::set<ui::EventType> events_captured_;
-
- DISALLOW_COPY_AND_ASSIGN(SelectToSpeakMouseEventDelegate);
+ std::set<ui::AXEvent> events_captured_;
+
+ DISALLOW_COPY_AND_ASSIGN(SelectToSpeakAccessibilityEventDelegate);
};
class SelectToSpeakEventHandlerTest : public ash::test::AshTestBase {
@@ -81,9 +84,10 @@
void SetUp() override {
ash::test::AshTestBase::SetUp();
- mouse_event_delegate_.reset(new SelectToSpeakMouseEventDelegate());
- select_to_speak_event_handler_->CaptureForwardedEventsForTesting(
- mouse_event_delegate_.get());
+ event_delegate_.reset(new SelectToSpeakAccessibilityEventDelegate());
+ ash_test_helper()
+ ->test_views_delegate()
+ ->set_test_accessibility_event_delegate(event_delegate_.get());
generator_ = &AshTestBase::GetEventGenerator();
CurrentContext()->AddPreTargetHandler(select_to_speak_event_handler_.get());
CurrentContext()->AddPreTargetHandler(&event_capturer_);
@@ -102,7 +106,7 @@
ui::test::EventGenerator* generator_;
EventCapturer event_capturer_;
TestingProfile profile_;
- std::unique_ptr<SelectToSpeakMouseEventDelegate> mouse_event_delegate_;
+ std::unique_ptr<SelectToSpeakAccessibilityEventDelegate> event_delegate_;
private:
std::unique_ptr<SelectToSpeakEventHandler> select_to_speak_event_handler_;
@@ -131,27 +135,25 @@
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 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());
- EXPECT_FALSE(event_capturer_.last_key_event()->handled());
-
- generator_->set_current_location(gfx::Point(100, 12));
- generator_->PressLeftButton();
- EXPECT_FALSE(event_capturer_.last_mouse_event());
-
- EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_PRESSED));
-
- generator_->ReleaseLeftButton();
- EXPECT_FALSE(event_capturer_.last_mouse_event());
-
- EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_RELEASED));
+ // the mouse events and the key release event get hancled by the
+ // SelectToSpeakEventHandler, and accessibility events are generated.
+
+ generator_->PressKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN);
+ ASSERT_TRUE(event_capturer_.last_key_event());
+ EXPECT_FALSE(event_capturer_.last_key_event()->handled());
+
+ 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));
+
+ generator_->ReleaseLeftButton();
+ EXPECT_FALSE(event_capturer_.last_mouse_event());
+
+ EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_RELEASED));
event_capturer_.Reset();
generator_->ReleaseKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN);
@@ -168,15 +170,15 @@
generator_->PressLeftButton();
EXPECT_FALSE(event_capturer_.last_mouse_event());
- 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);
-
- generator_->ReleaseLeftButton();
- EXPECT_FALSE(event_capturer_.last_mouse_event());
-
- EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_RELEASED));
+ EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_PRESSED));
+
+ generator_->PressKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN);
+ generator_->PressKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN);
+
+ generator_->ReleaseLeftButton();
+ EXPECT_FALSE(event_capturer_.last_mouse_event());
+
+ EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_RELEASED));
event_capturer_.Reset();
generator_->ReleaseKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN);
@@ -194,24 +196,23 @@
generator_->set_current_location(gfx::Point(100, 12));
generator_->PressLeftButton();
EXPECT_FALSE(event_capturer_.last_mouse_event());
- EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_PRESSED));
-
- generator_->ReleaseLeftButton();
- EXPECT_FALSE(event_capturer_.last_mouse_event());
- EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_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(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_PRESSED));
-
- generator_->ReleaseLeftButton();
- EXPECT_FALSE(event_capturer_.last_mouse_event());
- EXPECT_TRUE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_RELEASED));
+ EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_PRESSED));
+
+ generator_->ReleaseLeftButton();
+ EXPECT_FALSE(event_capturer_.last_mouse_event());
+ EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_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));
+
+ generator_->PressLeftButton();
+ EXPECT_FALSE(event_capturer_.last_mouse_event());
+ EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_PRESSED));
+
+ generator_->ReleaseLeftButton();
+ EXPECT_FALSE(event_capturer_.last_mouse_event());
+ EXPECT_TRUE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_RELEASED));
event_capturer_.Reset();
generator_->ReleaseKey(ui::VKEY_LWIN, ui::EF_COMMAND_DOWN);
@@ -236,14 +237,13 @@
ASSERT_TRUE(event_capturer_.last_mouse_event());
EXPECT_FALSE(event_capturer_.last_mouse_event()->handled());
- EXPECT_FALSE(mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_PRESSED));
+ EXPECT_FALSE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_PRESSED));
generator_->ReleaseLeftButton();
ASSERT_TRUE(event_capturer_.last_mouse_event());
EXPECT_FALSE(event_capturer_.last_mouse_event()->handled());
- EXPECT_FALSE(
- mouse_event_delegate_->CapturedMouseEvent(ui::ET_MOUSE_RELEASED));
+ EXPECT_FALSE(event_delegate_->CapturedAXEvent(ui::AX_EVENT_MOUSE_RELEASED));
event_capturer_.Reset();
generator_->ReleaseKey(ui::VKEY_I, ui::EF_COMMAND_DOWN);
@@ -256,4 +256,36 @@
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

Powered by Google App Engine
This is Rietveld 408576698