Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Side by Side Diff: chrome/browser/ui/views/extensions/chooser_dialog_view_unittest.cc

Issue 2478863003: Fix the Web Bluetooth chooser when it is used on Chrome apps on non-Mac (Closed)
Patch Set: initialize pointer to be nullptr Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698