blob: 0830e2a5dca1a4a62d9b5a16e43517cac5736ca0 [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/chromeos/extensions/login_screen/login_screen_apitest_base.h"
#include "extensions/test/extension_test_message_listener.h"
#include "extensions/test/result_catcher.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace {
// The extension's code can be found in
// chrome/test/data/extensions/api_test/login_screen_apis/
const char kExtensionId[] = "oclffehlkdgibkainkilopaalpdobkan";
const char kExtensionUpdateManifestPath[] =
"/extensions/api_test/login_screen_apis/update_manifest.xml";
// The test extension will query for a test to run using this message.
const char kWaitingForTestName[] = "Waiting for test name";
} // namespace
namespace chromeos {
LoginScreenApitestBase::LoginScreenApitestBase(version_info::Channel channel)
: SigninProfileExtensionsPolicyTestBase(channel),
extension_id_(kExtensionId),
extension_update_manifest_path_(kExtensionUpdateManifestPath) {}
LoginScreenApitestBase::~LoginScreenApitestBase() = default;
void LoginScreenApitestBase::SetUpExtensionAndRunTest(
const std::string& testName) {
SetUpExtensionAndRunTest(testName, /*assert_test_succeed=*/true);
}
void LoginScreenApitestBase::SetUpExtensionAndRunTest(
const std::string& testName,
bool assert_test_succeed) {
extensions::ResultCatcher catcher;
ExtensionTestMessageListener listener(kWaitingForTestName,
/*will_reply=*/true);
AddExtensionForForceInstallation(extension_id_,
extension_update_manifest_path_);
ASSERT_TRUE(listener.WaitUntilSatisfied());
listener.Reply(testName);
if (assert_test_succeed)
ASSERT_TRUE(catcher.GetNextResult());
}
} // namespace chromeos