Bug 1317946: mochitest for zero size messages draft
authorNils Ohlmeier [:drno] <drno@ohlmeier.org>
Fri, 06 Jan 2017 16:24:22 -0800
changeset 457213 d1774f2c9ca7e3d5ecd7d6fbd78850c5181d01f2
parent 457212 fb944c568266a04af2b9bf3f48efb712edafeb05
child 541421 4bb616b572a0ab25d798800412a806c4fb6a8e3c
push id40709
push userdrno@ohlmeier.org
push dateSat, 07 Jan 2017 01:21:11 +0000
bugs1317946
milestone53.0a1
Bug 1317946: mochitest for zero size messages MozReview-Commit-ID: Jc565KHtbbK
dom/network/tests/test_udpsocket.html
--- 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)