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

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

Issue 152143009: Clarify settings UI in multi-profiles mode (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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
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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/compiler_specific.h" 6 #include "base/compiler_specific.h"
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "chrome/browser/chromeos/login/login_manager_test.h" 8 #include "chrome/browser/chromeos/login/login_manager_test.h"
9 #include "chrome/browser/chromeos/login/startup_utils.h" 9 #include "chrome/browser/chromeos/login/startup_utils.h"
10 #include "chrome/browser/chromeos/login/user_adding_screen.h" 10 #include "chrome/browser/chromeos/login/user_adding_screen.h"
(...skipping 12 matching lines...) Expand all
23 #include "content/public/test/test_utils.h" 23 #include "content/public/test/test_utils.h"
24 24
25 namespace chromeos { 25 namespace chromeos {
26 26
27 namespace { 27 namespace {
28 28
29 const char* kTestUsers[] = { "test-user1@gmail.com", "test-user2@gmail.com" }; 29 const char* kTestUsers[] = { "test-user1@gmail.com", "test-user2@gmail.com" };
30 30
31 } // namespace 31 } // namespace
32 32
33 class AccountsOptionsTest : public LoginManagerTest { 33 class SharedOptionsTest : public LoginManagerTest {
34 public: 34 public:
35 AccountsOptionsTest() 35 SharedOptionsTest()
36 : LoginManagerTest(false), 36 : LoginManagerTest(false),
37 device_settings_provider_(NULL) { 37 device_settings_provider_(NULL) {
38 stub_settings_provider_.Set(kDeviceOwner, base::StringValue(kTestUsers[0])); 38 stub_settings_provider_.Set(kDeviceOwner, base::StringValue(kTestUsers[0]));
39 } 39 }
40 40
41 virtual ~AccountsOptionsTest() { 41 virtual ~SharedOptionsTest() {
42 } 42 }
43 43
44 virtual void SetUpOnMainThread() OVERRIDE { 44 virtual void SetUpOnMainThread() OVERRIDE {
45 LoginManagerTest::SetUpOnMainThread(); 45 LoginManagerTest::SetUpOnMainThread();
46 CrosSettings* settings = CrosSettings::Get(); 46 CrosSettings* settings = CrosSettings::Get();
47 device_settings_provider_ = settings->GetProvider(kDeviceOwner); 47 device_settings_provider_ = settings->GetProvider(kDeviceOwner);
48 settings->RemoveSettingsProvider(device_settings_provider_); 48 settings->RemoveSettingsProvider(device_settings_provider_);
49 settings->AddSettingsProvider(&stub_settings_provider_); 49 settings->AddSettingsProvider(&stub_settings_provider_);
50 } 50 }
51 51
52 virtual void CleanUpOnMainThread() OVERRIDE { 52 virtual void CleanUpOnMainThread() OVERRIDE {
53 CrosSettings* settings = CrosSettings::Get(); 53 CrosSettings* settings = CrosSettings::Get();
54 settings->RemoveSettingsProvider(&stub_settings_provider_); 54 settings->RemoveSettingsProvider(&stub_settings_provider_);
55 settings->AddSettingsProvider(device_settings_provider_); 55 settings->AddSettingsProvider(device_settings_provider_);
56 LoginManagerTest::CleanUpOnMainThread(); 56 LoginManagerTest::CleanUpOnMainThread();
57 } 57 }
58 58
59 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 59 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
60 LoginManagerTest::SetUpCommandLine(command_line); 60 LoginManagerTest::SetUpCommandLine(command_line);
61 command_line->AppendSwitch(::switches::kMultiProfiles); 61 command_line->AppendSwitch(::switches::kMultiProfiles);
62 command_line->AppendSwitch(switches::kForceMultiProfileInTests); 62 command_line->AppendSwitch(switches::kForceMultiProfileInTests);
63 } 63 }
64 64
65 protected: 65 protected:
66 void CheckAccountsUI(const User* user, bool is_owner) { 66 void CheckOptionsUI(const User* user, bool is_primary) {
67 Profile* profile = UserManager::Get()->GetProfileByUser(user); 67 Profile* profile = UserManager::Get()->GetProfileByUser(user);
68 profile->GetPrefs()->SetString(prefs::kGoogleServicesUsername, 68 profile->GetPrefs()->SetString(prefs::kGoogleServicesUsername,
69 user->email()); 69 user->email());
70 70
71 ui_test_utils::BrowserAddedObserver observer; 71 ui_test_utils::BrowserAddedObserver observer;
72 Browser* browser = CreateBrowser(profile); 72 Browser* browser = CreateBrowser(profile);
73 observer.WaitForSingleNewBrowser(); 73 observer.WaitForSingleNewBrowser();
74 74
75 ui_test_utils::NavigateToURL(browser, 75 ui_test_utils::NavigateToURL(browser,
76 GURL("chrome://settings-frame/accounts")); 76 GURL("chrome://settings-frame"));
77 content::WebContents* contents = 77 content::WebContents* contents =
78 browser->tab_strip_model()->GetActiveWebContents(); 78 browser->tab_strip_model()->GetActiveWebContents();
79 79
80 bool warning_visible; 80 bool banner_visible;
81 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( 81 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
82 contents, 82 contents,
83 "var e = document.getElementById('ownerOnlyWarning');" 83 "var e = document.getElementById('secondary-user-banner');"
84 "var visible = e.offsetWidth > 0 && e.offsetHeight > 0;" 84 "var visible = e.offsetWidth > 0 && e.offsetHeight > 0;"
85 "window.domAutomationController.send(visible);", 85 "window.domAutomationController.send(visible);",
86 &warning_visible)); 86 &banner_visible));
87 EXPECT_EQ(is_owner, !warning_visible); 87 EXPECT_EQ(is_primary, !banner_visible);
88
89 bool guest_option_enabled;
90 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
91 contents,
92 "var e = document.getElementById('allowBwsiCheck');"
93 "window.domAutomationController.send(!e.disabled);",
94 &guest_option_enabled));
95 ASSERT_EQ(is_owner, guest_option_enabled);
96
97 bool user_pods_enabled;
98 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
99 contents,
100 "var e = document.getElementById('showUserNamesCheck');"
101 "window.domAutomationController.send(!e.disabled);",
102 &user_pods_enabled));
103 ASSERT_EQ(is_owner, user_pods_enabled);
104
105 bool whitelist_enabled;
106 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
107 contents,
108 "var e = document.getElementById('useWhitelistCheck');"
109 "window.domAutomationController.send(!e.disabled);",
110 &whitelist_enabled));
111 ASSERT_EQ(is_owner, whitelist_enabled);
112 } 88 }
113 89
114 StubCrosSettingsProvider stub_settings_provider_; 90 StubCrosSettingsProvider stub_settings_provider_;
115 CrosSettingsProvider* device_settings_provider_; 91 CrosSettingsProvider* device_settings_provider_;
116 92
117 private: 93 private:
118 DISALLOW_COPY_AND_ASSIGN(AccountsOptionsTest); 94 DISALLOW_COPY_AND_ASSIGN(SharedOptionsTest);
119 }; 95 };
120 96
121 IN_PROC_BROWSER_TEST_F(AccountsOptionsTest, PRE_MultiProfilesAccountsOptions) { 97 IN_PROC_BROWSER_TEST_F(SharedOptionsTest, PRE_SharedOptions) {
122 RegisterUser(kTestUsers[0]); 98 RegisterUser(kTestUsers[0]);
123 RegisterUser(kTestUsers[1]); 99 RegisterUser(kTestUsers[1]);
124 StartupUtils::MarkOobeCompleted(); 100 StartupUtils::MarkOobeCompleted();
125 } 101 }
126 102
127 IN_PROC_BROWSER_TEST_F(AccountsOptionsTest, MultiProfilesAccountsOptions) { 103 IN_PROC_BROWSER_TEST_F(SharedOptionsTest, SharedOptions) {
128 LoginUser(kTestUsers[0]); 104 LoginUser(kTestUsers[0]);
129 UserAddingScreen::Get()->Start(); 105 UserAddingScreen::Get()->Start();
130 content::RunAllPendingInMessageLoop(); 106 content::RunAllPendingInMessageLoop();
131 AddUser(kTestUsers[1]); 107 AddUser(kTestUsers[1]);
132 108
133 UserManager* manager = UserManager::Get(); 109 UserManager* manager = UserManager::Get();
134 ASSERT_EQ(2u, manager->GetLoggedInUsers().size()); 110 ASSERT_EQ(2u, manager->GetLoggedInUsers().size());
135 111
136 CheckAccountsUI(manager->FindUser(kTestUsers[0]), true /* is_owner */); 112 CheckOptionsUI(manager->FindUser(kTestUsers[0]), true /* is_primary */);
137 CheckAccountsUI(manager->FindUser(kTestUsers[1]), false /* is_owner */); 113 CheckOptionsUI(manager->FindUser(kTestUsers[1]), false /* is_primary */);
138 } 114 }
139 115
140 } // namespace chromeos 116 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698