[go: nahoru, domu]

mash: remove the LockStateControllerDelegate.

This removes the LockStateControllerDelegate and mojoifys/renames it
into the ShutdownClient, which is exported by chrome.

While in the long term, we'll want to move the code that's currently in
ShutdownClient into ash (and either use CrosSettings in ash or send
messages to a dedicated CrosSettings service), the chromeos device
settings code is sufficiently intertangled with the browser process that
it isn't happening anytime soon. (See crbug.com/446937)

BUG=628792
TEST=covered by converted ash_unittests; manually tested the mojo call in non-mash ash.

Review-Url: https://codereview.chromium.org/2471643002
Cr-Commit-Position: refs/heads/master@{#429471}
diff --git a/ash/test/lock_state_controller_test_api.h b/ash/test/lock_state_controller_test_api.h
new file mode 100644
index 0000000..31ca2112
--- /dev/null
+++ b/ash/test/lock_state_controller_test_api.h
@@ -0,0 +1,73 @@
+// Copyright 2016 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.
+
+#ifndef ASH_TEST_LOCK_STATE_CONTROLLER_TEST_API_H_
+#define ASH_TEST_LOCK_STATE_CONTROLLER_TEST_API_H_
+
+#include <memory>
+
+#include "ash/wm/lock_state_controller.h"
+#include "base/timer/elapsed_timer.h"
+#include "base/timer/timer.h"
+
+namespace ash {
+
+namespace mojom {
+class ShutdownClient;
+}
+
+namespace test {
+
+// Helper class used by tests to access internal state.
+class LockStateControllerTestApi {
+ public:
+  explicit LockStateControllerTestApi(LockStateController* controller);
+  ~LockStateControllerTestApi();
+
+  void SetShutdownClient(std::unique_ptr<mojom::ShutdownClient> client);
+
+  bool lock_fail_timer_is_running() const {
+    return controller_->lock_fail_timer_.IsRunning();
+  }
+  bool lock_to_shutdown_timer_is_running() const {
+    return controller_->lock_to_shutdown_timer_.IsRunning();
+  }
+  bool shutdown_timer_is_running() const {
+    return controller_->pre_shutdown_timer_.IsRunning();
+  }
+  bool real_shutdown_timer_is_running() const {
+    return controller_->real_shutdown_timer_.IsRunning();
+  }
+  bool is_animating_lock() const { return controller_->animating_lock_; }
+  bool is_lock_cancellable() const {
+    return controller_->CanCancelLockAnimation();
+  }
+
+  void trigger_lock_fail_timeout() {
+    controller_->OnLockFailTimeout();
+    controller_->lock_fail_timer_.Stop();
+  }
+  void trigger_lock_to_shutdown_timeout() {
+    controller_->OnLockToShutdownTimeout();
+    controller_->lock_to_shutdown_timer_.Stop();
+  }
+  void trigger_shutdown_timeout() {
+    controller_->OnPreShutdownAnimationTimeout();
+    controller_->pre_shutdown_timer_.Stop();
+  }
+  void trigger_real_shutdown_timeout() {
+    controller_->OnRealPowerTimeout();
+    controller_->real_shutdown_timer_.Stop();
+  }
+
+ private:
+  LockStateController* controller_;  // not owned
+
+  DISALLOW_COPY_AND_ASSIGN(LockStateControllerTestApi);
+};
+
+}  // namespace test
+}  // namespace ash
+
+#endif  // ASH_TEST_LOCK_STATE_CONTROLLER_TEST_API_H_