| Index: ui/views/event_monitor_unittest.cc
|
| diff --git a/ui/views/event_monitor_unittest.cc b/ui/views/event_monitor_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e9d1a3162d11bb31a6e13034eda2511bbe7f9c2f
|
| --- /dev/null
|
| +++ b/ui/views/event_monitor_unittest.cc
|
| @@ -0,0 +1,77 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "ui/events/test/event_generator.h"
|
| +#include "ui/events/test/test_event_handler.h"
|
| +#include "ui/views/event_monitor.h"
|
| +#include "ui/views/test/widget_test.h"
|
| +
|
| +namespace views {
|
| +namespace test {
|
| +
|
| +class EventMonitorTest : public WidgetTest {
|
| + public:
|
| + EventMonitorTest() : widget_(nullptr) {}
|
| +
|
| + // testing::Test:
|
| + void SetUp() override {
|
| + WidgetTest::SetUp();
|
| + widget_ = CreateTopLevelNativeWidget();
|
| + widget_->SetSize(gfx::Size(100, 100));
|
| + widget_->Show();
|
| + generator_.reset(
|
| + new ui::test::EventGenerator(GetContext(), widget_->GetNativeWindow()));
|
| + generator_->set_targeting_application(true);
|
| + }
|
| + void TearDown() override {
|
| + widget_->CloseNow();
|
| + WidgetTest::TearDown();
|
| + }
|
| +
|
| + protected:
|
| + Widget* widget_;
|
| + scoped_ptr<ui::test::EventGenerator> generator_;
|
| + ui::test::TestEventHandler handler_;
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(EventMonitorTest);
|
| +};
|
| +
|
| +TEST_F(EventMonitorTest, ShouldReceiveAppEventsWhileInstalled) {
|
| + scoped_ptr<EventMonitor> monitor(
|
| + EventMonitor::CreateApplicationMonitor(&handler_));
|
| +
|
| + generator_->ClickLeftButton();
|
| + EXPECT_EQ(2, handler_.num_mouse_events());
|
| +
|
| + monitor.reset();
|
| + generator_->ClickLeftButton();
|
| + EXPECT_EQ(2, handler_.num_mouse_events());
|
| +}
|
| +
|
| +TEST_F(EventMonitorTest, ShouldReceiveWindowEventsWhileInstalled) {
|
| + scoped_ptr<EventMonitor> monitor(
|
| + EventMonitor::CreateWindowMonitor(&handler_, widget_->GetNativeWindow()));
|
| +
|
| + generator_->ClickLeftButton();
|
| + EXPECT_EQ(2, handler_.num_mouse_events());
|
| +
|
| + monitor.reset();
|
| + generator_->ClickLeftButton();
|
| + EXPECT_EQ(2, handler_.num_mouse_events());
|
| +}
|
| +
|
| +TEST_F(EventMonitorTest, ShouldNotReceiveEventsFromOtherWindow) {
|
| + Widget* widget2 = CreateTopLevelNativeWidget();
|
| + scoped_ptr<EventMonitor> monitor(
|
| + EventMonitor::CreateWindowMonitor(&handler_, widget2->GetNativeWindow()));
|
| +
|
| + generator_->ClickLeftButton();
|
| + EXPECT_EQ(0, handler_.num_mouse_events());
|
| +
|
| + widget2->CloseNow();
|
| +}
|
| +
|
| +} // namespace test
|
| +} // namespace views
|
|
|