| Index: ui/base/user_activity/user_activity_detector_unittest.cc
|
| diff --git a/ui/base/user_activity/user_activity_detector_unittest.cc b/ui/base/user_activity/user_activity_detector_unittest.cc
|
| index dc4cbae20ce7579ead297d40a46b9c6c1ba455cf..68d9056c851b901e7a914753d83e567beba826bf 100644
|
| --- a/ui/base/user_activity/user_activity_detector_unittest.cc
|
| +++ b/ui/base/user_activity/user_activity_detector_unittest.cc
|
| @@ -13,6 +13,7 @@
|
| #include "ui/events/event_constants.h"
|
| #include "ui/events/event_utils.h"
|
| #include "ui/events/keycodes/keyboard_codes.h"
|
| +#include "ui/events/platform/platform_event_source.h"
|
| #include "ui/gfx/geometry/point.h"
|
|
|
| namespace ui {
|
| @@ -36,10 +37,22 @@ class TestUserActivityObserver : public UserActivityObserver {
|
| DISALLOW_COPY_AND_ASSIGN(TestUserActivityObserver);
|
| };
|
|
|
| +// A test implementation of PlatformEventSource that we can instantiate to make
|
| +// sure that the PlatformEventSource has an instance while in unit tests.
|
| +class TestPlatformEventSource : public ui::PlatformEventSource {
|
| + public:
|
| + TestPlatformEventSource() {}
|
| + ~TestPlatformEventSource() override {}
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(TestPlatformEventSource);
|
| +};
|
| +
|
| class UserActivityDetectorTest : public testing::Test {
|
| public:
|
| UserActivityDetectorTest()
|
| - : detector_(new UserActivityDetector),
|
| + : platform_event_source_(new TestPlatformEventSource),
|
| + detector_(new UserActivityDetector),
|
| observer_(new TestUserActivityObserver) {
|
| detector_->AddObserver(observer_.get());
|
| now_ = base::TimeTicks::Now();
|
| @@ -57,6 +70,11 @@ class UserActivityDetectorTest : public testing::Test {
|
| detector_->set_now_for_test(now_);
|
| }
|
|
|
| + void OnEvent(const ui::Event* event) {
|
| + detector_->ProcessReceivedEvent(event);
|
| + }
|
| +
|
| + scoped_ptr<TestPlatformEventSource> platform_event_source_;
|
| scoped_ptr<UserActivityDetector> detector_;
|
| scoped_ptr<TestUserActivityObserver> observer_;
|
|
|
| @@ -70,7 +88,7 @@ class UserActivityDetectorTest : public testing::Test {
|
| // events.
|
| TEST_F(UserActivityDetectorTest, Basic) {
|
| ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
|
| - detector_->OnKeyEvent(&key_event);
|
| + OnEvent(&key_event);
|
| EXPECT_FALSE(key_event.handled());
|
| EXPECT_EQ(now_.ToInternalValue(),
|
| detector_->last_activity_time().ToInternalValue());
|
| @@ -82,7 +100,7 @@ TEST_F(UserActivityDetectorTest, Basic) {
|
| AdvanceTime(advance_delta);
|
| ui::MouseEvent mouse_event(ui::ET_MOUSE_MOVED, gfx::Point(), gfx::Point(),
|
| ui::EventTimeForNow(), ui::EF_NONE, ui::EF_NONE);
|
| - detector_->OnMouseEvent(&mouse_event);
|
| + OnEvent(&mouse_event);
|
| EXPECT_FALSE(mouse_event.handled());
|
| EXPECT_EQ(now_.ToInternalValue(),
|
| detector_->last_activity_time().ToInternalValue());
|
| @@ -93,7 +111,7 @@ TEST_F(UserActivityDetectorTest, Basic) {
|
|
|
| // Temporarily ignore mouse events when displays are turned on or off.
|
| detector_->OnDisplayPowerChanging();
|
| - detector_->OnMouseEvent(&mouse_event);
|
| + OnEvent(&mouse_event);
|
| EXPECT_FALSE(mouse_event.handled());
|
| EXPECT_EQ(time_before_ignore.ToInternalValue(),
|
| detector_->last_activity_time().ToInternalValue());
|
| @@ -104,7 +122,7 @@ TEST_F(UserActivityDetectorTest, Basic) {
|
| base::TimeDelta::FromMilliseconds(
|
| UserActivityDetector::kDisplayPowerChangeIgnoreMouseMs);
|
| AdvanceTime(kIgnoreMouseTime / 2);
|
| - detector_->OnMouseEvent(&mouse_event);
|
| + OnEvent(&mouse_event);
|
| EXPECT_FALSE(mouse_event.handled());
|
| EXPECT_EQ(time_before_ignore.ToInternalValue(),
|
| detector_->last_activity_time().ToInternalValue());
|
| @@ -113,7 +131,7 @@ TEST_F(UserActivityDetectorTest, Basic) {
|
|
|
| // After enough time has passed, mouse events should be reported again.
|
| AdvanceTime(std::max(kIgnoreMouseTime, advance_delta));
|
| - detector_->OnMouseEvent(&mouse_event);
|
| + OnEvent(&mouse_event);
|
| EXPECT_FALSE(mouse_event.handled());
|
| EXPECT_EQ(now_.ToInternalValue(),
|
| detector_->last_activity_time().ToInternalValue());
|
| @@ -123,7 +141,7 @@ TEST_F(UserActivityDetectorTest, Basic) {
|
| AdvanceTime(advance_delta);
|
| ui::TouchEvent touch_event(
|
| ui::ET_TOUCH_PRESSED, gfx::Point(), 0, base::TimeDelta());
|
| - detector_->OnTouchEvent(&touch_event);
|
| + OnEvent(&touch_event);
|
| EXPECT_FALSE(touch_event.handled());
|
| EXPECT_EQ(now_.ToInternalValue(),
|
| detector_->last_activity_time().ToInternalValue());
|
| @@ -137,7 +155,7 @@ TEST_F(UserActivityDetectorTest, Basic) {
|
| ui::EF_NONE,
|
| base::TimeDelta::FromMilliseconds(base::Time::Now().ToDoubleT() * 1000),
|
| ui::GestureEventDetails(ui::ET_GESTURE_TAP));
|
| - detector_->OnGestureEvent(&gesture_event);
|
| + OnEvent(&gesture_event);
|
| EXPECT_FALSE(gesture_event.handled());
|
| EXPECT_EQ(now_.ToInternalValue(),
|
| detector_->last_activity_time().ToInternalValue());
|
| @@ -149,14 +167,14 @@ TEST_F(UserActivityDetectorTest, Basic) {
|
| TEST_F(UserActivityDetectorTest, RateLimitNotifications) {
|
| // The observer should be notified about a key event.
|
| ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE);
|
| - detector_->OnKeyEvent(&event);
|
| + OnEvent(&event);
|
| EXPECT_FALSE(event.handled());
|
| EXPECT_EQ(1, observer_->num_invocations());
|
| observer_->reset_stats();
|
|
|
| // It shouldn't be notified if a second event occurs in the same instant in
|
| // time.
|
| - detector_->OnKeyEvent(&event);
|
| + OnEvent(&event);
|
| EXPECT_FALSE(event.handled());
|
| EXPECT_EQ(0, observer_->num_invocations());
|
| observer_->reset_stats();
|
| @@ -165,7 +183,7 @@ TEST_F(UserActivityDetectorTest, RateLimitNotifications) {
|
| AdvanceTime(
|
| base::TimeDelta::FromMilliseconds(
|
| UserActivityDetector::kNotifyIntervalMs - 100));
|
| - detector_->OnKeyEvent(&event);
|
| + OnEvent(&event);
|
| EXPECT_FALSE(event.handled());
|
| EXPECT_EQ(0, observer_->num_invocations());
|
| observer_->reset_stats();
|
| @@ -175,7 +193,7 @@ TEST_F(UserActivityDetectorTest, RateLimitNotifications) {
|
| AdvanceTime(base::TimeDelta::FromMilliseconds(
|
| UserActivityDetector::kNotifyIntervalMs));
|
|
|
| - detector_->OnKeyEvent(&event);
|
| + OnEvent(&event);
|
| EXPECT_FALSE(event.handled());
|
| EXPECT_EQ(1, observer_->num_invocations());
|
| }
|
| @@ -185,7 +203,7 @@ TEST_F(UserActivityDetectorTest, IgnoreSyntheticMouseEvents) {
|
| ui::MouseEvent mouse_event(ui::ET_MOUSE_MOVED, gfx::Point(), gfx::Point(),
|
| ui::EventTimeForNow(), ui::EF_IS_SYNTHESIZED,
|
| ui::EF_NONE);
|
| - detector_->OnMouseEvent(&mouse_event);
|
| + OnEvent(&mouse_event);
|
| EXPECT_FALSE(mouse_event.handled());
|
| EXPECT_EQ(base::TimeTicks().ToInternalValue(),
|
| detector_->last_activity_time().ToInternalValue());
|
|
|