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

Unified Diff: chrome/test/data/extensions/api_test/bluetooth_low_energy/gatt_connection/runtest.js

Issue 349433002: chrome.bluetoothLowEnergy: Introduce connect and disconnect methods. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/extensions/api_test/bluetooth_low_energy/gatt_connection/runtest.js
diff --git a/chrome/test/data/extensions/api_test/bluetooth_low_energy/gatt_connection/runtest.js b/chrome/test/data/extensions/api_test/bluetooth_low_energy/gatt_connection/runtest.js
new file mode 100644
index 0000000000000000000000000000000000000000..0c8122e4699af4c219e5bee33240dc99d563837b
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/bluetooth_low_energy/gatt_connection/runtest.js
@@ -0,0 +1,101 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+var deviceAddress0 = '11:22:33:44:55:66';
+var deviceAddress1 = '77:88:99:AA:BB:CC';
+var badDeviceAddress = 'bad-address';
+var ble = chrome.bluetoothLowEnergy;
+
+var errorAlreadyConnected = 'Already connected';
+var errorNotConnected = 'Not connected';
+var errorNotFound = 'Instance not found';
+var errorOperationFailed = 'Operation failed';
+
+function expectError(message) {
+ if (!chrome.runtime.lastError ||
+ chrome.runtime.lastError.message != message)
+ chrome.test.fail('Expected error: ' + message);
+}
+
+function expectSuccess() {
+ if (chrome.runtime.lastError)
+ chrome.test.fail('Unexpected error: ' + chrome.runtime.lastError.message);
+}
+
+// Disconnecting from unconnected devices should fail.
+ble.disconnect(deviceAddress0, function () {
+ expectError(errorNotConnected);
+ ble.disconnect(deviceAddress1, function () {
+ expectError(errorNotConnected);
+ ble.disconnect(badDeviceAddress, function () {
+ expectError(errorNotConnected);
+
+ // Connect to device that doesn't exist.
+ ble.connect(badDeviceAddress, function () {
+ expectError(errorNotFound);
+
+ // Failed connect to device 1.
+ ble.connect(deviceAddress0, function () {
+ expectError(errorOperationFailed);
+
+ // Successful connect to device 0.
+ ble.connect(deviceAddress0, function () {
+ expectSuccess();
+
+ // Device 0 already connected.
+ ble.connect(deviceAddress0, function() {
+ expectError(errorAlreadyConnected);
+
+ // Device 1 still disconnected.
+ ble.disconnect(deviceAddress1, function () {
+ expectError(errorNotConnected);
+
+ // Successful connect to device 1.
+ ble.connect(deviceAddress1, function () {
+ expectSuccess();
+
+ // Device 1 already connected.
+ ble.connect(deviceAddress1, function () {
+ expectError(errorAlreadyConnected);
+
+ // Successfully disconnect device 0.
+ ble.disconnect(deviceAddress0, function () {
+ expectSuccess();
+
+ // Cannot disconnect device 0.
+ ble.disconnect(deviceAddress0, function () {
+ expectError(errorNotConnected);
+
+ // Device 1 still connected.
+ ble.connect(deviceAddress1, function () {
+ expectError(errorAlreadyConnected);
+
+ // Successfully disconnect device 1.
+ ble.disconnect(deviceAddress1, function () {
+ expectSuccess();
+
+ // Cannot disconnect device 1.
+ ble.disconnect(deviceAddress1, function () {
+ expectError(errorNotConnected);
+
+ // Re-connect device 0.
+ ble.connect(deviceAddress0, function () {
+ expectSuccess();
+ chrome.test.succeed();
+ });
+ });
+ });
+ });
+ });
+ });
+ });
+ });
+ });
+ });
+ });
+ })
+ });
+ });
+ });
+});

Powered by Google App Engine
This is Rietveld 408576698