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

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

Issue 10815072: Bluetooth API: improve discovery (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix licenses 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"
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 utils::RunFunctionAndReturnError(set_oob_function, params, browser())); 284 utils::RunFunctionAndReturnError(set_oob_function, params, browser()));
285 EXPECT_FALSE(error.empty()); 285 EXPECT_FALSE(error.empty());
286 286
287 // TODO(bryeung): Also test setting the data when there is support for 287 // TODO(bryeung): Also test setting the data when there is support for
288 // ArrayBuffers in the arguments to the RunFunctionAnd* methods. 288 // ArrayBuffers in the arguments to the RunFunctionAnd* methods.
289 // crbug.com/132796 289 // crbug.com/132796
290 } 290 }
291 291
292 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, Discovery) { 292 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, Discovery) {
293 // Try with a failure to start 293 // Try with a failure to start
294 EXPECT_CALL(*mock_adapter_, IsDiscovering()).WillOnce(testing::Return(false));
294 EXPECT_CALL(*mock_adapter_, 295 EXPECT_CALL(*mock_adapter_,
295 SetDiscovering(true, 296 SetDiscovering(true,
296 testing::_, 297 testing::_,
297 testing::Truly(CallClosure))); 298 testing::Truly(CallClosure)));
298 scoped_refptr<api::BluetoothStartDiscoveryFunction> start_function; 299 scoped_refptr<api::BluetoothStartDiscoveryFunction> start_function;
299 start_function = setupFunction(new api::BluetoothStartDiscoveryFunction); 300 start_function = setupFunction(new api::BluetoothStartDiscoveryFunction);
300 std::string error( 301 std::string error(
301 utils::RunFunctionAndReturnError(start_function, "[]", browser())); 302 utils::RunFunctionAndReturnError(start_function, "[]", browser()));
302 ASSERT_TRUE(!error.empty()); 303 ASSERT_TRUE(!error.empty());
303 304
304 // Reset for a successful start 305 // Reset for a successful start
305 testing::Mock::VerifyAndClearExpectations(mock_adapter_); 306 testing::Mock::VerifyAndClearExpectations(mock_adapter_);
307 EXPECT_CALL(*mock_adapter_, IsDiscovering()).WillOnce(testing::Return(false));
306 EXPECT_CALL(*mock_adapter_, 308 EXPECT_CALL(*mock_adapter_,
307 SetDiscovering(true, 309 SetDiscovering(true,
308 testing::Truly(CallClosure), 310 testing::Truly(CallClosure),
309 testing::_)); 311 testing::_));
310 312
311 start_function = setupFunction(new api::BluetoothStartDiscoveryFunction); 313 start_function = setupFunction(new api::BluetoothStartDiscoveryFunction);
312 (void)utils::RunFunctionAndReturnError(start_function, "[]", browser()); 314 (void)utils::RunFunctionAndReturnError(start_function, "[]", browser());
313 315
314 // Reset to try stopping 316 // Reset to try stopping
315 testing::Mock::VerifyAndClearExpectations(mock_adapter_); 317 testing::Mock::VerifyAndClearExpectations(mock_adapter_);
(...skipping 10 matching lines...) Expand all
326 EXPECT_CALL(*mock_adapter_, 328 EXPECT_CALL(*mock_adapter_,
327 SetDiscovering(false, 329 SetDiscovering(false,
328 testing::_, 330 testing::_,
329 testing::Truly(CallClosure))); 331 testing::Truly(CallClosure)));
330 stop_function = setupFunction(new api::BluetoothStopDiscoveryFunction); 332 stop_function = setupFunction(new api::BluetoothStopDiscoveryFunction);
331 error = utils::RunFunctionAndReturnError(stop_function, "[]", browser()); 333 error = utils::RunFunctionAndReturnError(stop_function, "[]", browser());
332 ASSERT_TRUE(!error.empty()); 334 ASSERT_TRUE(!error.empty());
333 } 335 }
334 336
335 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, DiscoveryCallback) { 337 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, DiscoveryCallback) {
338 EXPECT_CALL(*mock_adapter_, IsDiscovering()).WillOnce(testing::Return(false));
336 EXPECT_CALL(*mock_adapter_, 339 EXPECT_CALL(*mock_adapter_,
337 SetDiscovering(true, testing::Truly(CallClosure), testing::_)); 340 SetDiscovering(true, testing::Truly(CallClosure), testing::_));
338 EXPECT_CALL(*mock_adapter_, 341 EXPECT_CALL(*mock_adapter_,
339 SetDiscovering(false, testing::Truly(CallClosure), testing::_)); 342 SetDiscovering(false, testing::Truly(CallClosure), testing::_));
340 343
341 ResultCatcher catcher; 344 ResultCatcher catcher;
342 catcher.RestrictToProfile(browser()->profile()); 345 catcher.RestrictToProfile(browser()->profile());
343 346
344 ExtensionTestMessageListener discovery_started("ready", true); 347 ExtensionTestMessageListener discovery_started("ready", true);
345 const extensions::Extension* extension = 348 const extensions::Extension* extension =
346 LoadExtension(test_data_dir_.AppendASCII("bluetooth")); 349 LoadExtension(test_data_dir_.AppendASCII("bluetooth"));
347 GURL page_url = extension->GetResourceURL("test_discovery.html"); 350 GURL page_url = extension->GetResourceURL("test_discovery.html");
348 ui_test_utils::NavigateToURL(browser(), page_url); 351 ui_test_utils::NavigateToURL(browser(), page_url);
349 EXPECT_TRUE(discovery_started.WaitUntilSatisfied()); 352 EXPECT_TRUE(discovery_started.WaitUntilSatisfied());
350 353
351 event_router()->DeviceAdded(mock_adapter_, device1_.get()); 354 event_router()->DeviceAdded(mock_adapter_, device1_.get());
352 355
353 discovery_started.Reply("go"); 356 discovery_started.Reply("go");
354 ExtensionTestMessageListener discovery_stopped("ready", true); 357 ExtensionTestMessageListener discovery_stopped("ready", true);
355 EXPECT_TRUE(discovery_stopped.WaitUntilSatisfied()); 358 EXPECT_TRUE(discovery_stopped.WaitUntilSatisfied());
356 359
357 event_router()->DeviceAdded(mock_adapter_, device2_.get()); 360 event_router()->DeviceAdded(mock_adapter_, device2_.get());
358 discovery_stopped.Reply("go"); 361 discovery_stopped.Reply("go");
359 362
360 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); 363 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
361 } 364 }
362 365
366 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, DiscoveryInProgress) {
367 // Fake that the adapter is discovering
368 EXPECT_CALL(*mock_adapter_, IsDiscovering()).WillOnce(testing::Return(true));
369 event_router()->AdapterDiscoveringChanged(mock_adapter_, true);
370
371 // Cache a device before the extension starts discovering
372 event_router()->DeviceAdded(mock_adapter_, device1_.get());
373
374 ResultCatcher catcher;
375 catcher.RestrictToProfile(browser()->profile());
376
377 ExtensionTestMessageListener discovery_started("ready", true);
378 const extensions::Extension* extension =
379 LoadExtension(test_data_dir_.AppendASCII("bluetooth"));
380 GURL page_url = extension->GetResourceURL("test_discovery_in_progress.html");
381 ui_test_utils::NavigateToURL(browser(), page_url);
382 EXPECT_TRUE(discovery_started.WaitUntilSatisfied());
383
384 // This should be received in addition to the cached device above.
385 event_router()->DeviceAdded(mock_adapter_, device2_.get());
386
387 discovery_started.Reply("go");
388 ExtensionTestMessageListener discovery_stopped("ready", true);
389 EXPECT_TRUE(discovery_stopped.WaitUntilSatisfied());
390
391 event_router()->DeviceAdded(mock_adapter_, device2_.get());
392 discovery_stopped.Reply("go");
393
394 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
395 }
396
363 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, Events) { 397 IN_PROC_BROWSER_TEST_F(BluetoothApiTest, Events) {
364 ResultCatcher catcher; 398 ResultCatcher catcher;
365 catcher.RestrictToProfile(browser()->profile()); 399 catcher.RestrictToProfile(browser()->profile());
366 400
367 // Load and wait for setup 401 // Load and wait for setup
368 ExtensionTestMessageListener listener("ready", true); 402 ExtensionTestMessageListener listener("ready", true);
369 const extensions::Extension* extension = 403 const extensions::Extension* extension =
370 LoadExtension(test_data_dir_.AppendASCII("bluetooth")); 404 LoadExtension(test_data_dir_.AppendASCII("bluetooth"));
371 GURL page_url = extension->GetResourceURL("test_events.html"); 405 GURL page_url = extension->GetResourceURL("test_events.html");
372 ui_test_utils::NavigateToURL(browser(), page_url); 406 ui_test_utils::NavigateToURL(browser(), page_url);
373 EXPECT_TRUE(listener.WaitUntilSatisfied()); 407 EXPECT_TRUE(listener.WaitUntilSatisfied());
374 408
375 event_router()->AdapterPoweredChanged(mock_adapter_, true); 409 event_router()->AdapterPoweredChanged(mock_adapter_, true);
376 event_router()->AdapterPoweredChanged(mock_adapter_, false); 410 event_router()->AdapterPoweredChanged(mock_adapter_, false);
377 event_router()->AdapterPresentChanged(mock_adapter_, true); 411 event_router()->AdapterPresentChanged(mock_adapter_, true);
378 event_router()->AdapterPresentChanged(mock_adapter_, false); 412 event_router()->AdapterPresentChanged(mock_adapter_, false);
379 event_router()->AdapterDiscoveringChanged(mock_adapter_, true); 413 event_router()->AdapterDiscoveringChanged(mock_adapter_, true);
380 event_router()->AdapterDiscoveringChanged(mock_adapter_, false); 414 event_router()->AdapterDiscoveringChanged(mock_adapter_, false);
381 415
382 listener.Reply("go"); 416 listener.Reply("go");
383 417
384 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); 418 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
385 } 419 }
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