Index: chrome/test/data/extensions/api_test/bluetooth_socket/listen/runtest.js |
diff --git a/chrome/test/data/extensions/api_test/bluetooth_socket/listen/runtest.js b/chrome/test/data/extensions/api_test/bluetooth_socket/listen/runtest.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1de1e414dd8ff03ece15d608a2f9ee276b963db7 |
--- /dev/null |
+++ b/chrome/test/data/extensions/api_test/bluetooth_socket/listen/runtest.js |
@@ -0,0 +1,111 @@ |
+// 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 uuid = '2de497f9-ab28-49db-b6d2-066ea69f1737'; |
+var clientAddress = '11:12:13:14:15:16'; |
+ |
+function testListen() { |
+ chrome.test.assertEq(2, sockets.length); |
+ |
+ // First socket should be the listening one. |
+ chrome.test.assertEq(serverSocketId, sockets[0].socketId); |
+ chrome.test.assertEq(false, sockets[0].persistent); |
+ chrome.test.assertEq(undefined, sockets[0].name); |
+ chrome.test.assertEq(false, sockets[0].paused); |
+ chrome.test.assertEq(false, sockets[0].connected); |
+ chrome.test.assertEq(undefined, sockets[0].address); |
+ chrome.test.assertEq(uuid, sockets[0].uuid); |
+ |
+ // Second socket should be the client one, which unlike the server should |
+ // be created paused. |
+ chrome.test.assertEq(clientSocketId, sockets[1].socketId); |
+ chrome.test.assertEq(false, sockets[1].persistent); |
+ chrome.test.assertEq(undefined, sockets[1].name); |
+ chrome.test.assertEq(true, sockets[1].paused); |
+ chrome.test.assertEq(true, sockets[1].connected); |
+ chrome.test.assertEq(clientAddress, sockets[1].address); |
+ chrome.test.assertEq(uuid, sockets[1].uuid); |
+ |
+ chrome.test.succeed(); |
+} |
+ |
+function startTests() { |
+ chrome.test.runTests([testListen]); |
+} |
+ |
+function expectError(message) { |
+ if (!chrome.runtime.lastError) { |
+ chrome.test.fail("Expected an error"); |
+ } |
+ chrome.test.assertEq(message, chrome.runtime.lastError.message); |
+} |
+ |
+function failOnError() { |
+ if (chrome.runtime.lastError) { |
+ chrome.test.fail(chrome.runtime.lastError.message); |
+ } |
+} |
+ |
+function secondStage() { |
+ chrome.bluetoothSocket.getSockets( |
+ function(result) { |
+ failOnError(); |
+ sockets = result; |
+ |
+ chrome.bluetoothSocket.disconnect(serverSocketId); |
+ chrome.bluetoothSocket.disconnect(clientSocketId); |
+ |
+ // Check for error conditions. |
+ chrome.bluetoothSocket.listenUsingRfcomm( |
+ 1234, uuid, 0, |
+ function() { |
+ expectError("Socket not found"); |
+ |
+ chrome.bluetoothSocket.create( |
+ function(socket) { |
+ failOnError(); |
+ chrome.bluetoothSocket.listenUsingRfcomm( |
+ socket.socketId, 'not a valid uuid', 0, |
+ function() { |
+ expectError("Invalid UUID"); |
+ |
+ chrome.bluetoothSocket.listenUsingRfcomm( |
+ socket.socketId, '1234', 0, |
+ function() { |
+ expectError("Permission denied"); |
+ |
+ chrome.test.sendMessage('ready', startTests); |
+ }); |
+ }); |
+ }); |
+ }); |
+ }); |
+} |
+ |
+chrome.bluetoothSocket.create( |
+ function(socket) { |
+ failOnError(); |
+ |
+ serverSocketId = socket.socketId; |
+ |
+ chrome.bluetoothSocket.onAccept.addListener( |
+ function(info) { |
+ if (info.socketId != socket.socketId) |
+ return; |
+ |
+ clientSocketId = info.clientSocketId; |
+ }); |
+ chrome.bluetoothSocket.onAcceptError.addListener( |
+ function(error_info) { |
+ chrome.test.fail(error_info.errorMessage); |
+ }); |
+ |
+ chrome.bluetoothSocket.listenUsingRfcomm( |
+ socket.socketId, uuid, 0, |
+ function() { |
+ failOnError(); |
+ |
+ chrome.test.sendMessage('ready', secondStage); |
+ }); |
+ }); |