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

Side by Side Diff: chromeos/power/power_state_override_unittest.cc

Issue 12775019: chromeos: Remove PowerStateOverride. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more feedback Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chromeos/power/power_state_override.cc ('k') | content/browser/power_save_blocker_chromeos.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chromeos/power/power_state_override.h"
6
7 #include "base/basictypes.h"
8 #include "base/memory/scoped_ptr.h"
9 #include "base/message_loop.h"
10 #include "chromeos/dbus/mock_power_manager_client.h"
11 #include "chromeos/dbus/mock_dbus_thread_manager.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 using ::testing::_;
15 using ::testing::Mock;
16 using ::testing::SaveArg;
17
18 namespace chromeos {
19
20 class PowerStateOverrideTest : public testing::Test {
21 protected:
22 PowerStateOverrideTest() : dbus_thread_manager_shut_down_(false) {}
23 virtual ~PowerStateOverrideTest() {}
24
25 virtual void SetUp() {
26 MockDBusThreadManager* dbus_manager = new MockDBusThreadManager;
27 DBusThreadManager::InitializeForTesting(dbus_manager);
28 power_manager_client_ = dbus_manager->mock_power_manager_client();
29 }
30
31 virtual void TearDown() {
32 if (!dbus_thread_manager_shut_down_)
33 DBusThreadManager::Shutdown();
34 }
35
36 protected:
37 // Shuts down the DBusThreadManager prematurely.
38 void ShutDownDBusThreadManager() {
39 DBusThreadManager::Shutdown();
40 dbus_thread_manager_shut_down_ = true;
41 }
42
43 // Needed for PowerStateOverride's timer.
44 MessageLoop message_loop_;
45
46 MockPowerManagerClient* power_manager_client_; // not owned
47
48 // Has the singleton DBusThreadManager already been manually shut down?
49 bool dbus_thread_manager_shut_down_;
50 };
51
52 TEST_F(PowerStateOverrideTest, AddAndRemoveOverrides) {
53 // An arbitrary ID to return in response to a request with ID 0.
54 const uint32 kRequestId = 10;
55
56 // Override bitmaps corresponding to different modes.
57 const uint32 kDisplayOverrides =
58 PowerManagerClient::DISABLE_IDLE_DIM |
59 PowerManagerClient::DISABLE_IDLE_BLANK |
60 PowerManagerClient::DISABLE_IDLE_SUSPEND;
61 const uint32 kSystemOverrides =
62 PowerManagerClient::DISABLE_IDLE_SUSPEND;
63
64 // Block display sleep and pass a request ID to the callback.
65 chromeos::PowerStateRequestIdCallback request_id_callback;
66 EXPECT_CALL(*power_manager_client_,
67 RequestPowerStateOverrides(0, _, kDisplayOverrides, _))
68 .WillOnce(SaveArg<3>(&request_id_callback));
69 scoped_refptr<PowerStateOverride> override(
70 new PowerStateOverride(PowerStateOverride::BLOCK_DISPLAY_SLEEP));
71 // Make sure our PostTask to the request power state overrides runs.
72 message_loop_.RunUntilIdle();
73 request_id_callback.Run(kRequestId);
74
75 // The request should be canceled when the PowerStateOverride is destroyed.
76 EXPECT_CALL(*power_manager_client_, CancelPowerStateOverrides(kRequestId));
77 override = NULL;
78
79 // Now send a request to just block the system from suspending.
80 EXPECT_CALL(*power_manager_client_,
81 RequestPowerStateOverrides(0, _, kSystemOverrides, _))
82 .WillOnce(SaveArg<3>(&request_id_callback));
83 override = new PowerStateOverride(PowerStateOverride::BLOCK_SYSTEM_SUSPEND);
84 // Make sure our PostTask to the request power state overrides runs.
85 message_loop_.RunUntilIdle();
86 request_id_callback.Run(kRequestId);
87 EXPECT_CALL(*power_manager_client_, CancelPowerStateOverrides(kRequestId));
88 override = NULL;
89 }
90
91 TEST_F(PowerStateOverrideTest, DBusThreadManagerShutDown) {
92 const uint32 kRequestId = 10;
93 chromeos::PowerStateRequestIdCallback request_id_callback;
94 EXPECT_CALL(*power_manager_client_, RequestPowerStateOverrides(0, _, _, _))
95 .WillOnce(SaveArg<3>(&request_id_callback));
96 scoped_refptr<PowerStateOverride> override(
97 new PowerStateOverride(PowerStateOverride::BLOCK_DISPLAY_SLEEP));
98 // Make sure our PostTask to the request power state overrides runs.
99 message_loop_.RunUntilIdle();
100 request_id_callback.Run(kRequestId);
101
102 // When the DBusThreadManager is about to be shut down, PowerStateOverride
103 // should cancel its request.
104 EXPECT_CALL(*power_manager_client_, CancelPowerStateOverrides(kRequestId));
105 ShutDownDBusThreadManager();
106 }
107
108 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/power/power_state_override.cc ('k') | content/browser/power_save_blocker_chromeos.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698