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

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: 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* kAddress = "01:02:03:04:05:06";
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>;
35 event_router()->SetAdapterForTest(mock_adapter_); 38 event_router()->SetAdapterForTest(mock_adapter_);
36 39
37 device1_.reset(new testing::NiceMock<chromeos::MockBluetoothDevice>( 40 device1_.reset(new testing::NiceMock<chromeos::MockBluetoothDevice>(
38 mock_adapter_, "d1", "11:12:13:14:15:16", 41 mock_adapter_, "d1", "11:12:13:14:15:16",
39 true /* paired */, false /* bonded */, true /* connected */)); 42 true /* paired */, false /* bonded */, true /* connected */));
40 device2_.reset(new testing::NiceMock<chromeos::MockBluetoothDevice>( 43 device2_.reset(new testing::NiceMock<chromeos::MockBluetoothDevice>(
41 mock_adapter_, "d2", "21:22:23:24:25:26", 44 mock_adapter_, "d2", "21:22:23:24:25:26",
42 false /* paired */, true /* bonded */, false /* connected */)); 45 false /* paired */, true /* bonded */, false /* connected */));
43 } 46 }
44 47
45 void expectBooleanResult(bool expected, 48 void expectBooleanResult(bool expected,
46 UIThreadExtensionFunction* function, 49 UIThreadExtensionFunction* function) {
47 const std::string& args) {
48 scoped_ptr<base::Value> result( 50 scoped_ptr<base::Value> result(
49 utils::RunFunctionAndReturnSingleResult(function, args, browser())); 51 utils::RunFunctionAndReturnSingleResult(function, "[]", browser()));
50 ASSERT_TRUE(result.get() != NULL); 52 ASSERT_TRUE(result.get() != NULL);
51 ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType()); 53 ASSERT_EQ(base::Value::TYPE_BOOLEAN, result->GetType());
52 bool boolean_value; 54 bool boolean_value;
53 result->GetAsBoolean(&boolean_value); 55 result->GetAsBoolean(&boolean_value);
54 EXPECT_EQ(expected, boolean_value); 56 EXPECT_EQ(expected, boolean_value);
55 } 57 }
56 58
59 void expectStringResult(const std::string& expected,
60 UIThreadExtensionFunction* function) {
61 scoped_ptr<base::Value> result(
62 utils::RunFunctionAndReturnSingleResult(function, "[]", browser()));
63 ASSERT_TRUE(result.get() != NULL);
64 ASSERT_EQ(base::Value::TYPE_STRING, result->GetType());
65 std::string string_value;
66 result->GetAsString(&string_value);
67 EXPECT_EQ(expected, string_value);
68 }
69
57 template <class T> 70 template <class T>
58 T* setupFunction(T* function) { 71 T* setupFunction(T* function) {
59 function->set_extension(empty_extension_.get()); 72 function->set_extension(empty_extension_.get());
60 function->set_has_callback(true); 73 function->set_has_callback(true);
61 return function; 74 return function;
62 } 75 }
63 76
64 protected: 77 protected:
65 testing::StrictMock<chromeos::MockBluetoothAdapter>* mock_adapter_; 78 testing::StrictMock<chromeos::MockBluetoothAdapter>* mock_adapter_;
66 scoped_ptr<testing::NiceMock<chromeos::MockBluetoothDevice> > device1_; 79 scoped_ptr<testing::NiceMock<chromeos::MockBluetoothDevice> > device1_;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 116
104 } // namespace 117 } // namespace
105 118
106 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, IsAvailable) { 119 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, IsAvailable) {
107 EXPECT_CALL(*mock_adapter_, IsPresent()) 120 EXPECT_CALL(*mock_adapter_, IsPresent())
108 .WillOnce(testing::Return(false)); 121 .WillOnce(testing::Return(false));
109 122
110 scoped_refptr<api::BluetoothIsAvailableFunction> is_available; 123 scoped_refptr<api::BluetoothIsAvailableFunction> is_available;
111 124
112 is_available = setupFunction(new api::BluetoothIsAvailableFunction); 125 is_available = setupFunction(new api::BluetoothIsAvailableFunction);
113 expectBooleanResult(false, is_available, "[]"); 126 expectBooleanResult(false, is_available);
114 127
115 testing::Mock::VerifyAndClearExpectations(mock_adapter_); 128 testing::Mock::VerifyAndClearExpectations(mock_adapter_);
116 EXPECT_CALL(*mock_adapter_, IsPresent()) 129 EXPECT_CALL(*mock_adapter_, IsPresent())
117 .WillOnce(testing::Return(true)); 130 .WillOnce(testing::Return(true));
118 131
119 is_available = setupFunction(new api::BluetoothIsAvailableFunction); 132 is_available = setupFunction(new api::BluetoothIsAvailableFunction);
120 expectBooleanResult(true, is_available, "[]"); 133 expectBooleanResult(true, is_available);
121 } 134 }
122 135
123 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, IsPowered) { 136 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, IsPowered) {
124 EXPECT_CALL(*mock_adapter_, IsPowered()) 137 EXPECT_CALL(*mock_adapter_, IsPowered())
125 .WillOnce(testing::Return(false)); 138 .WillOnce(testing::Return(false));
126 139
127 scoped_refptr<api::BluetoothIsPoweredFunction> is_powered; 140 scoped_refptr<api::BluetoothIsPoweredFunction> is_powered;
128 141
129 is_powered = setupFunction(new api::BluetoothIsPoweredFunction); 142 is_powered = setupFunction(new api::BluetoothIsPoweredFunction);
130 expectBooleanResult(false, is_powered, "[]"); 143 expectBooleanResult(false, is_powered);
131 144
132 testing::Mock::VerifyAndClearExpectations(mock_adapter_); 145 testing::Mock::VerifyAndClearExpectations(mock_adapter_);
133 EXPECT_CALL(*mock_adapter_, IsPowered()) 146 EXPECT_CALL(*mock_adapter_, IsPowered())
134 .WillOnce(testing::Return(true)); 147 .WillOnce(testing::Return(true));
135 148
136 is_powered = setupFunction(new api::BluetoothIsPoweredFunction); 149 is_powered = setupFunction(new api::BluetoothIsPoweredFunction);
137 expectBooleanResult(true, is_powered, "[]"); 150 expectBooleanResult(true, is_powered);
151 }
152
153 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetAddress) {
154 std::string address(kAddress);
155 EXPECT_CALL(*mock_adapter_, address()).WillOnce(testing::ReturnRef(address));
156
157 scoped_refptr<api::BluetoothGetAddressFunction> get_address;
158 get_address = setupFunction(new api::BluetoothGetAddressFunction);
159 expectStringResult(address, get_address);
160 }
161
162 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetName) {
163 std::string name(kName);
164 EXPECT_CALL(*mock_adapter_, name()).WillOnce(testing::ReturnRef(name));
165
166 scoped_refptr<api::BluetoothGetNameFunction> get_name;
167 get_name = setupFunction(new api::BluetoothGetNameFunction);
168 expectStringResult(name, get_name);
138 } 169 }
139 170
140 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetDevices) { 171 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, GetDevices) {
141 chromeos::BluetoothAdapter::ConstDeviceList devices; 172 chromeos::BluetoothAdapter::ConstDeviceList devices;
142 devices.push_back(device1_.get()); 173 devices.push_back(device1_.get());
143 devices.push_back(device2_.get()); 174 devices.push_back(device2_.get());
144 175
145 EXPECT_CALL(*device1_, ProvidesServiceWithUUID(kCanonicalUuid)) 176 EXPECT_CALL(*device1_, ProvidesServiceWithUUID(kCanonicalUuid))
146 .WillOnce(testing::Return(false)); 177 .WillOnce(testing::Return(false));
147 EXPECT_CALL(*device2_, ProvidesServiceWithUUID(kCanonicalUuid)) 178 EXPECT_CALL(*device2_, ProvidesServiceWithUUID(kCanonicalUuid))
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 event_router()->AdapterPoweredChanged(mock_adapter_, false); 441 event_router()->AdapterPoweredChanged(mock_adapter_, false);
411 event_router()->AdapterPresentChanged(mock_adapter_, true); 442 event_router()->AdapterPresentChanged(mock_adapter_, true);
412 event_router()->AdapterPresentChanged(mock_adapter_, false); 443 event_router()->AdapterPresentChanged(mock_adapter_, false);
413 event_router()->AdapterDiscoveringChanged(mock_adapter_, true); 444 event_router()->AdapterDiscoveringChanged(mock_adapter_, true);
414 event_router()->AdapterDiscoveringChanged(mock_adapter_, false); 445 event_router()->AdapterDiscoveringChanged(mock_adapter_, false);
415 446
416 listener.Reply("go"); 447 listener.Reply("go");
417 448
418 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); 449 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
419 } 450 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698