Commit 3b95b63d authored by Roman Aleksandrov's avatar Roman Aleksandrov Committed by Commit Bot

PackagedLicenseScreen: Add browsertests.


BUG=1065732

Change-Id: I585bb20a2fe7b546043fe4b032dfb1cbcbe91bc8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2126228
Commit-Queue: Roman Aleksandrov <raleksandrov@google.com>
Reviewed-by: default avatarRoman Sorokin [CET] <rsorokin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#754437}
parent 96e4cb57
...@@ -32,6 +32,10 @@ class PackagedLicenseScreen : public BaseScreen { ...@@ -32,6 +32,10 @@ class PackagedLicenseScreen : public BaseScreen {
PackagedLicenseScreen& operator=(const PackagedLicenseScreen&) = delete; PackagedLicenseScreen& operator=(const PackagedLicenseScreen&) = delete;
~PackagedLicenseScreen() override; ~PackagedLicenseScreen() override;
void set_exit_callback_for_testing(const ScreenExitCallback& exit_callback) {
exit_callback_ = exit_callback;
}
protected: protected:
// BaseScreen // BaseScreen
void ShowImpl() override; void ShowImpl() override;
......
// Copyright 2020 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/login/screens/packaged_license_screen.h"
#include "base/bind.h"
#include "base/run_loop.h"
#include "chrome/browser/chromeos/login/screen_manager.h"
#include "chrome/browser/chromeos/login/test/js_checker.h"
#include "chrome/browser/chromeos/login/test/oobe_base_test.h"
#include "chrome/browser/chromeos/login/test/oobe_screen_waiter.h"
#include "chrome/browser/chromeos/login/wizard_controller.h"
#include "chrome/browser/chromeos/policy/enrollment_config.h"
#include "chrome/browser/ui/webui/chromeos/login/packaged_license_screen_handler.h"
namespace chromeos {
class PackagedLicenseScreenTest : public OobeBaseTest {
public:
PackagedLicenseScreenTest() {}
~PackagedLicenseScreenTest() override = default;
void SetUpOnMainThread() override {
PackagedLicenseScreen* screen = static_cast<PackagedLicenseScreen*>(
WizardController::default_controller()->screen_manager()->GetScreen(
PackagedLicenseView::kScreenId));
screen->set_exit_callback_for_testing(base::BindRepeating(
&PackagedLicenseScreenTest::HandleScreenExit, base::Unretained(this)));
policy::EnrollmentConfig config;
config.is_license_packaged_with_device = true;
WizardController::default_controller()
->set_prescribed_enrollment_config_for_testing(config);
OobeBaseTest::SetUpOnMainThread();
}
void ShowPackagedLicenseScreen() {
WizardController::default_controller()->AdvanceToScreen(
PackagedLicenseView::kScreenId);
OobeScreenWaiter(PackagedLicenseView::kScreenId).Wait();
}
void WaitForScreenExit() {
if (screen_exited_)
return;
base::RunLoop run_loop;
screen_exit_callback_ = run_loop.QuitClosure();
run_loop.Run();
}
void CheckResult(PackagedLicenseScreen::Result result) {
EXPECT_EQ(result_, result);
}
private:
void HandleScreenExit(PackagedLicenseScreen::Result result) {
screen_exited_ = true;
result_ = result;
if (screen_exit_callback_)
std::move(screen_exit_callback_).Run();
}
bool screen_exited_ = false;
PackagedLicenseScreen::Result result_;
base::RepeatingClosure screen_exit_callback_;
};
IN_PROC_BROWSER_TEST_F(PackagedLicenseScreenTest, DontEnroll) {
ShowPackagedLicenseScreen();
test::OobeJS().TapOnPath({"packaged-license", "dont-enroll-button"});
WaitForScreenExit();
CheckResult(PackagedLicenseScreen::Result::DONT_ENROLL);
}
IN_PROC_BROWSER_TEST_F(PackagedLicenseScreenTest, Enroll) {
ShowPackagedLicenseScreen();
test::OobeJS().TapOnPath({"packaged-license", "enroll-button"});
WaitForScreenExit();
CheckResult(PackagedLicenseScreen::Result::ENROLL);
}
} // namespace chromeos
...@@ -142,6 +142,11 @@ class WizardController { ...@@ -142,6 +142,11 @@ class WizardController {
!prescribed_enrollment_config_.should_enroll(); !prescribed_enrollment_config_.should_enroll();
} }
void set_prescribed_enrollment_config_for_testing(
policy::EnrollmentConfig config) {
prescribed_enrollment_config_ = config;
}
// Returns true if a given screen exists. // Returns true if a given screen exists.
bool HasScreen(OobeScreenId screen); bool HasScreen(OobeScreenId screen);
......
...@@ -2231,6 +2231,7 @@ if (!is_android) { ...@@ -2231,6 +2231,7 @@ if (!is_android) {
"../browser/chromeos/login/screens/mock_wrong_hwid_screen.cc", "../browser/chromeos/login/screens/mock_wrong_hwid_screen.cc",
"../browser/chromeos/login/screens/mock_wrong_hwid_screen.h", "../browser/chromeos/login/screens/mock_wrong_hwid_screen.h",
"../browser/chromeos/login/screens/network_screen_browsertest.cc", "../browser/chromeos/login/screens/network_screen_browsertest.cc",
"../browser/chromeos/login/screens/packaged_license_screen_browsertest.cc",
"../browser/chromeos/login/screens/recommend_apps/scoped_test_recommend_apps_fetcher_factory.cc", "../browser/chromeos/login/screens/recommend_apps/scoped_test_recommend_apps_fetcher_factory.cc",
"../browser/chromeos/login/screens/recommend_apps/scoped_test_recommend_apps_fetcher_factory.h", "../browser/chromeos/login/screens/recommend_apps/scoped_test_recommend_apps_fetcher_factory.h",
"../browser/chromeos/login/screens/recommend_apps_screen_browsertest.cc", "../browser/chromeos/login/screens/recommend_apps_screen_browsertest.cc",
......
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