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

Side by Side Diff: chrome/browser/chromeos/settings/shutdown_policy_handler_unittest.cc

Issue 2492063002: chromeos: Simplify ShutdownPolicyHandler
Patch Set: rebase Created 4 years, 1 month 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/settings/shutdown_policy_handler.h" 5 #include "chrome/browser/chromeos/settings/shutdown_policy_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "chrome/browser/chromeos/settings/scoped_cros_settings_test_helper.h" 10 #include "chrome/browser/chromeos/settings/scoped_cros_settings_test_helper.h"
11 #include "chromeos/dbus/dbus_thread_manager.h" 11 #include "chromeos/dbus/dbus_thread_manager.h"
12 #include "chromeos/settings/cros_settings_names.h" 12 #include "chromeos/settings/cros_settings_names.h"
13 #include "content/public/test/test_browser_thread_bundle.h" 13 #include "content/public/test/test_browser_thread_bundle.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 15
16 namespace chromeos { 16 namespace chromeos {
17 17
18 class ShutdownPolicyHandlerTest : public testing::Test, 18 class ShutdownPolicyHandlerTest : public testing::Test,
19 public ShutdownPolicyHandler::Delegate { 19 public ShutdownPolicyHandler::Delegate {
20 public: 20 public:
21 void ResultCallback(bool reboot_on_shutdown) {
22 reboot_on_shutdown_ = reboot_on_shutdown;
23 callback_called_ = true;
24 }
25
26 protected:
27 ShutdownPolicyHandlerTest() 21 ShutdownPolicyHandlerTest()
28 : callback_called_(false), 22 : reboot_on_shutdown_(false), delegate_invocations_count_(0) {}
29 reboot_on_shutdown_(false),
30 delegate_invocations_count_(0) {}
31 23
32 // testing::Test: 24 // testing::Test:
33 void SetUp() override { 25 void SetUp() override {
34 testing::Test::SetUp(); 26 testing::Test::SetUp();
35 DBusThreadManager::Initialize(); 27 DBusThreadManager::Initialize();
36 settings_helper_.ReplaceProvider(kRebootOnShutdown); 28 settings_helper_.ReplaceProvider(kRebootOnShutdown);
37 } 29 }
38 30
39 void TearDown() override { DBusThreadManager::Shutdown(); } 31 void TearDown() override { DBusThreadManager::Shutdown(); }
40 32
41 void SetRebootOnShutdown(bool reboot_on_shutdown) { 33 void SetRebootOnShutdown(bool reboot_on_shutdown) {
42 settings_helper_.SetBoolean(kRebootOnShutdown, reboot_on_shutdown); 34 settings_helper_.SetBoolean(kRebootOnShutdown, reboot_on_shutdown);
43 base::RunLoop().RunUntilIdle(); 35 base::RunLoop().RunUntilIdle();
44 } 36 }
45 37
46 // ShutdownPolicyHandler::Delegate: 38 // ShutdownPolicyHandler::Delegate:
47 void OnShutdownPolicyChanged(bool reboot_on_shutdown) override { 39 void OnShutdownPolicyChanged(bool reboot_on_shutdown) override {
48 reboot_on_shutdown_ = reboot_on_shutdown; 40 reboot_on_shutdown_ = reboot_on_shutdown;
49 delegate_invocations_count_++; 41 delegate_invocations_count_++;
50 } 42 }
51 43
52 protected: 44 protected:
53 content::TestBrowserThreadBundle thread_bundle_; 45 content::TestBrowserThreadBundle thread_bundle_;
54 ScopedCrosSettingsTestHelper settings_helper_; 46 ScopedCrosSettingsTestHelper settings_helper_;
55 bool callback_called_;
56 bool reboot_on_shutdown_; 47 bool reboot_on_shutdown_;
57 int delegate_invocations_count_; 48 int delegate_invocations_count_;
58 }; 49 };
59 50
60 TEST_F(ShutdownPolicyHandlerTest, RetrieveTrustedDevicePolicies) { 51 TEST_F(ShutdownPolicyHandlerTest, RetrieveTrustedDevicePolicies) {
61 ShutdownPolicyHandler shutdown_policy_observer(CrosSettings::Get(), this); 52 ShutdownPolicyHandler shutdown_policy_observer(CrosSettings::Get(), this);
62 base::RunLoop().RunUntilIdle(); 53 base::RunLoop().RunUntilIdle();
63 EXPECT_EQ(0, delegate_invocations_count_); 54 EXPECT_EQ(0, delegate_invocations_count_);
64 55
56 // Changing the setting to true notifies the delegate.
65 SetRebootOnShutdown(true); 57 SetRebootOnShutdown(true);
66 base::RunLoop().RunUntilIdle(); 58 base::RunLoop().RunUntilIdle();
67 EXPECT_EQ(1, delegate_invocations_count_); 59 EXPECT_EQ(1, delegate_invocations_count_);
68 EXPECT_TRUE(reboot_on_shutdown_); 60 EXPECT_TRUE(reboot_on_shutdown_);
69 61
62 // Changing the setting to false notifies the delegate.
70 SetRebootOnShutdown(false); 63 SetRebootOnShutdown(false);
71 base::RunLoop().RunUntilIdle(); 64 base::RunLoop().RunUntilIdle();
72 EXPECT_EQ(2, delegate_invocations_count_); 65 EXPECT_EQ(2, delegate_invocations_count_);
73 EXPECT_FALSE(reboot_on_shutdown_); 66 EXPECT_FALSE(reboot_on_shutdown_);
74
75 shutdown_policy_observer.Shutdown();
76
77 SetRebootOnShutdown(true);
78 base::RunLoop().RunUntilIdle();
79 EXPECT_EQ(2, delegate_invocations_count_);
80 EXPECT_FALSE(reboot_on_shutdown_);
81 } 67 }
82 68
83 TEST_F(ShutdownPolicyHandlerTest, CheckIfRebootOnShutdown) { 69 TEST_F(ShutdownPolicyHandlerTest, CheckIfRebootOnShutdown) {
84 ShutdownPolicyHandler shutdown_policy_observer(CrosSettings::Get(), this); 70 ShutdownPolicyHandler shutdown_policy_observer(CrosSettings::Get(), this);
85 base::RunLoop().RunUntilIdle(); 71 base::RunLoop().RunUntilIdle();
72 EXPECT_EQ(0, delegate_invocations_count_);
73 EXPECT_FALSE(reboot_on_shutdown_);
86 74
87 // Allow shutdown. 75 // Allow shutdown.
88 SetRebootOnShutdown(true); 76 SetRebootOnShutdown(true);
89 callback_called_ = false; 77 delegate_invocations_count_ = 0;
90 shutdown_policy_observer.CheckIfRebootOnShutdown( 78 // Request an explicit check.
91 base::Bind(&ShutdownPolicyHandlerTest::ResultCallback, 79 shutdown_policy_observer.CheckIfRebootOnShutdown();
92 base::Unretained(this)));
93 base::RunLoop().RunUntilIdle(); 80 base::RunLoop().RunUntilIdle();
94 EXPECT_TRUE(callback_called_); 81 EXPECT_EQ(1, delegate_invocations_count_);
95 EXPECT_TRUE(reboot_on_shutdown_); 82 EXPECT_TRUE(reboot_on_shutdown_);
83
96 // Forbid shutdown. 84 // Forbid shutdown.
97 SetRebootOnShutdown(false); 85 SetRebootOnShutdown(false);
98 callback_called_ = false; 86 delegate_invocations_count_ = 0;
99 shutdown_policy_observer.CheckIfRebootOnShutdown( 87 // Request an explicit check.
100 base::Bind(&ShutdownPolicyHandlerTest::ResultCallback, 88 shutdown_policy_observer.CheckIfRebootOnShutdown();
101 base::Unretained(this)));
102 base::RunLoop().RunUntilIdle(); 89 base::RunLoop().RunUntilIdle();
103 EXPECT_TRUE(callback_called_); 90 EXPECT_EQ(1, delegate_invocations_count_);
104 EXPECT_FALSE(reboot_on_shutdown_); 91 EXPECT_FALSE(reboot_on_shutdown_);
105 } 92 }
106 93
107 } // namespace chromeos 94 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/settings/shutdown_policy_handler.cc ('k') | chrome/browser/ui/ash/system_tray_delegate_chromeos.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698