mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-28 03:17:31 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
18
dom/base/test/websocket_hybi/file_binary-frames_wsh.py
Normal file
18
dom/base/test/websocket_hybi/file_binary-frames_wsh.py
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
from mod_pywebsocket import common
|
||||
from mod_pywebsocket import stream
|
||||
|
||||
|
||||
def web_socket_do_extra_handshake(request):
|
||||
pass
|
||||
|
||||
|
||||
def web_socket_transfer_data(request):
|
||||
messages_to_send = ['Hello, world!', '', all_distinct_bytes()]
|
||||
for message in messages_to_send:
|
||||
# FIXME: Should use better API to send binary messages when pywebsocket supports it.
|
||||
header = stream.create_header(common.OPCODE_BINARY, len(message), 1, 0, 0, 0, 0)
|
||||
request.connection.write(header + message)
|
||||
|
||||
|
||||
def all_distinct_bytes():
|
||||
return ''.join([chr(i) for i in xrange(256)])
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
from mod_pywebsocket import common
|
||||
from mod_pywebsocket import msgutil
|
||||
|
||||
|
||||
def web_socket_do_extra_handshake(request):
|
||||
pass # Always accept.
|
||||
|
||||
|
||||
def web_socket_transfer_data(request):
|
||||
expected_messages = ['Hello, world!', '', all_distinct_bytes()]
|
||||
|
||||
for test_number, expected_message in enumerate(expected_messages):
|
||||
message = msgutil.receive_message(request)
|
||||
if type(message) == str and message == expected_message:
|
||||
msgutil.send_message(request, 'PASS: Message #%d.' % test_number)
|
||||
else:
|
||||
msgutil.send_message(request, 'FAIL: Message #%d: Received unexpected message: %r' % (test_number, message))
|
||||
|
||||
|
||||
def all_distinct_bytes():
|
||||
return ''.join([chr(i) for i in xrange(256)])
|
||||
13
dom/base/test/websocket_hybi/mochitest.ini
Normal file
13
dom/base/test/websocket_hybi/mochitest.ini
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
[DEFAULT]
|
||||
support-files =
|
||||
file_binary-frames_wsh.py
|
||||
file_check-binary-messages_wsh.py
|
||||
|
||||
[test_receive-arraybuffer.html]
|
||||
skip-if = toolkit == 'android'
|
||||
[test_receive-blob.html]
|
||||
skip-if = toolkit == 'android'
|
||||
[test_send-arraybuffer.html]
|
||||
skip-if = toolkit == 'android'
|
||||
[test_send-blob.html]
|
||||
skip-if = toolkit == 'android'
|
||||
97
dom/base/test/websocket_hybi/test_receive-arraybuffer.html
Normal file
97
dom/base/test/websocket_hybi/test_receive-arraybuffer.html
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
</div>
|
||||
<pre id="test">
|
||||
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
function debug(msg) {
|
||||
ok(1, msg);
|
||||
}
|
||||
|
||||
function createArrayBufferContainingHelloWorld()
|
||||
{
|
||||
var hello = "Hello, world!";
|
||||
var array = new Uint8Array(hello.length);
|
||||
for (var i = 0; i < hello.length; ++i)
|
||||
array[i] = hello.charCodeAt(i);
|
||||
return array.buffer;
|
||||
}
|
||||
|
||||
function createEmptyArrayBuffer()
|
||||
{
|
||||
return new ArrayBuffer(0);
|
||||
}
|
||||
|
||||
function createArrayBufferContainingAllDistinctBytes()
|
||||
{
|
||||
var array = new Uint8Array(256);
|
||||
for (var i = 0; i < 256; ++i)
|
||||
array[i] = i;
|
||||
return array.buffer;
|
||||
}
|
||||
|
||||
var ws = new WebSocket("ws://mochi.test:8888/tests/dom/base/test/websocket_hybi/file_binary-frames");
|
||||
ws.binaryType = "arraybuffer";
|
||||
is(ws.binaryType, "arraybuffer", "should be equal to 'arraybuffer'");
|
||||
|
||||
var closeEvent;
|
||||
var receivedMessages = [];
|
||||
var expectedValues = [createArrayBufferContainingHelloWorld(), createEmptyArrayBuffer(), createArrayBufferContainingAllDistinctBytes()];
|
||||
|
||||
ws.onmessage = function(event)
|
||||
{
|
||||
receivedMessages.push(event.data);
|
||||
};
|
||||
|
||||
ws.onclose = function(event)
|
||||
{
|
||||
closeEvent = event;
|
||||
|
||||
is(receivedMessages.length, expectedValues.length, "lengths not equal");
|
||||
for (var i = 0; i < expectedValues.length; ++i)
|
||||
check(i);
|
||||
SimpleTest.finish();
|
||||
};
|
||||
|
||||
var responseType;
|
||||
|
||||
function check(index)
|
||||
{
|
||||
debug("Checking message #" + index + ".");
|
||||
ok(receivedMessages[index] instanceof ArrayBuffer,
|
||||
"Should receive an arraybuffer!");
|
||||
checkArrayBuffer(index, receivedMessages[index], expectedValues[index]);
|
||||
}
|
||||
|
||||
var actualArray;
|
||||
var expectedArray;
|
||||
|
||||
function checkArrayBuffer(testIndex, actual, expected)
|
||||
{
|
||||
actualArray = new Uint8Array(actual);
|
||||
expectedArray = new Uint8Array(expected);
|
||||
is(actualArray.length, expectedArray.length, "lengths not equal");
|
||||
// Print only the first mismatched byte in order not to flood console.
|
||||
for (var i = 0; i < expectedArray.length; ++i) {
|
||||
if (actualArray[i] != expectedArray[i]) {
|
||||
ok(false, "Value mismatch: actualArray[" + i + "] = " + actualArray[i] + ", expectedArray[" + i + "] = " + expectedArray[i]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
ok(true, "Passed: Message #" + testIndex + ".");
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
110
dom/base/test/websocket_hybi/test_receive-blob.html
Normal file
110
dom/base/test/websocket_hybi/test_receive-blob.html
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
</div>
|
||||
<pre id="test">
|
||||
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
function debug(msg) {
|
||||
ok(true, msg);
|
||||
}
|
||||
|
||||
function createArrayBufferContainingHelloWorld()
|
||||
{
|
||||
var hello = "Hello, world!";
|
||||
var array = new Uint8Array(hello.length);
|
||||
for (var i = 0; i < hello.length; ++i)
|
||||
array[i] = hello.charCodeAt(i);
|
||||
return array.buffer;
|
||||
}
|
||||
|
||||
function createEmptyArrayBuffer()
|
||||
{
|
||||
return new ArrayBuffer(0);
|
||||
}
|
||||
|
||||
function createArrayBufferContainingAllDistinctBytes()
|
||||
{
|
||||
var array = new Uint8Array(256);
|
||||
for (var i = 0; i < 256; ++i)
|
||||
array[i] = i;
|
||||
return array.buffer;
|
||||
}
|
||||
|
||||
var ws = new WebSocket("ws://mochi.test:8888/tests/dom/base/test/websocket_hybi/file_binary-frames");
|
||||
is(ws.binaryType, "blob", "should be 'blob'");
|
||||
|
||||
var closeEvent;
|
||||
var receivedMessages = [];
|
||||
var expectedValues = [createArrayBufferContainingHelloWorld(), createEmptyArrayBuffer(), createArrayBufferContainingAllDistinctBytes()];
|
||||
|
||||
ws.onmessage = function(event)
|
||||
{
|
||||
receivedMessages.push(event.data);
|
||||
};
|
||||
|
||||
ws.onclose = function(event)
|
||||
{
|
||||
closeEvent = event;
|
||||
|
||||
is(receivedMessages.length, expectedValues.length, "lengths not same");
|
||||
check(0);
|
||||
};
|
||||
|
||||
var responseType;
|
||||
|
||||
function check(index)
|
||||
{
|
||||
if (index == expectedValues.length) {
|
||||
SimpleTest.finish();
|
||||
return;
|
||||
}
|
||||
|
||||
debug("Checking message #" + index + ".");
|
||||
ok(receivedMessages[index] instanceof Blob,
|
||||
"We should be receiving a Blob");
|
||||
var reader = new FileReader();
|
||||
reader.readAsArrayBuffer(receivedMessages[index]);
|
||||
reader.onload = function(event)
|
||||
{
|
||||
checkArrayBuffer(index, reader.result, expectedValues[index]);
|
||||
check(index + 1);
|
||||
};
|
||||
reader.onerror = function(event)
|
||||
{
|
||||
ok(false, "Failed to read blob: error code = " + reader.error.code);
|
||||
check(index + 1);
|
||||
};
|
||||
}
|
||||
|
||||
var actualArray;
|
||||
var expectedArray;
|
||||
|
||||
function checkArrayBuffer(testIndex, actual, expected)
|
||||
{
|
||||
actualArray = new Uint8Array(actual);
|
||||
expectedArray = new Uint8Array(expected);
|
||||
is(actualArray.length, expectedArray.length, "lengths not same");
|
||||
// Print only the first mismatched byte in order not to flood console.
|
||||
for (var i = 0; i < expectedArray.length; ++i) {
|
||||
if (actualArray[i] != expectedArray[i]) {
|
||||
ok(false, "Value mismatch: actualArray[" + i + "] = " + actualArray[i] + ", expectedArray[" + i + "] = " + expectedArray[i]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
ok(true, "Passed: Message #" + testIndex + ".");
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
82
dom/base/test/websocket_hybi/test_send-arraybuffer.html
Normal file
82
dom/base/test/websocket_hybi/test_send-arraybuffer.html
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
</div>
|
||||
<pre id="test">
|
||||
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
function debug(msg) {
|
||||
ok(1, msg);
|
||||
}
|
||||
|
||||
function startsWith(target, prefix)
|
||||
{
|
||||
return target.indexOf(prefix) === 0;
|
||||
}
|
||||
|
||||
function createArrayBufferContainingHelloWorld()
|
||||
{
|
||||
var hello = "Hello, world!";
|
||||
var array = new Uint8Array(hello.length);
|
||||
for (var i = 0; i < hello.length; ++i)
|
||||
array[i] = hello.charCodeAt(i);
|
||||
return array.buffer;
|
||||
}
|
||||
|
||||
function createEmptyArrayBuffer()
|
||||
{
|
||||
return new ArrayBuffer(0);
|
||||
}
|
||||
|
||||
function createArrayBufferContainingAllDistinctBytes()
|
||||
{
|
||||
var array = new Uint8Array(256);
|
||||
for (var i = 0; i < 256; ++i)
|
||||
array[i] = i;
|
||||
return array.buffer;
|
||||
}
|
||||
|
||||
var ws = new WebSocket("ws://mochi.test:8888/tests/dom/base/test/websocket_hybi/file_check-binary-messages");
|
||||
var closeEvent;
|
||||
|
||||
ws.onopen = function()
|
||||
{
|
||||
ok(true, "onopen reached");
|
||||
ws.send(createArrayBufferContainingHelloWorld());
|
||||
ws.send(createEmptyArrayBuffer());
|
||||
ws.send(createArrayBufferContainingAllDistinctBytes());
|
||||
};
|
||||
|
||||
ws.onmessage = function(event)
|
||||
{
|
||||
var message = event.data;
|
||||
if (startsWith(message, "PASS"))
|
||||
ok(true, message);
|
||||
else
|
||||
ok(false, message);
|
||||
};
|
||||
|
||||
ws.onclose = function(event)
|
||||
{
|
||||
ok(event.wasClean, "should have closed cleanly");
|
||||
SimpleTest.finish();
|
||||
};
|
||||
|
||||
ws.onerror = function(event)
|
||||
{
|
||||
ok(false, "onerror should not have been called");
|
||||
};
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
72
dom/base/test/websocket_hybi/test_send-blob.html
Normal file
72
dom/base/test/websocket_hybi/test_send-blob.html
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p id="display">
|
||||
</p>
|
||||
<div id="content" style="display: none">
|
||||
</div>
|
||||
<pre id="test">
|
||||
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
function startsWith(target, prefix)
|
||||
{
|
||||
return target.indexOf(prefix) === 0;
|
||||
}
|
||||
|
||||
function distinctBytes()
|
||||
{
|
||||
var array = new Array();
|
||||
for (var i = 0; i < 256; ++i)
|
||||
array[i] = i;
|
||||
// Concatenates chars into a single binary string
|
||||
return String.fromCharCode.apply(null, array);
|
||||
}
|
||||
|
||||
var filesToCreate = [
|
||||
{name: "hellofile", data: "Hello, world!"},
|
||||
{name: "emptyfile"},
|
||||
{name: "allchars", data: distinctBytes()},
|
||||
];
|
||||
|
||||
SpecialPowers.createFiles(filesToCreate, function (files) {
|
||||
var ws = new WebSocket("ws://mochi.test:8888/tests/dom/base/test/websocket_hybi/file_check-binary-messages");
|
||||
var closeEvent;
|
||||
|
||||
ws.onopen = function()
|
||||
{
|
||||
ws.send(files[0]);
|
||||
ws.send(files[1]);
|
||||
ws.send(files[2]);
|
||||
};
|
||||
|
||||
ws.onmessage = function(event)
|
||||
{
|
||||
var message = event.data;
|
||||
if (startsWith(message, "PASS"))
|
||||
ok(true, message);
|
||||
else
|
||||
ok(false, message);
|
||||
};
|
||||
|
||||
ws.onclose = function(event)
|
||||
{
|
||||
ok(event.wasClean, "should have closed cleanly");
|
||||
SimpleTest.finish();
|
||||
};
|
||||
},
|
||||
function (msg) {
|
||||
ok(false, "Failed to create files: " + msg);
|
||||
SimpleTest.finish();
|
||||
});
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue