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

Side by Side Diff: chrome/browser/ui/webui/options/chromeos/accounts_options_browsertest.cc

Issue 2919343005: Remove tests for deprecated Options UI (Closed)
Patch Set: and more Created 3 years, 6 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include <stddef.h>
6
7 #include "base/command_line.h"
8 #include "base/compiler_specific.h"
9 #include "base/macros.h"
10 #include "base/memory/ptr_util.h"
11 #include "chrome/browser/chrome_notification_types.h"
12 #include "chrome/browser/chromeos/login/login_manager_test.h"
13 #include "chrome/browser/chromeos/login/startup_utils.h"
14 #include "chrome/browser/chromeos/login/ui/user_adding_screen.h"
15 #include "chrome/browser/chromeos/profiles/profile_helper.h"
16 #include "chrome/browser/chromeos/settings/cros_settings.h"
17 #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h"
18 #include "chrome/browser/ui/browser.h"
19 #include "chrome/browser/ui/tabs/tab_strip_model.h"
20 #include "chrome/common/chrome_switches.h"
21 #include "chrome/common/pref_names.h"
22 #include "chrome/test/base/ui_test_utils.h"
23 #include "chromeos/settings/cros_settings_names.h"
24 #include "components/prefs/pref_service.h"
25 #include "components/user_manager/user_manager.h"
26 #include "content/public/browser/notification_service.h"
27 #include "content/public/browser/notification_source.h"
28 #include "content/public/browser/web_contents.h"
29 #include "content/public/test/browser_test_utils.h"
30 #include "content/public/test/test_utils.h"
31
32 namespace chromeos {
33
34 namespace {
35
36 const char* kTestUsers[] = { "test-user1@gmail.com", "test-user2@gmail.com" };
37
38 } // namespace
39
40 class AccountsOptionsTest : public LoginManagerTest {
41 public:
42 AccountsOptionsTest()
43 : LoginManagerTest(false),
44 stub_settings_provider_(base::MakeUnique<StubCrosSettingsProvider>()),
45 stub_settings_provider_ptr_(static_cast<StubCrosSettingsProvider*>(
46 stub_settings_provider_.get())) {
47 stub_settings_provider_->Set(kDeviceOwner, base::Value(kTestUsers[0]));
48 for (size_t i = 0; i < arraysize(kTestUsers); ++i) {
49 test_users_.push_back(AccountId::FromUserEmail(kTestUsers[i]));
50 }
51 }
52
53 ~AccountsOptionsTest() override {}
54
55 void SetUpOnMainThread() override {
56 LoginManagerTest::SetUpOnMainThread();
57 CrosSettings* settings = CrosSettings::Get();
58 CrosSettingsProvider* device_settings_provider =
59 settings->GetProvider(kDeviceOwner);
60 device_settings_provider_ =
61 settings->RemoveSettingsProvider(device_settings_provider);
62 settings->AddSettingsProvider(std::move(stub_settings_provider_));
63
64 // Notify ChromeUserManager of ownership change.
65 content::NotificationService::current()->Notify(
66 chrome::NOTIFICATION_OWNERSHIP_STATUS_CHANGED,
67 content::Source<AccountsOptionsTest>(this),
68 content::NotificationService::NoDetails());
69 }
70
71 void TearDownOnMainThread() override {
72 CrosSettings* settings = CrosSettings::Get();
73 stub_settings_provider_ =
74 settings->RemoveSettingsProvider(stub_settings_provider_ptr_);
75 settings->AddSettingsProvider(std::move(device_settings_provider_));
76 LoginManagerTest::TearDownOnMainThread();
77 }
78
79 void SetUpCommandLine(base::CommandLine* command_line) override {
80 LoginManagerTest::SetUpCommandLine(command_line);
81 }
82
83 protected:
84 void CheckAccountsUI(const user_manager::User* user, bool is_owner) {
85 Profile* profile = ProfileHelper::Get()->GetProfileByUserUnsafe(user);
86
87 ui_test_utils::BrowserAddedObserver observer;
88 Browser* browser = CreateBrowser(profile);
89 observer.WaitForSingleNewBrowser();
90
91 ui_test_utils::NavigateToURL(browser,
92 GURL("chrome://settings-frame/accounts"));
93 content::WebContents* contents =
94 browser->tab_strip_model()->GetActiveWebContents();
95
96 bool warning_visible;
97 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
98 contents,
99 "var e = document.getElementById('ownerOnlyWarning');"
100 "var visible = e.offsetWidth > 0 && e.offsetHeight > 0;"
101 "window.domAutomationController.send(visible);",
102 &warning_visible));
103 EXPECT_EQ(is_owner, !warning_visible);
104
105 bool guest_option_enabled;
106 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
107 contents,
108 "var e = document.getElementById('allowBwsiCheck');"
109 "window.domAutomationController.send(!e.disabled);",
110 &guest_option_enabled));
111 EXPECT_EQ(is_owner, guest_option_enabled);
112
113 bool supervised_users_enabled;
114 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
115 contents,
116 "var e = document.getElementById('allowSupervisedCheck');"
117 "window.domAutomationController.send(!e.disabled);",
118 &supervised_users_enabled));
119 ASSERT_EQ(is_owner, supervised_users_enabled);
120
121 bool user_pods_enabled;
122 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
123 contents,
124 "var e = document.getElementById('showUserNamesCheck');"
125 "window.domAutomationController.send(!e.disabled);",
126 &user_pods_enabled));
127 EXPECT_EQ(is_owner, user_pods_enabled);
128
129 bool whitelist_enabled;
130 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
131 contents,
132 "var e = document.getElementById('useWhitelistCheck');"
133 "window.domAutomationController.send(!e.disabled);",
134 &whitelist_enabled));
135 EXPECT_EQ(is_owner, whitelist_enabled);
136 }
137
138 std::unique_ptr<CrosSettingsProvider> stub_settings_provider_;
139 StubCrosSettingsProvider* stub_settings_provider_ptr_;
140 std::unique_ptr<CrosSettingsProvider> device_settings_provider_;
141 std::vector<AccountId> test_users_;
142
143 private:
144 DISALLOW_COPY_AND_ASSIGN(AccountsOptionsTest);
145 };
146
147 IN_PROC_BROWSER_TEST_F(AccountsOptionsTest, PRE_MultiProfilesAccountsOptions) {
148 RegisterUser(test_users_[0].GetUserEmail());
149 RegisterUser(test_users_[1].GetUserEmail());
150 StartupUtils::MarkOobeCompleted();
151 }
152
153 IN_PROC_BROWSER_TEST_F(AccountsOptionsTest, MultiProfilesAccountsOptions) {
154 LoginUser(test_users_[0].GetUserEmail());
155 UserAddingScreen::Get()->Start();
156 content::RunAllPendingInMessageLoop();
157 AddUser(test_users_[1].GetUserEmail());
158
159 user_manager::UserManager* manager = user_manager::UserManager::Get();
160 ASSERT_EQ(2u, manager->GetLoggedInUsers().size());
161
162 CheckAccountsUI(manager->FindUser(test_users_[0]), true /* is_owner */);
163 CheckAccountsUI(manager->FindUser(test_users_[1]), false /* is_owner */);
164 }
165
166 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698