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";
constexpr char kAdMachineName[] = "machine_name";
constexpr char kTestActiveDirectoryUser[] = "test-user";
constexpr char kTestUserRealm[] = "user.realm";
constexpr char kAdMachineInput[] = "machineNameInput";
constexpr char kAdMoreOptionsButton[] = "moreOptionsBtn";
constexpr char kAdUserInput[] = "userInput";
......@@ -99,7 +100,8 @@ class ActiveDirectoryLoginTest : public LoginManagerTest {
: LoginManagerTest(true),
// Using the same realm as supervised user domain. Should be treated as
// normal realm.
test_realm_(user_manager::kSupervisedUserDomain) {}
test_realm_(user_manager::kSupervisedUserDomain),
autocomplete_realm_(test_realm_) {}
~ActiveDirectoryLoginTest() override = default;
......@@ -214,7 +216,7 @@ class ActiveDirectoryLoginTest : public LoginManagerTest {
// Checks if realm is set to autocomplete username.
EXPECT_EQ(
"@" + test_realm_,
"@" + autocomplete_realm_,
js_checker().GetString(
JSElement(kAdOfflineAuthId, kAdAutocompleteRealm) + innerText));
......@@ -338,6 +340,7 @@ class ActiveDirectoryLoginTest : public LoginManagerTest {
}
const std::string test_realm_;
std::string autocomplete_realm_;
private:
TestAuthPolicyClient* fake_auth_policy_client_;
......@@ -345,6 +348,23 @@ class ActiveDirectoryLoginTest : public LoginManagerTest {
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
// Marks as Active Directory enterprise device and OOBE as completed.
......@@ -493,4 +513,17 @@ IN_PROC_BROWSER_TEST_F(ActiveDirectoryLoginTest,
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
......@@ -1235,10 +1235,14 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
this.loading = true;
this.startLoadingTimer_();
var ADAuthUI = this.getSigninFrame_();
if ('realm' in params) {
if ('realm' in params)
ADAuthUI.realm = params['realm'];
if ('emailDomain' in params)
ADAuthUI.userRealm = '@' + params['emailDomain'];
else if ('realm' in params)
ADAuthUI.userRealm = '@' + params['realm'];
}
ADAuthUI.setUser(params['email']);
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