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

Unified Diff: ui/aura/mus/user_activity_forwarder_unittest.cc

Issue 2639703004: mus: Forward user activity from window server to detector. (Closed)
Patch Set: address jamescook@'s comments Created 3 years, 11 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
« no previous file with comments | « ui/aura/mus/user_activity_forwarder.cc ('k') | ui/aura/test/DEPS » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/aura/mus/user_activity_forwarder_unittest.cc
diff --git a/ui/aura/mus/user_activity_forwarder_unittest.cc b/ui/aura/mus/user_activity_forwarder_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..8130db9d1ccbf3b2355d29c835c5b5617cc2a395
--- /dev/null
+++ b/ui/aura/mus/user_activity_forwarder_unittest.cc
@@ -0,0 +1,85 @@
+// Copyright 2017 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/aura/mus/user_activity_forwarder.h"
+
+#include <memory>
+#include <vector>
+
+#include "base/macros.h"
+#include "base/memory/ptr_util.h"
+#include "base/time/time.h"
+#include "mojo/public/cpp/bindings/interface_request.h"
+#include "services/ui/common/task_runner_test_base.h"
+#include "services/ui/public/interfaces/user_activity_monitor.mojom.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/user_activity/user_activity_detector.h"
+
+namespace {
+
+// Fake implementation of ui::mojom::UserActivityMonitor for testing that just
+// supports tracking and notifying observers.
+class FakeUserActivityMonitor : public ui::mojom::UserActivityMonitor {
+ public:
+ FakeUserActivityMonitor() : binding_(this) {}
+ ~FakeUserActivityMonitor() override {}
+
+ ui::mojom::UserActivityMonitorPtr GetPtr() {
+ return binding_.CreateInterfacePtrAndBind();
+ }
+
+ // Notifies all observers about user activity.
+ // ui::TaskRunnerTestBase::RunUntilIdle() must be called after this method in
+ // order for observers to receive notifications.
+ void NotifyUserActivityObservers() {
+ for (auto& observer : activity_observers_)
+ observer->OnUserActivity();
+ }
+
+ // ui::mojom::UserActivityMonitor:
+ void AddUserActivityObserver(
+ uint32_t delay_between_notify_secs,
+ ui::mojom::UserActivityObserverPtr observer) override {
+ activity_observers_.push_back(std::move(observer));
+ }
+ void AddUserIdleObserver(uint32_t idleness_in_minutes,
+ ui::mojom::UserIdleObserverPtr observer) override {
+ NOTREACHED() << "Unexpected AddUserIdleObserver call";
+ }
+
+ private:
+ mojo::Binding<ui::mojom::UserActivityMonitor> binding_;
+ std::vector<ui::mojom::UserActivityObserverPtr> activity_observers_;
+
+ DISALLOW_COPY_AND_ASSIGN(FakeUserActivityMonitor);
+};
+
+} // namespace
+
+namespace aura {
+
+using UserActivityForwarderTest = ui::TaskRunnerTestBase;
+
+TEST_F(UserActivityForwarderTest, ForwardActivityToDetector) {
+ FakeUserActivityMonitor monitor;
+ ui::UserActivityDetector detector;
+ UserActivityForwarder forwarder(monitor.GetPtr(), &detector);
+
+ // Run pending tasks so |monitor| receives |forwarder|'s registration.
+ RunUntilIdle();
+
+ base::TimeTicks now = base::TimeTicks::FromInternalValue(1000);
+ detector.set_now_for_test(now);
+ monitor.NotifyUserActivityObservers();
+ RunUntilIdle();
+ EXPECT_EQ(now, detector.last_activity_time());
+
+ now += base::TimeDelta::FromSeconds(10);
+ detector.set_now_for_test(now);
+ monitor.NotifyUserActivityObservers();
+ RunUntilIdle();
+ EXPECT_EQ(now, detector.last_activity_time());
+}
+
+} // namespace aura
« no previous file with comments | « ui/aura/mus/user_activity_forwarder.cc ('k') | ui/aura/test/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698