Index: chrome/test/data/extensions/api_test/socket/api/background.js |
diff --git a/chrome/test/data/extensions/api_test/socket/api/background.js b/chrome/test/data/extensions/api_test/socket/api/background.js |
index 4518b77315f8b74f527e789bb407ee8bd6e41523..bc1b8d1794aba8a2f856528cbcababe3081168b5 100644 |
--- a/chrome/test/data/extensions/api_test/socket/api/background.js |
+++ b/chrome/test/data/extensions/api_test/socket/api/background.js |
@@ -185,6 +185,50 @@ var testSending = function() { |
socket.create(protocol, {}, onCreate); |
}; |
+// Tests listening on a socket and sending/receiving from accepted sockets. |
+var testSocketListening = function() { |
+ var tmpSocketId = 0; |
+ |
+ function onServerSocketAccept(acceptInfo) { |
+ chrome.test.assertEq(0, acceptInfo.resultCode); |
+ var acceptedSocketId = acceptInfo.socketId; |
+ socket.read(acceptedSocketId, function(readInfo) { |
+ arrayBuffer2String(readInfo.data, function(s) { |
+ var match = !!s.match(request); |
+ chrome.test.assertTrue(match, "Received data does not match."); |
+ succeeded = true; |
+ chrome.test.succeed(); |
+ }); |
+ }); |
+ } |
+ |
+ function onListen(result) { |
+ chrome.test.assertEq(0, result, "Listen failed."); |
+ chrome.experimental.socket.accept(socketId, onServerSocketAccept); |
+ |
+ // Create a new socket to connect to the TCP server. |
+ socket.create('tcp', {}, function(socketInfo) { |
+ tmpSocketId = socketInfo.socketId; |
+ socket.connect(tmpSocketId, address, port, |
+ function(result) { |
+ chrome.test.assertEq(0, result, "Connect failed"); |
+ |
+ // Write. |
+ string2ArrayBuffer(request, function(buf) { |
+ socket.write(tmpSocketId, buf, function() {}); |
+ }); |
+ }); |
+ }); |
+ } |
+ |
+ function onServerSocketCreate(socketInfo) { |
+ socketId = socketInfo.socketId; |
+ chrome.experimental.socket.listen(socketId, address, port, 5, onListen); |
+ } |
+ |
+ socket.create('tcp', {}, onServerSocketCreate); |
+}; |
+ |
var onMessageReply = function(message) { |
var parts = message.split(":"); |
protocol = parts[0]; |
@@ -192,7 +236,10 @@ var onMessageReply = function(message) { |
port = parseInt(parts[2]); |
console.log("Running tests, protocol " + protocol + ", echo server " + |
address + ":" + port); |
- chrome.test.runTests([ testSocketCreation, testSending ]); |
+ if (protocol == 'tcp_server') |
miket_OOO
2012/09/24 18:14:21
It'd make more sense to change "protocol" to somet
justinlin
2012/09/26 08:59:59
Done.
|
+ chrome.test.runTests([ testSocketListening]); |
+ else |
+ chrome.test.runTests([ testSocketCreation, testSending ]); |
}; |
// Find out which protocol we're supposed to test, and which echo server we |