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

Side by Side Diff: chrome/browser/extensions/api/bluetooth/bluetooth_apitest_chromeos.cc

Issue 10837294: Add bluetooth.getName API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review comments Created 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <string.h> 5 #include <string.h>
6 6
7 #include "chrome/browser/chromeos/bluetooth/bluetooth_adapter.h" 7 #include "chrome/browser/chromeos/bluetooth/bluetooth_adapter.h"
8 #include "chrome/browser/chromeos/bluetooth/test/mock_bluetooth_adapter.h" 8 #include "chrome/browser/chromeos/bluetooth/test/mock_bluetooth_adapter.h"
9 #include "chrome/browser/chromeos/bluetooth/test/mock_bluetooth_device.h" 9 #include "chrome/browser/chromeos/bluetooth/test/mock_bluetooth_device.h"
10 #include "chrome/browser/chromeos/extensions/bluetooth_event_router.h" 10 #include "chrome/browser/chromeos/extensions/bluetooth_event_router.h"
11 #include "chrome/browser/extensions/api/bluetooth/bluetooth_api.h" 11 #include "chrome/browser/extensions/api/bluetooth/bluetooth_api.h"
12 #include "chrome/browser/extensions/extension_apitest.h" 12 #include "chrome/browser/extensions/extension_apitest.h"
13 #include "chrome/browser/extensions/extension_function_test_utils.h" 13 #include "chrome/browser/extensions/extension_function_test_utils.h"
14 #include "chrome/browser/extensions/extension_service.h" 14 #include "chrome/browser/extensions/extension_service.h"
15 #include "chrome/browser/extensions/extension_test_message_listener.h" 15 #include "chrome/browser/extensions/extension_test_message_listener.h"
16 #include "chrome/browser/ui/browser.h" 16 #include "chrome/browser/ui/browser.h"
17 #include "chromeos/dbus/bluetooth_out_of_band_client.h" 17 #include "chromeos/dbus/bluetooth_out_of_band_client.h"
18 #include "chrome/test/base/ui_test_utils.h" 18 #include "chrome/test/base/ui_test_utils.h"
19 #include "testing/gmock/include/gmock/gmock.h" 19 #include "testing/gmock/include/gmock/gmock.h"
20 20
21 using extensions::Extension; 21 using extensions::Extension;
22 22
23 namespace utils = extension_function_test_utils; 23 namespace utils = extension_function_test_utils;
24 namespace api = extensions::api; 24 namespace api = extensions::api;
25 25
26 namespace { 26 namespace {
27 27
28 static const char* kAdapterAddress = "A1:A2:A3:A4:A5:A6";
29 static const char* kName = "whatsinaname";
30
28 class BluetoothApiTest : public PlatformAppApiTest { 31 class BluetoothApiTest : public PlatformAppApiTest {
29 public: 32 public:
30 BluetoothApiTest() : empty_extension_(utils::CreateEmptyExtension()) {} 33 BluetoothApiTest() : empty_extension_(utils::CreateEmptyExtension()) {}
31 34
32 virtual void SetUpOnMainThread() OVERRIDE { 35 virtual void SetUpOnMainThread() OVERRIDE {
33 // The browser will clean this up when it is torn down 36 // The browser will clean this up when it is torn down
34 mock_adapter_ = new testing::StrictMock<chromeos::MockBluetoothAdapter>; 37 mock_adapter_ = new testing::StrictMock<chromeos::MockBluetoothAdapter>(
38 kAdapterAddress, kName);
35 event_router()->SetAdapterForTest(mock_adapter_); 39 event_router()->SetAdapterForTest(mock_adapter_);
36 40
37 device1_.reset(new testing::NiceMock<chromeos::MockBluetoothDevice>( 41 device1_.reset(new testing::NiceMock<chromeos::MockBluetoothDevice>(
38 mock_adapter_, "d1", "11:12:13:14:15:16", 42 mock_adapter_, "d1", "11:12:13:14:15:16",
39 true /* paired */, false /* bonded */, true /* connected */)); 43 true /* paired */, false /* bonded */, true /* connected */));
40 device2_.reset(new testing::NiceMock<chromeos::MockBluetoothDevice>( 44 device2_.reset(new testing::NiceMock<chromeos::MockBluetoothDevice>(
41 mock_adapter_, "d2", "21:22:23:24:25:26", 45 mock_adapter_, "d2", "21:22:23:24:25:26",
42 false /* paired */, true /* bonded */, false /* connected */)); 46 false /* paired */, true /* bonded */, false /* connected */));
43 } 47 }
44 48
45 void expectBooleanResult(bool expected, 49 void expectBooleanResult(bool expected,
46 UIThreadExtensionFunction* function, 50 UIThreadExtensionFunction* function) {
47 const std::string& args) {
48 scoped_ptr<base::Value> result( 51 scoped_ptr<base::Value> result(
49 utils::RunFunctionAndReturnSingleResult(function, args, browser())); 52 utils::RunFunctionAndReturnSingleResult(function, "[]", browser()));
50 ASSERT_TRUE(result.get() != NULL); 53 ASSERT_TRUE(result.get() != NULL);
51 ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType()); 54 ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType());
52 bool boolean_value; 55 bool boolean_value;
53 result->GetAsBoolean(&boolean_value); 56 result->GetAsBoolean(&boolean_value);
54 EXPECT_EQ(expected, boolean_value); 57 EXPECT_EQ(expected, boolean_value);
55 } 58 }
56 59
60 void expectStringResult(const std::string& expected,
61 UIThreadExtensionFunction* function) {
62 scoped_ptr<base::Value> result(
63 utils::RunFunctionAndReturnSingleResult(function, "[]", browser()));
64 ASSERT_TRUE(result.get() != NULL);
65 ASSERT_EQ(base::Value::TYPE_STRING, result->GetType());
66 std::string string_value;
67 result->GetAsString(&string_value);
68 EXPECT_EQ(expected, string_value);
69 }
70
57 template <class T> 71 template <class T>
58 T* setupFunction(T* function) { 72 T* setupFunction(T* function) {
59 function->set_extension(empty_extension_.get()); 73 function->set_extension(empty_extension_.get());
60 function->set_has_callback(true); 74 function->set_has_callback(true);
61 return function; 75 return function;
62 } 76 }
63 77
64 protected: 78 protected:
65 testing::StrictMock<chromeos::MockBluetoothAdapter>* mock_adapter_; 79 testing::StrictMock<chromeos::MockBluetoothAdapter>* mock_adapter_;
66 scoped_ptr<testing::NiceMock<chromeos::MockBluetoothDevice> > device1_; 80 scoped_ptr<testing::NiceMock<chromeos::MockBluetoothDevice> > device1_;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 117
104 } // namespace 118 } // namespace
105 119
106 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, IsAvailable) { 120 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, IsAvailable) {
107 EXPECT_CALL(*mock_adapter_, IsPresent()) 121 EXPECT_CALL(*mock_adapter_, IsPresent())
108 .WillOnce(testing::Return(false)); 122 .WillOnce(testing::Return(false));
109 123
110 scoped_refptr<api::BluetoothIsAvailableFunction> is_available; 124 scoped_refptr<api::BluetoothIsAvailableFunction> is_available;
111 125
112 is_available = setupFunction(new api::BluetoothIsAvailableFunction); 126 is_available = setupFunction(new api::BluetoothIsAvailableFunction);
113 expectBooleanResult(false, is_available, "[]"); 127 expectBooleanResult(false, is_available);
114 128
115 testing::Mock::VerifyAndClearExpectations(mock_adapter_); 129 testing::Mock::VerifyAndClearExpectations(mock_adapter_);
116 EXPECT_CALL(*mock_adapter_, IsPresent()) 130 EXPECT_CALL(*mock_adapter_, IsPresent())
117 .WillOnce(testing::Return(true)); 131 .WillOnce(testing::Return(true));
118 132
119 is_available = setupFunction(new api::BluetoothIsAvailableFunction); 133 is_available = setupFunction(new api::BluetoothIsAvailableFunction);
120 expectBooleanResult(true, is_available, "[]"); 134 expectBooleanResult(true, is_available);
121 } 135 }
122 136
123 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, IsPowered) { 137 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, IsPowered) {
124 EXPECT_CALL(*mock_adapter_, IsPowered()) 138 EXPECT_CALL(*mock_adapter_, IsPowered())
125 .WillOnce(testing::Return(false)); 139 .WillOnce(testing::Return(false));
126 140
127 scoped_refptr<api::BluetoothIsPoweredFunction> is_powered; 141 scoped_refptr<api::BluetoothIsPoweredFunction> is_powered;
128 142
129 is_powered = setupFunction(new api::BluetoothIsPoweredFunction); 143 is_powered = setupFunction(new api::BluetoothIsPoweredFunction);
130 expectBooleanResult(false, is_powered, "[]"); 144 expectBooleanResult(false, is_powered);
131 145
132 testing::Mock::VerifyAndClearExpectations(mock_adapter_); 146 testing::Mock::VerifyAndClearExpectations(mock_adapter_);
133 EXPECT_CALL(*mock_adapter_, IsPowered()) 147 EXPECT_CALL(*mock_adapter_, IsPowered())
134 .WillOnce(testing::Return(true)); 148 .WillOnce(testing::Return(true));
135 149
136 is_powered = setupFunction(new api::BluetoothIsPoweredFunction); 150 is_powered = setupFunction(new api::BluetoothIsPoweredFunction);
137 expectBooleanResult(true, is_powered, "[]"); 151 expectBooleanResult(true, is_powered);
152 }
153
154 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetAddress) {
155 scoped_refptr<api::BluetoothGetAddressFunction> get_address;
156 get_address = setupFunction(new api::BluetoothGetAddressFunction);
157 expectStringResult(kAdapterAddress, get_address);
158 }
159
160 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetName) {
161 scoped_refptr<api::BluetoothGetNameFunction> get_name;
162 get_name = setupFunction(new api::BluetoothGetNameFunction);
163 expectStringResult(kName, get_name);
138 } 164 }
139 165
140 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetDevices) { 166 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetDevices) {
141 chromeos::BluetoothAdapter::ConstDeviceList devices; 167 chromeos::BluetoothAdapter::ConstDeviceList devices;
142 devices.push_back(device1_.get()); 168 devices.push_back(device1_.get());
143 devices.push_back(device2_.get()); 169 devices.push_back(device2_.get());
144 170
145 EXPECT_CALL(*device1_, ProvidesServiceWithUUID(kCanonicalUuid)) 171 EXPECT_CALL(*device1_, ProvidesServiceWithUUID(kCanonicalUuid))
146 .WillOnce(testing::Return(false)); 172 .WillOnce(testing::Return(false));
147 EXPECT_CALL(*device2_, ProvidesServiceWithUUID(kCanonicalUuid)) 173 EXPECT_CALL(*device2_, ProvidesServiceWithUUID(kCanonicalUuid))
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 event_router()->AdapterPoweredChanged(mock_adapter_, false); 436 event_router()->AdapterPoweredChanged(mock_adapter_, false);
411 event_router()->AdapterPresentChanged(mock_adapter_, true); 437 event_router()->AdapterPresentChanged(mock_adapter_, true);
412 event_router()->AdapterPresentChanged(mock_adapter_, false); 438 event_router()->AdapterPresentChanged(mock_adapter_, false);
413 event_router()->AdapterDiscoveringChanged(mock_adapter_, true); 439 event_router()->AdapterDiscoveringChanged(mock_adapter_, true);
414 event_router()->AdapterDiscoveringChanged(mock_adapter_, false); 440 event_router()->AdapterDiscoveringChanged(mock_adapter_, false);
415 441
416 listener.Reply("go"); 442 listener.Reply("go");
417 443
418 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); 444 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
419 } 445 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/bluetooth/bluetooth_api.cc ('k') | chrome/common/extensions/api/experimental_bluetooth.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698