Commit 81c3a128 authored by Roman Sorokin's avatar Roman Sorokin Committed by Commit Bot

Chromad: Propagate DeviceLoginScreenDomainAutoComplete

This CL wires DeviceLoginScreenDomainAutoComplete policy with the Active
Directory login screen

BUG=chromium:841294
TEST=ActiveDirectoryLoginAutocompleteTest.TestAutocomplete

Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: I29b264b251cc21b909a526bfb35c73110e6a93ea
Reviewed-on: https://chromium-review.googlesource.com/1069147Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Commit-Queue: Roman Sorokin <rsorokin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561000}
parent 4140c71c
...@@ -49,6 +49,7 @@ constexpr char kAdOfflineAuthId[] = "offline-ad-auth"; ...@@ -49,6 +49,7 @@ constexpr char kAdOfflineAuthId[] = "offline-ad-auth";
constexpr char kAdMachineName[] = "machine_name"; constexpr char kAdMachineName[] = "machine_name";
constexpr char kTestActiveDirectoryUser[] = "test-user"; constexpr char kTestActiveDirectoryUser[] = "test-user";
constexpr char kTestUserRealm[] = "user.realm";
constexpr char kAdMachineInput[] = "machineNameInput"; constexpr char kAdMachineInput[] = "machineNameInput";
constexpr char kAdMoreOptionsButton[] = "moreOptionsBtn"; constexpr char kAdMoreOptionsButton[] = "moreOptionsBtn";
constexpr char kAdUserInput[] = "userInput"; constexpr char kAdUserInput[] = "userInput";
...@@ -99,7 +100,8 @@ class ActiveDirectoryLoginTest : public LoginManagerTest { ...@@ -99,7 +100,8 @@ class ActiveDirectoryLoginTest : public LoginManagerTest {
: LoginManagerTest(true), : LoginManagerTest(true),
// Using the same realm as supervised user domain. Should be treated as // Using the same realm as supervised user domain. Should be treated as
// normal realm. // normal realm.
test_realm_(user_manager::kSupervisedUserDomain) {} test_realm_(user_manager::kSupervisedUserDomain),
autocomplete_realm_(test_realm_) {}
~ActiveDirectoryLoginTest() override = default; ~ActiveDirectoryLoginTest() override = default;
...@@ -214,7 +216,7 @@ class ActiveDirectoryLoginTest : public LoginManagerTest { ...@@ -214,7 +216,7 @@ class ActiveDirectoryLoginTest : public LoginManagerTest {
// Checks if realm is set to autocomplete username. // Checks if realm is set to autocomplete username.
EXPECT_EQ( EXPECT_EQ(
"@" + test_realm_, "@" + autocomplete_realm_,
js_checker().GetString( js_checker().GetString(
JSElement(kAdOfflineAuthId, kAdAutocompleteRealm) + innerText)); JSElement(kAdOfflineAuthId, kAdAutocompleteRealm) + innerText));
...@@ -338,6 +340,7 @@ class ActiveDirectoryLoginTest : public LoginManagerTest { ...@@ -338,6 +340,7 @@ class ActiveDirectoryLoginTest : public LoginManagerTest {
} }
const std::string test_realm_; const std::string test_realm_;
std::string autocomplete_realm_;
private: private:
TestAuthPolicyClient* fake_auth_policy_client_; TestAuthPolicyClient* fake_auth_policy_client_;
...@@ -345,6 +348,23 @@ class ActiveDirectoryLoginTest : public LoginManagerTest { ...@@ -345,6 +348,23 @@ class ActiveDirectoryLoginTest : public LoginManagerTest {
DISALLOW_COPY_AND_ASSIGN(ActiveDirectoryLoginTest); DISALLOW_COPY_AND_ASSIGN(ActiveDirectoryLoginTest);
}; };
class ActiveDirectoryLoginAutocompleteTest : public ActiveDirectoryLoginTest {
public:
ActiveDirectoryLoginAutocompleteTest() = default;
void SetUpInProcessBrowserTestFixture() override {
enterprise_management::ChromeDeviceSettingsProto device_settings;
device_settings.mutable_login_screen_domain_auto_complete()
->set_login_screen_domain_auto_complete(kTestUserRealm);
fake_auth_policy_client()->set_device_policy(device_settings);
autocomplete_realm_ = kTestUserRealm;
ActiveDirectoryLoginTest::SetUpInProcessBrowserTestFixture();
}
private:
DISALLOW_COPY_AND_ASSIGN(ActiveDirectoryLoginAutocompleteTest);
};
} // namespace } // namespace
// Marks as Active Directory enterprise device and OOBE as completed. // Marks as Active Directory enterprise device and OOBE as completed.
...@@ -493,4 +513,17 @@ IN_PROC_BROWSER_TEST_F(ActiveDirectoryLoginTest, ...@@ -493,4 +513,17 @@ IN_PROC_BROWSER_TEST_F(ActiveDirectoryLoginTest,
TriggerPasswordChangeScreen(); TriggerPasswordChangeScreen();
} }
// Marks as Active Directory enterprise device and OOBE as completed.
IN_PROC_BROWSER_TEST_F(ActiveDirectoryLoginAutocompleteTest,
PRE_TestAutocomplete) {
MarkAsActiveDirectoryEnterprise();
}
// Tests that DeviceLoginScreenDomainAutoComplete policy overrides device realm
// for user autocomplete.
IN_PROC_BROWSER_TEST_F(ActiveDirectoryLoginAutocompleteTest, TestAutocomplete) {
TestLoginVisible();
TestDomainVisible();
}
} // namespace chromeos } // namespace chromeos
...@@ -1235,10 +1235,14 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() { ...@@ -1235,10 +1235,14 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
this.loading = true; this.loading = true;
this.startLoadingTimer_(); this.startLoadingTimer_();
var ADAuthUI = this.getSigninFrame_(); var ADAuthUI = this.getSigninFrame_();
if ('realm' in params) { if ('realm' in params)
ADAuthUI.realm = params['realm']; ADAuthUI.realm = params['realm'];
if ('emailDomain' in params)
ADAuthUI.userRealm = '@' + params['emailDomain'];
else if ('realm' in params)
ADAuthUI.userRealm = '@' + params['realm']; ADAuthUI.userRealm = '@' + params['realm'];
}
ADAuthUI.setUser(params['email']); ADAuthUI.setUser(params['email']);
this.onAuthReady_(); this.onAuthReady_();
}, },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment