Commit 033867b3 authored by Jit Yao Yap's avatar Jit Yao Yap Committed by Commit Bot

Fix flaky LockManagedGuestSessionNotManagedGuestSession test

A TestExtensionRegistryObserver is used to wait for the in-session
extension to be ready before calling the Javascript test function.

Bug: 1075511
Change-Id: I77837f14782f63c69628e3364edaf0a41c99843a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2212277Reviewed-by: default avatarAlexander Hendrich <hendrich@chromium.org>
Commit-Queue: Jit Yao Yap <jityao@google.com>
Cr-Commit-Position: refs/heads/master@{#771746}
parent 803b1316
......@@ -39,6 +39,7 @@
#include "content/public/test/browser_test.h"
#include "content/public/test/test_utils.h"
#include "extensions/browser/api/test/test_api.h"
#include "extensions/browser/test_extension_registry_observer.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest.h"
#include "extensions/test/extension_test_message_listener.h"
......@@ -146,6 +147,16 @@ class LoginApitest : public LoginScreenApitestBase {
run_loop.Run();
}
std::unique_ptr<extensions::TestExtensionRegistryObserver>
GetTestExtensionRegistryObserver(const std::string& extension_id) {
const user_manager::User* active_user =
user_manager::UserManager::Get()->GetActiveUser();
Profile* profile =
chromeos::ProfileHelper::Get()->GetProfileByUser(active_user);
return std::make_unique<extensions::TestExtensionRegistryObserver>(
extensions::ExtensionRegistry::Get(profile), extension_id);
}
virtual void SetUpInSessionExtension() {
std::unique_ptr<policy::UserPolicyBuilder> user_policy_builder =
MakeInSessionExtensionUserPolicyBuilder();
......@@ -157,12 +168,17 @@ class LoginApitest : public LoginScreenApitestBase {
policy_data.set_settings_entity_id(kAccountId);
user_policy_builder->Build();
auto registry_observer =
GetTestExtensionRegistryObserver(kInSessionExtensionId);
ASSERT_TRUE(local_policy_mixin_.server()->UpdatePolicy(
policy::dm_protocol::kChromePublicAccountPolicyType, kAccountId,
user_policy_builder->payload().SerializeAsString()));
session_manager_client()->set_device_local_account_policy(
kAccountId, user_policy_builder->GetBlob());
RefreshPolicies();
registry_observer->WaitForExtensionReady();
}
void SetTestCustomArg(const std::string custom_arg) {
......@@ -402,6 +418,9 @@ class LoginApitestWithEnterpriseUser : public LoginApitest {
policy_data.set_gaia_id(account_id.GetGaiaId());
user_policy_builder->Build();
auto registry_observer =
GetTestExtensionRegistryObserver(kInSessionExtensionId);
ASSERT_TRUE(
logged_in_user_mixin_.GetLocalPolicyTestServerMixin()->UpdateUserPolicy(
user_policy_builder->payload(), account_id.GetUserEmail()));
......@@ -409,6 +428,8 @@ class LoginApitestWithEnterpriseUser : public LoginApitest {
cryptohome::CreateAccountIdentifierFromAccountId(account_id),
user_policy_builder->GetBlob());
RefreshPolicies();
registry_observer->WaitForExtensionReady();
}
private:
......@@ -441,9 +462,8 @@ IN_PROC_BROWSER_TEST_F(LoginApitestWithEnterpriseUser,
kUnlockManagedGuestSessionNotManagedGuestSession);
}
// TODO(https://crbug.com/1075511) Flaky test
IN_PROC_BROWSER_TEST_F(LoginApitestWithEnterpriseUser,
DISABLED_LockManagedGuestSessionNotManagedGuestSession) {
LockManagedGuestSessionNotManagedGuestSession) {
LoginUser();
SetUpTestListeners();
SetUpInSessionExtension();
......
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