| Index: chrome/browser/ui/views/ime/ime_warning_bubble_browsertest.cc
|
| diff --git a/chrome/browser/ui/views/ime/ime_warning_bubble_browsertest.cc b/chrome/browser/ui/views/ime/ime_warning_bubble_browsertest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1bef904a81c6bbce16b72c6b8352cda73e7eee74
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/views/ime/ime_warning_bubble_browsertest.cc
|
| @@ -0,0 +1,94 @@
|
| +// Copyright 2016 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/extensions/api/input_ime/input_ime_api_nonchromeos.h"
|
| +#include "chrome/browser/extensions/extension_browsertest.h"
|
| +#include "chrome/browser/ui/browser_window.h"
|
| +#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
|
| +#include "chrome/browser/ui/views/frame/browser_view.h"
|
| +#include "chrome/browser/ui/views/ime/ime_warning_bubble_view.h"
|
| +#include "ui/views/controls/button/checkbox.h"
|
| +
|
| +class ImeWarningBubbleTest : public ExtensionBrowserTest {
|
| + public:
|
| + ImeWarningBubbleTest();
|
| + ~ImeWarningBubbleTest() override {}
|
| +
|
| + void SetUpOnMainThread() override;
|
| +
|
| + protected:
|
| + void OnPermissionBubbleFinished(ImeWarningBubblePermissionStatus status);
|
| +
|
| + bool IsVisible();
|
| + void CloseBubble(bool ok, bool checked);
|
| +
|
| + const extensions::Extension* extension_;
|
| + ImeWarningBubbleView* ime_warning_bubble_;
|
| + base::Callback<void(ImeWarningBubblePermissionStatus status)> callback_;
|
| + bool ok_button_pressed_;
|
| + bool never_show_checked_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ImeWarningBubbleTest);
|
| +};
|
| +
|
| +ImeWarningBubbleTest::ImeWarningBubbleTest()
|
| + : extension_(nullptr),
|
| + ime_warning_bubble_(nullptr),
|
| + ok_button_pressed_(false),
|
| + never_show_checked_(false) {}
|
| +
|
| +void ImeWarningBubbleTest::SetUpOnMainThread() {
|
| + ToolbarActionsBar::disable_animations_for_testing_ = true;
|
| + ExtensionBrowserTest::SetUpOnMainThread();
|
| + extension_ = ExtensionBrowserTest::LoadExtension(
|
| + test_data_dir_.AppendASCII("input_ime"));
|
| + callback_ =
|
| + base::Bind(&ImeWarningBubbleTest::OnPermissionBubbleFinished, this);
|
| + browser()->window()->ShowImeWarningBubble(extension_, callback_);
|
| + ime_warning_bubble_ = ImeWarningBubbleView::ime_warning_bubble_for_test_;
|
| +}
|
| +
|
| +void ImeWarningBubbleTest::OnPermissionBubbleFinished(
|
| + ImeWarningBubblePermissionStatus status) {
|
| + if (status == ImeWarningBubblePermissionStatus::GRANTED ||
|
| + status == ImeWarningBubblePermissionStatus::GRANTED_AND_NEVER_SHOW) {
|
| + ok_button_pressed_ = true;
|
| + } else {
|
| + ok_button_pressed_ = false;
|
| + }
|
| + if (status == ImeWarningBubblePermissionStatus::GRANTED_AND_NEVER_SHOW) {
|
| + never_show_checked_ = true;
|
| + } else {
|
| + never_show_checked_ = false;
|
| + }
|
| +}
|
| +
|
| +bool ImeWarningBubbleTest::IsVisible() {
|
| + return ime_warning_bubble_->GetWidget() &&
|
| + ime_warning_bubble_->GetWidget()->IsVisible();
|
| +}
|
| +
|
| +void ImeWarningBubbleTest::CloseBubble(bool ok, bool checked) {
|
| + ime_warning_bubble_->never_show_checkbox_->SetChecked(checked);
|
| + if (ok)
|
| + ime_warning_bubble_->Accept();
|
| + else
|
| + ime_warning_bubble_->Cancel();
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(ImeWarningBubbleTest, PressOKButton) {
|
| + ASSERT_TRUE(!!ime_warning_bubble_);
|
| + EXPECT_TRUE(IsVisible());
|
| + CloseBubble(true, true);
|
| + EXPECT_TRUE(ok_button_pressed_);
|
| + EXPECT_TRUE(never_show_checked_);
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(ImeWarningBubbleTest, PressCANCELButton) {
|
| + ASSERT_TRUE(!!ime_warning_bubble_);
|
| + EXPECT_TRUE(IsVisible());
|
| + CloseBubble(false, false);
|
| + EXPECT_FALSE(ok_button_pressed_);
|
| + EXPECT_FALSE(never_show_checked_);
|
| +}
|
|
|