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

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

Issue 2814213002: Refactor Select-to-speak so that mouse events are forwarded to the extension. (Closed)
Patch Set: closure 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 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

Powered by Google App Engine
This is Rietveld 408576698