Avi Drissman | 3a215d1e | 2022-09-07 19:43:09 | [diff] [blame] | 1 | // Copyright 2016 The Chromium Authors |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
James Cook | 346c8c6 | 2017-07-18 19:38:37 | [diff] [blame] | 5 | #ifndef ASH_WM_LOCK_STATE_CONTROLLER_TEST_API_H_ |
| 6 | #define ASH_WM_LOCK_STATE_CONTROLLER_TEST_API_H_ |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 7 | |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 8 | #include "ash/wm/lock_state_controller.h" |
Arthur Sonzogni | 834e018f | 2023-04-22 10:20:02 | [diff] [blame] | 9 | #include "base/memory/raw_ptr.h" |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 10 | |
| 11 | namespace ash { |
| 12 | |
Qiang Xu | 90fc06d | 2017-10-14 01:31:39 | [diff] [blame] | 13 | // Helper class used by tests to access LockStateController's internal state. |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 14 | class LockStateControllerTestApi { |
| 15 | public: |
| 16 | explicit LockStateControllerTestApi(LockStateController* controller); |
Peter Boström | ec31a04 | 2021-09-16 23:37:34 | [diff] [blame] | 17 | |
| 18 | LockStateControllerTestApi(const LockStateControllerTestApi&) = delete; |
| 19 | LockStateControllerTestApi& operator=(const LockStateControllerTestApi&) = |
| 20 | delete; |
| 21 | |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 22 | ~LockStateControllerTestApi(); |
| 23 | |
jamescook | d9f152f | 2016-11-15 00:53:08 | [diff] [blame] | 24 | void set_shutdown_controller(ShutdownController* shutdown_controller) { |
| 25 | controller_->shutdown_controller_ = shutdown_controller; |
| 26 | } |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 27 | |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 28 | bool shutdown_timer_is_running() const { |
| 29 | return controller_->pre_shutdown_timer_.IsRunning(); |
| 30 | } |
| 31 | bool real_shutdown_timer_is_running() const { |
| 32 | return controller_->real_shutdown_timer_.IsRunning(); |
| 33 | } |
| 34 | bool is_animating_lock() const { return controller_->animating_lock_; } |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 35 | |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 36 | void trigger_shutdown_timeout() { |
| 37 | controller_->OnPreShutdownAnimationTimeout(); |
| 38 | controller_->pre_shutdown_timer_.Stop(); |
| 39 | } |
| 40 | void trigger_real_shutdown_timeout() { |
| 41 | controller_->OnRealPowerTimeout(); |
| 42 | controller_->real_shutdown_timer_.Stop(); |
| 43 | } |
| 44 | |
minch | ff78733 | 2024-01-22 21:15:58 | [diff] [blame] | 45 | void set_pine_image_callback(base::OnceClosure callback) { |
| 46 | controller_->pine_image_callback_for_test_ = std::move(callback); |
| 47 | } |
| 48 | |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 49 | private: |
Bartek Nowierski | deb7584 | 2023-12-27 02:32:42 | [diff] [blame] | 50 | raw_ptr<LockStateController, DanglingUntriaged> controller_; // not owned |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 51 | }; |
| 52 | |
erg | 8f7f2a6 | 2016-11-03 00:20:20 | [diff] [blame] | 53 | } // namespace ash |
| 54 | |
James Cook | 346c8c6 | 2017-07-18 19:38:37 | [diff] [blame] | 55 | #endif // ASH_WM_LOCK_STATE_CONTROLLER_TEST_API_H_ |