Bug 1317946: mochitest for zero size messages
MozReview-Commit-ID: Jc565KHtbbK
--- a/dom/network/tests/test_udpsocket.html
+++ b/dom/network/tests/test_udpsocket.html
@@ -15,16 +15,18 @@
'use strict';
SimpleTest.waitForExplicitFinish();
SimpleTest.requestFlakyTimeout("untriaged");
const HELLO_WORLD = 'hlo wrld. ';
const DATA_ARRAY = [0, 255, 254, 0, 1, 2, 3, 0, 255, 255, 254, 0];
const DATA_ARRAY_BUFFER = new ArrayBuffer(DATA_ARRAY.length);
const TYPED_DATA_ARRAY = new Uint8Array(DATA_ARRAY_BUFFER);
+const EMPTY_DATA_ARRAY = [];
+const EMPTY_DATA_ARRAY_BUFFER = new ArrayBuffer(EMPTY_DATA_ARRAY.length);
const BIG_ARRAY = new Array(4096);
const BIG_ARRAY_BUFFER = new ArrayBuffer(BIG_ARRAY.length);
const BIG_TYPED_ARRAY = new Uint8Array(BIG_ARRAY_BUFFER);
for (let i = 0; i < BIG_ARRAY.length; i++) {
BIG_ARRAY[i] = Math.floor(Math.random() * 256);
}
@@ -110,16 +112,38 @@ function testSendArrayBufferView(socket)
socket.removeEventListener('message', recv_callback);
is(msg.remotePort, socket.localPort, 'expected packet from ' + socket.localPort);
ok(is_same_buffer(msg.data, TYPED_DATA_ARRAY), 'expected same buffer data');
resolve(socket);
});
});
}
+function testSendEmptyArrayBuffer(socket) {
+ info('test for sending empty ArrayBuffer');
+
+ info('setting up promise');
+ var p = new Promise(function(resolve, reject) {
+ info('setting up listener');
+ socket.addEventListener('message', function recv_callback(msg) {
+ info('received message');
+ socket.removeEventListener('message', recv_callback);
+ is(msg.remotePort, socket.localPort, 'expected packet from ' + socket.localPort);
+ //ok(is_same_buffer(msg.data, EMPTY_DATA_ARRAY_BUFFER), 'expected same buffer data');
+ resolve(socket);
+ });
+ });
+
+ info('sending message');
+ socket.send(EMPTY_DATA_ARRAY_BUFFER, '127.0.0.1', socket.localPort);
+
+ info('returning promise');
+ return p;
+}
+
function testSendBlob(socket) {
info('test for sending Blob');
let blob = new Blob([HELLO_WORLD], {type : 'text/plain'});
socket.send(blob, '127.0.0.1', socket.localPort);
return new Promise(function(resolve, reject) {
socket.addEventListener('message', function recv_callback(msg) {
@@ -363,16 +387,17 @@ function testBFCache() {
});
}
function runTest() {
testOpen()
.then(testSendString)
.then(testSendArrayBuffer)
.then(testSendArrayBufferView)
+ .then(testSendEmptyArrayBuffer)
.then(testSendBlob)
.then(testSendBigArray)
.then(testSendBigBlob)
.then(testUDPOptions)
.then(testClose)
.then(testMulticast)
.then(testInvalidUDPOptions)
.then(testOpenFailed)