[go: nahoru, domu]

blob: d53bd0473312b8dd2cb2282d696209ccd634bb16 [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/views/policy/enterprise_startup_dialog_view.h"
#include "base/functional/bind.h"
#include "base/memory/raw_ptr.h"
#include "base/strings/utf_string_conversions.h"
#include "base/task/single_thread_task_runner.h"
#include "build/build_config.h"
#include "chrome/browser/ui/test/test_browser_dialog.h"
#include "content/public/test/browser_test.h"
namespace policy {
namespace {
constexpr char16_t kMessage[] = u"message";
constexpr char16_t kButton[] = u"button";
void DialogResultCallback(bool result, bool can_show_browser_window) {}
} // namespace
class EnterpriseStartupDialogViewBrowserTest : public DialogBrowserTest {
public:
EnterpriseStartupDialogViewBrowserTest() = default;
EnterpriseStartupDialogViewBrowserTest(
const EnterpriseStartupDialogViewBrowserTest&) = delete;
EnterpriseStartupDialogViewBrowserTest& operator=(
const EnterpriseStartupDialogViewBrowserTest&) = delete;
~EnterpriseStartupDialogViewBrowserTest() override = default;
// override DialogBrowserTest
void ShowUi(const std::string& name) override {
dialog =
new EnterpriseStartupDialogView(base::BindOnce(&DialogResultCallback));
if (name == "Information") {
dialog->DisplayLaunchingInformationWithThrobber(kMessage);
} else if (name == "Error") {
dialog->DisplayErrorMessage(kMessage, kButton);
} else if (name == "Switch") {
dialog->DisplayLaunchingInformationWithThrobber(kMessage);
dialog->DisplayErrorMessage(kMessage, kButton);
}
}
#if BUILDFLAG(IS_MAC)
// On mac, we need to wait until the dialog launched modally before closing
// it.
void DismissUi() override {
base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
FROM_HERE, base::BindOnce(&EnterpriseStartupDialogView::CloseDialog,
base::Unretained(dialog)));
}
#endif
private:
raw_ptr<EnterpriseStartupDialogView, DanglingAcrossTasks> dialog;
};
IN_PROC_BROWSER_TEST_F(EnterpriseStartupDialogViewBrowserTest,
InvokeUi_Information) {
ShowAndVerifyUi();
}
IN_PROC_BROWSER_TEST_F(EnterpriseStartupDialogViewBrowserTest, InvokeUi_Error) {
ShowAndVerifyUi();
}
IN_PROC_BROWSER_TEST_F(EnterpriseStartupDialogViewBrowserTest,
InvokeUi_Switch) {
ShowAndVerifyUi();
}
} // namespace policy