| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/extensions/chooser_dialog_view.h" | 5 #include "chrome/browser/ui/views/extensions/chooser_dialog_view.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/memory/ptr_util.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
| 11 #include "chrome/browser/chooser_controller/mock_chooser_controller.h" | 12 #include "chrome/browser/chooser_controller/mock_chooser_controller.h" |
| 12 #include "chrome/browser/ui/views/chooser_content_view.h" | 13 #include "chrome/browser/ui/views/chooser_content_view.h" |
| 13 #include "chrome/grit/generated_resources.h" | 14 #include "chrome/grit/generated_resources.h" |
| 14 #include "testing/gmock/include/gmock/gmock.h" | 15 #include "testing/gmock/include/gmock/gmock.h" |
| 15 #include "ui/base/l10n/l10n_util.h" | 16 #include "ui/base/l10n/l10n_util.h" |
| 16 #include "ui/views/controls/button/label_button.h" | 17 #include "ui/views/controls/button/label_button.h" |
| 17 #include "ui/views/controls/styled_label.h" | 18 #include "ui/views/controls/styled_label.h" |
| 18 #include "ui/views/controls/table/table_view.h" | 19 #include "ui/views/controls/table/table_view.h" |
| 20 #include "ui/views/test/native_widget_factory.h" |
| 19 #include "ui/views/test/views_test_base.h" | 21 #include "ui/views/test/views_test_base.h" |
| 20 #include "ui/views/widget/widget.h" | 22 #include "ui/views/widget/widget.h" |
| 21 #include "ui/views/window/dialog_client_view.h" | 23 #include "ui/views/window/dialog_client_view.h" |
| 22 | 24 |
| 23 class ChooserDialogViewTest : public views::ViewsTestBase { | 25 class ChooserDialogViewTest : public views::ViewsTestBase { |
| 24 public: | 26 public: |
| 25 ChooserDialogViewTest() {} | 27 ChooserDialogViewTest() {} |
| 26 ~ChooserDialogViewTest() override {} | 28 ~ChooserDialogViewTest() override {} |
| 27 | 29 |
| 28 // views::ViewsTestBase: | 30 // views::ViewsTestBase: |
| 29 void SetUp() override { | 31 void SetUp() override { |
| 30 views::ViewsTestBase::SetUp(); | 32 views::ViewsTestBase::SetUp(); |
| 31 std::unique_ptr<MockChooserController> mock_chooser_controller( | 33 std::unique_ptr<MockChooserController> mock_chooser_controller( |
| 32 new MockChooserController(nullptr)); | 34 new MockChooserController(nullptr)); |
| 33 mock_chooser_controller_ = mock_chooser_controller.get(); | 35 mock_chooser_controller_ = mock_chooser_controller.get(); |
| 34 std::unique_ptr<ChooserDialogView> chooser_dialog_view( | 36 std::unique_ptr<ChooserDialogView> chooser_dialog_view( |
| 35 new ChooserDialogView(std::move(mock_chooser_controller))); | 37 new ChooserDialogView(std::move(mock_chooser_controller))); |
| 36 footnote_link_.reset(chooser_dialog_view->chooser_content_view_for_test() | |
| 37 ->CreateFootnoteView()); | |
| 38 chooser_dialog_view_ = chooser_dialog_view.get(); | 38 chooser_dialog_view_ = chooser_dialog_view.get(); |
| 39 table_view_ = | 39 table_view_ = |
| 40 chooser_dialog_view_->chooser_content_view_for_test()->table_view_; | 40 chooser_dialog_view_->chooser_content_view_for_test()->table_view_; |
| 41 ASSERT_TRUE(table_view_); | 41 ASSERT_TRUE(table_view_); |
| 42 |
| 43 views::Widget::InitParams params = |
| 44 CreateParams(views::Widget::InitParams::TYPE_WINDOW); |
| 45 params.bounds = gfx::Rect(0, 0, 600, 600); |
| 46 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| 47 parent_widget_ = base::MakeUnique<views::Widget>(); |
| 48 params.native_widget = views::test::CreatePlatformDesktopNativeWidgetImpl( |
| 49 params, parent_widget_.get(), nullptr); |
| 50 parent_widget_->Init(params); |
| 51 |
| 42 dialog_ = views::DialogDelegate::CreateDialogWidget( | 52 dialog_ = views::DialogDelegate::CreateDialogWidget( |
| 43 chooser_dialog_view.release(), GetContext(), nullptr); | 53 chooser_dialog_view.release(), GetContext(), |
| 54 parent_widget_->GetNativeView()); |
| 44 ASSERT_TRUE(dialog_); | 55 ASSERT_TRUE(dialog_); |
| 45 ok_button_ = chooser_dialog_view_->GetDialogClientView()->ok_button(); | 56 ok_button_ = chooser_dialog_view_->GetDialogClientView()->ok_button(); |
| 46 ASSERT_TRUE(ok_button_); | 57 ASSERT_TRUE(ok_button_); |
| 47 cancel_button_ = | 58 cancel_button_ = |
| 48 chooser_dialog_view_->GetDialogClientView()->cancel_button(); | 59 chooser_dialog_view_->GetDialogClientView()->cancel_button(); |
| 49 ASSERT_TRUE(cancel_button_); | 60 ASSERT_TRUE(cancel_button_); |
| 50 } | 61 } |
| 51 | 62 |
| 52 // views::ViewsTestBase: | 63 // views::ViewsTestBase: |
| 53 void TearDown() override { | 64 void TearDown() override { |
| 54 dialog_->CloseNow(); | 65 dialog_->CloseNow(); |
| 66 parent_widget_->CloseNow(); |
| 55 views::ViewsTestBase::TearDown(); | 67 views::ViewsTestBase::TearDown(); |
| 56 } | 68 } |
| 57 | 69 |
| 58 protected: | 70 protected: |
| 59 MockChooserController* mock_chooser_controller_; | 71 MockChooserController* mock_chooser_controller_ = nullptr; |
| 60 ChooserDialogView* chooser_dialog_view_; | 72 ChooserDialogView* chooser_dialog_view_ = nullptr; |
| 61 std::unique_ptr<views::StyledLabel> footnote_link_; | 73 std::unique_ptr<views::Widget> parent_widget_; |
| 62 views::TableView* table_view_; | 74 views::TableView* table_view_ = nullptr; |
| 63 views::LabelButton* ok_button_; | 75 views::LabelButton* ok_button_ = nullptr; |
| 64 views::LabelButton* cancel_button_; | 76 views::LabelButton* cancel_button_ = nullptr; |
| 65 views::Widget* dialog_; | 77 views::Widget* dialog_ = nullptr; |
| 66 | 78 |
| 67 private: | 79 private: |
| 68 DISALLOW_COPY_AND_ASSIGN(ChooserDialogViewTest); | 80 DISALLOW_COPY_AND_ASSIGN(ChooserDialogViewTest); |
| 69 }; | 81 }; |
| 70 | 82 |
| 71 TEST_F(ChooserDialogViewTest, InitialState) { | 83 TEST_F(ChooserDialogViewTest, InitialState) { |
| 72 // OK button is disabled since there is no option. | 84 // OK button is disabled since there is no option. |
| 73 EXPECT_FALSE(ok_button_->enabled()); | 85 EXPECT_FALSE(ok_button_->enabled()); |
| 74 // Cancel button is always enabled. | 86 // Cancel button is always enabled. |
| 75 EXPECT_TRUE(cancel_button_->enabled()); | 87 EXPECT_TRUE(cancel_button_->enabled()); |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 372 EXPECT_TRUE(cancel_button_->enabled()); | 384 EXPECT_TRUE(cancel_button_->enabled()); |
| 373 table_view_->Select(0); | 385 table_view_->Select(0); |
| 374 EXPECT_TRUE(ok_button_->enabled()); | 386 EXPECT_TRUE(ok_button_->enabled()); |
| 375 EXPECT_TRUE(cancel_button_->enabled()); | 387 EXPECT_TRUE(cancel_button_->enabled()); |
| 376 | 388 |
| 377 mock_chooser_controller_->OnDiscoveryStateChanged( | 389 mock_chooser_controller_->OnDiscoveryStateChanged( |
| 378 content::BluetoothChooser::DiscoveryState::IDLE); | 390 content::BluetoothChooser::DiscoveryState::IDLE); |
| 379 EXPECT_TRUE(ok_button_->enabled()); | 391 EXPECT_TRUE(ok_button_->enabled()); |
| 380 EXPECT_TRUE(cancel_button_->enabled()); | 392 EXPECT_TRUE(cancel_button_->enabled()); |
| 381 } | 393 } |
| OLD | NEW |