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

Side by Side Diff: chrome/browser/chooser_controller/mock_chooser_controller.cc

Issue 2171103002: Add test for WebBluetooth chooser spinner, status text and rescan button (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 4 years, 4 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/chooser_controller/mock_chooser_controller.h" 5 #include "chrome/browser/chooser_controller/mock_chooser_controller.h"
6 6
7 #include "base/logging.h"
8 #include "base/strings/utf_string_conversions.h"
7 #include "chrome/grit/generated_resources.h" 9 #include "chrome/grit/generated_resources.h"
8 #include "ui/base/l10n/l10n_util.h" 10 #include "ui/base/l10n/l10n_util.h"
9 11
10 MockChooserController::MockChooserController(content::RenderFrameHost* owner) 12 MockChooserController::MockChooserController(content::RenderFrameHost* owner)
11 : ChooserController(owner, 13 : ChooserController(owner,
12 IDS_USB_DEVICE_CHOOSER_PROMPT_ORIGIN, 14 IDS_USB_DEVICE_CHOOSER_PROMPT_ORIGIN,
13 IDS_USB_DEVICE_CHOOSER_PROMPT_EXTENSION_NAME) {} 15 IDS_USB_DEVICE_CHOOSER_PROMPT_EXTENSION_NAME),
16 no_options_text_(l10n_util::GetStringUTF16(
17 IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT)) {}
14 18
15 MockChooserController::~MockChooserController() {} 19 MockChooserController::~MockChooserController() {}
16 20
17 base::string16 MockChooserController::GetNoOptionsText() const { 21 base::string16 MockChooserController::GetNoOptionsText() const {
18 return l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT); 22 return no_options_text_;
19 } 23 }
20 24
21 base::string16 MockChooserController::GetOkButtonLabel() const { 25 base::string16 MockChooserController::GetOkButtonLabel() const {
22 return base::string16(); 26 return l10n_util::GetStringUTF16(IDS_USB_DEVICE_CHOOSER_CONNECT_BUTTON_TEXT);
23 } 27 }
24 28
25 size_t MockChooserController::NumOptions() const { 29 size_t MockChooserController::NumOptions() const {
26 return option_names_.size(); 30 return option_names_.size();
27 } 31 }
28 32
29 base::string16 MockChooserController::GetOption(size_t index) const { 33 base::string16 MockChooserController::GetOption(size_t index) const {
30 return option_names_[index]; 34 return option_names_[index];
31 } 35 }
32 36
33 void MockChooserController::RefreshOptions() {} 37 base::string16 MockChooserController::GetStatus() const {
38 return status_text_;
39 }
34 40
35 base::string16 MockChooserController::GetStatus() const { 41 void MockChooserController::OnAdapterPresenceChanged(
36 return base::string16(); 42 content::BluetoothChooser::AdapterPresence presence) {
43 ClearAllOptions();
44 switch (presence) {
45 case content::BluetoothChooser::AdapterPresence::ABSENT:
46 NOTREACHED();
47 break;
48 case content::BluetoothChooser::AdapterPresence::POWERED_OFF:
49 no_options_text_ =
50 l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_ADAPTER_OFF);
51 status_text_ = base::string16();
52 if (view())
53 view()->OnAdapterEnabledChanged(false /* Adapter is turned off */);
54 break;
55 case content::BluetoothChooser::AdapterPresence::POWERED_ON:
56 no_options_text_ =
57 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT);
58 status_text_ =
59 l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN);
60 if (view())
61 view()->OnAdapterEnabledChanged(true /* Adapter is turned on */);
62 break;
63 }
64 }
65
66 void MockChooserController::OnDiscoveryStateChanged(
67 content::BluetoothChooser::DiscoveryState state) {
68 switch (state) {
69 case content::BluetoothChooser::DiscoveryState::DISCOVERING:
70 ClearAllOptions();
71 status_text_ =
72 l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING);
73 if (view()) {
74 view()->OnRefreshStateChanged(
75 true /* Refreshing options is in progress */);
76 }
77 break;
78 case content::BluetoothChooser::DiscoveryState::IDLE:
79 case content::BluetoothChooser::DiscoveryState::FAILED_TO_START:
80 status_text_ =
81 l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN);
82 if (view()) {
83 view()->OnRefreshStateChanged(
84 false /* Refreshing options is complete */);
85 }
86 break;
87 }
37 } 88 }
38 89
39 void MockChooserController::OptionAdded(const base::string16 option_name) { 90 void MockChooserController::OptionAdded(const base::string16 option_name) {
40 option_names_.push_back(option_name); 91 option_names_.push_back(option_name);
41 if (view()) 92 if (view())
42 view()->OnOptionAdded(option_names_.size() - 1); 93 view()->OnOptionAdded(option_names_.size() - 1);
43 } 94 }
44 95
45 void MockChooserController::OptionRemoved(const base::string16 option_name) { 96 void MockChooserController::OptionRemoved(const base::string16 option_name) {
46 for (auto it = option_names_.begin(); it != option_names_.end(); ++it) { 97 for (auto it = option_names_.begin(); it != option_names_.end(); ++it) {
47 if (*it == option_name) { 98 if (*it == option_name) {
48 size_t index = it - option_names_.begin(); 99 size_t index = it - option_names_.begin();
49 option_names_.erase(it); 100 option_names_.erase(it);
50 if (view()) 101 if (view())
51 view()->OnOptionRemoved(index); 102 view()->OnOptionRemoved(index);
52 return; 103 return;
53 } 104 }
54 } 105 }
55 } 106 }
107
108 void MockChooserController::ClearAllOptions() {
109 option_names_.clear();
110 }
OLDNEW
« no previous file with comments | « chrome/browser/chooser_controller/mock_chooser_controller.h ('k') | chrome/browser/ui/views/chooser_content_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698