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 5bcc7a9000ad794f5da09feb52afc53b4282aa60..9002a20ba21c5bdb3c11c4ac45016a1f1a9e7f70 100644 |
--- a/ui/base/user_activity/user_activity_detector_unittest.cc |
+++ b/ui/base/user_activity/user_activity_detector_unittest.cc |
@@ -208,4 +208,28 @@ TEST_F(UserActivityDetectorTest, IgnoreSyntheticMouseEvents) { |
EXPECT_EQ(0, observer_->num_invocations()); |
} |
+// Checks that observers are notified about externally-reported user activity. |
+TEST_F(UserActivityDetectorTest, HandleExternalUserActivity) { |
+ detector_->HandleExternalUserActivity(); |
+ EXPECT_EQ(1, observer_->num_invocations()); |
+ observer_->reset_stats(); |
+ |
+ base::TimeDelta advance_delta = base::TimeDelta::FromMilliseconds( |
+ UserActivityDetector::kNotifyIntervalMs); |
+ AdvanceTime(advance_delta); |
+ detector_->HandleExternalUserActivity(); |
+ EXPECT_EQ(1, observer_->num_invocations()); |
+ observer_->reset_stats(); |
+ |
+ base::TimeDelta half_advance_delta = base::TimeDelta::FromMilliseconds( |
+ UserActivityDetector::kNotifyIntervalMs / 2); |
+ AdvanceTime(half_advance_delta); |
+ detector_->HandleExternalUserActivity(); |
+ EXPECT_EQ(0, observer_->num_invocations()); |
+ |
+ AdvanceTime(half_advance_delta); |
+ detector_->HandleExternalUserActivity(); |
+ EXPECT_EQ(1, observer_->num_invocations()); |
+} |
+ |
} // namespace ui |