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

Side by Side Diff: chrome/browser/ui/views/chooser_content_view_unittest.cc

Issue 2155743002: Add throbber and status text to WebBluetooth chooser UI on non-Mac desktops (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removed unnecessary include file Created 4 years, 5 months 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/chooser_content_view.h" 5 #include "chrome/browser/ui/views/chooser_content_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/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
11 #include "chrome/browser/chooser_controller/mock_chooser_controller.h" 11 #include "chrome/browser/chooser_controller/mock_chooser_controller.h"
12 #include "chrome/grit/generated_resources.h" 12 #include "chrome/grit/generated_resources.h"
13 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "ui/base/l10n/l10n_util.h" 15 #include "ui/base/l10n/l10n_util.h"
16 #include "ui/views/controls/styled_label.h" 16 #include "ui/views/controls/styled_label.h"
17 #include "ui/views/controls/styled_label_listener.h"
18 #include "ui/views/controls/table/table_view.h" 17 #include "ui/views/controls/table/table_view.h"
19 #include "ui/views/controls/table/table_view_observer.h" 18 #include "ui/views/controls/table/table_view_observer.h"
20 19
21 namespace { 20 namespace {
22 21
23 class MockTableViewObserver : public views::TableViewObserver { 22 class MockTableViewObserver : public views::TableViewObserver {
24 public: 23 public:
25 // views::TableViewObserver: 24 // views::TableViewObserver:
26 MOCK_METHOD0(OnSelectionChanged, void()); 25 MOCK_METHOD0(OnSelectionChanged, void());
27 }; 26 };
28 27
29 class MockStyledLabelListener : public views::StyledLabelListener {
30 public:
31 // views::StyledLabelListener:
32 MOCK_METHOD3(StyledLabelLinkClicked,
33 void(views::StyledLabel* label,
34 const gfx::Range& range,
35 int event_flags));
36 };
37
38 } // namespace 28 } // namespace
39 29
40 class ChooserContentViewTest : public testing::Test { 30 class ChooserContentViewTest : public testing::Test {
41 public: 31 public:
42 ChooserContentViewTest() {} 32 ChooserContentViewTest() {}
43 33
44 // testing::Test: 34 // testing::Test:
45 void SetUp() override { 35 void SetUp() override {
46 std::unique_ptr<MockChooserController> mock_chooser_controller( 36 std::unique_ptr<MockChooserController> mock_chooser_controller(
47 new MockChooserController(nullptr)); 37 new MockChooserController(nullptr));
48 mock_chooser_controller_ = mock_chooser_controller.get(); 38 mock_chooser_controller_ = mock_chooser_controller.get();
49 mock_table_view_observer_.reset(new MockTableViewObserver()); 39 mock_table_view_observer_.reset(new MockTableViewObserver());
50 chooser_content_view_.reset(new ChooserContentView( 40 chooser_content_view_.reset(new ChooserContentView(
51 mock_table_view_observer_.get(), std::move(mock_chooser_controller))); 41 mock_table_view_observer_.get(), std::move(mock_chooser_controller)));
52 table_view_ = chooser_content_view_->table_view_for_test(); 42 table_view_ = chooser_content_view_->table_view_for_test();
53 ASSERT_TRUE(table_view_); 43 ASSERT_TRUE(table_view_);
54 table_model_ = table_view_->model(); 44 table_model_ = table_view_->model();
55 ASSERT_TRUE(table_model_); 45 ASSERT_TRUE(table_model_);
56 mock_styled_label_listener_.reset(new MockStyledLabelListener()); 46 styled_label_.reset(chooser_content_view_->CreateFootnoteView());
57 styled_label_.reset(chooser_content_view_->CreateFootnoteView(
58 mock_styled_label_listener_.get()));
59 ASSERT_TRUE(styled_label_); 47 ASSERT_TRUE(styled_label_);
60 } 48 }
61 49
62 protected: 50 protected:
63 std::unique_ptr<MockTableViewObserver> mock_table_view_observer_; 51 std::unique_ptr<MockTableViewObserver> mock_table_view_observer_;
64 std::unique_ptr<ChooserContentView> chooser_content_view_; 52 std::unique_ptr<ChooserContentView> chooser_content_view_;
65 MockChooserController* mock_chooser_controller_; 53 MockChooserController* mock_chooser_controller_;
66 views::TableView* table_view_; 54 views::TableView* table_view_;
67 ui::TableModel* table_model_; 55 ui::TableModel* table_model_;
68 std::unique_ptr<MockStyledLabelListener> mock_styled_label_listener_;
69 std::unique_ptr<views::StyledLabel> styled_label_; 56 std::unique_ptr<views::StyledLabel> styled_label_;
70 57
71 private: 58 private:
72 DISALLOW_COPY_AND_ASSIGN(ChooserContentViewTest); 59 DISALLOW_COPY_AND_ASSIGN(ChooserContentViewTest);
73 }; 60 };
74 61
75 TEST_F(ChooserContentViewTest, InitialState) { 62 TEST_F(ChooserContentViewTest, InitialState) {
76 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(0); 63 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(0);
77 64
78 // Since "No devices found." needs to be displayed on the |table_view_|, 65 // Since "No devices found." needs to be displayed on the |table_view_|,
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), 287 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT),
301 table_model_->GetText(0, 0)); 288 table_model_->GetText(0, 0));
302 // |table_view_| should be disabled since all options are removed. 289 // |table_view_| should be disabled since all options are removed.
303 EXPECT_FALSE(table_view_->enabled()); 290 EXPECT_FALSE(table_view_->enabled());
304 // No option selected. 291 // No option selected.
305 EXPECT_EQ(0, table_view_->SelectedRowCount()); 292 EXPECT_EQ(0, table_view_->SelectedRowCount());
306 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 293 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
307 } 294 }
308 295
309 TEST_F(ChooserContentViewTest, ClickStyledLabelLink) { 296 TEST_F(ChooserContentViewTest, ClickStyledLabelLink) {
310 EXPECT_CALL(*mock_styled_label_listener_, 297 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1);
311 StyledLabelLinkClicked(styled_label_.get(), testing::_, 0))
312 .Times(1);
313 styled_label_->LinkClicked(nullptr, 0); 298 styled_label_->LinkClicked(nullptr, 0);
314 } 299 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/chooser_content_view.cc ('k') | chrome/browser/ui/views/extensions/chooser_dialog_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698