mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Merge pull request #6344 from Ms2ger/ws-tests
Fix WebSocket test issues.
This commit is contained in:
commit
c8f322b267
11 changed files with 35 additions and 26 deletions
|
@ -1,18 +1,12 @@
|
|||
//This file requires server-side substitutions and must be included as constants.js?pipe=config
|
||||
var DOMAIN_FOR_WS_TESTS = "{{host}}";
|
||||
var DOMAIN_FOR_WSS_TESTS = "{{host}}";
|
||||
//This file requires server-side substitutions and must be included as constants.js?pipe=sub
|
||||
|
||||
var PORT = "{{ports[ws][0]}}";
|
||||
//FIXME: Add support for wss
|
||||
var PORT_SSL = "{{ports[ws][0]}}";
|
||||
|
||||
// logic for using wss URLs instead of ws
|
||||
var SCHEME_AND_DOMAIN;
|
||||
var SCHEME_DOMAIN_PORT;
|
||||
if (location.search == '?wss') {
|
||||
SCHEME_AND_DOMAIN = 'wss://'+DOMAIN_FOR_WSS_TESTS;
|
||||
SCHEME_DOMAIN_PORT = SCHEME_AND_DOMAIN + ":" + PORT_SSL;
|
||||
SCHEME_DOMAIN_PORT = 'wss://{{host}}:' + PORT_SSL;
|
||||
} else {
|
||||
SCHEME_AND_DOMAIN = 'ws://'+DOMAIN_FOR_WS_TESTS;
|
||||
SCHEME_DOMAIN_PORT = SCHEME_AND_DOMAIN + ":" + PORT;
|
||||
SCHEME_DOMAIN_PORT = 'ws://{{host}}:' + PORT;
|
||||
}
|
||||
|
|
|
@ -11,8 +11,8 @@ test(function() {assert_throws("SyntaxError", function(){new WebSocket("wss://fo
|
|||
test(function() {assert_throws("SyntaxError", function(){new WebSocket("http://"+location.host+"/")})});
|
||||
test(function() {assert_throws("SyntaxError", function(){new WebSocket("mailto:example@example.org")})});
|
||||
test(function() {assert_throws("SyntaxError", function(){new WebSocket("about:blank")})});
|
||||
test(function() {assert_throws("SyntaxError", function(){new WebSocket("ws://"+location.host+"/#")})});
|
||||
test(function() {assert_throws("SyntaxError", function(){new WebSocket("ws://"+location.host+"/#test")})});
|
||||
test(function() {assert_throws("SyntaxError", function(){new WebSocket(SCHEME_DOMAIN_PORT+"/#")})});
|
||||
test(function() {assert_throws("SyntaxError", function(){new WebSocket(SCHEME_DOMAIN_PORT+"/#test")})});
|
||||
test(function() {assert_throws("SyntaxError", function(){new WebSocket("?test")})});
|
||||
test(function() {assert_throws("SyntaxError", function(){new WebSocket("#test")})});
|
||||
</script>
|
||||
|
|
|
@ -6,18 +6,28 @@
|
|||
<div id=log></div>
|
||||
<script>
|
||||
// empty string
|
||||
test(function() {assert_throws("SyntaxError", function(){new WebSocket("ws://"+location.host+"/", "")})});
|
||||
test(function() {
|
||||
assert_throws("SyntaxError", function() {
|
||||
new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message', "")
|
||||
})
|
||||
});
|
||||
|
||||
// chars below U+0020 except U+0000; U+0000 is tested in a separate test
|
||||
for (var i = 1; i < 0x20; ++i) {
|
||||
test(function() {
|
||||
assert_throws("SyntaxError", function(){new WebSocket("ws://"+location.host+"/", "a"+String.fromCharCode(i)+"b")}, 'char code '+i);
|
||||
})
|
||||
test(function() {
|
||||
assert_throws("SyntaxError", function() {
|
||||
new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message',
|
||||
"a"+String.fromCharCode(i)+"b")
|
||||
}, 'char code '+i);
|
||||
})
|
||||
}
|
||||
// some chars above U+007E
|
||||
for (var i = 0x7F; i < 0x100; ++i) {
|
||||
test(function() {
|
||||
assert_throws("SyntaxError", function(){new WebSocket("ws://"+location.host+"/", "a"+String.fromCharCode(i)+"b")}, 'char code '+i);
|
||||
})
|
||||
test(function() {
|
||||
assert_throws("SyntaxError", function() {
|
||||
new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message',
|
||||
"a"+String.fromCharCode(i)+"b")
|
||||
}, 'char code '+i);
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -6,6 +6,6 @@
|
|||
<div id=log></div>
|
||||
<script>
|
||||
test(function() {
|
||||
assert_true(new WebSocket("ws://"+location.host+"/") instanceof WebSocket);
|
||||
assert_true(new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message') instanceof WebSocket);
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -5,5 +5,10 @@
|
|||
<script src=../constants.js?pipe=sub></script>
|
||||
<div id=log></div>
|
||||
<script>
|
||||
test(function() {assert_throws("SyntaxError", function(){new WebSocket("ws://"+location.host+"/", 'a'+String.fromCharCode(0)+'b')})});
|
||||
test(function() {
|
||||
assert_throws("SyntaxError", function() {
|
||||
new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message',
|
||||
'a' + String.fromCharCode(0) + 'b')
|
||||
})
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
var events = ['onclose', 'onopen', 'onerror', 'onmessage'];
|
||||
for (var i = 0; i < events.length; ++i) {
|
||||
test(function(){
|
||||
var ws = new WebSocket(SCHEME_AND_DOMAIN+'/');
|
||||
var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message');
|
||||
var foo = function() {}
|
||||
ws[events[i]] = foo;
|
||||
assert_equals(ws[events[i]], foo, events[i]);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
var events = ['onclose', 'onopen', 'onerror', 'onmessage'];
|
||||
for (var i = 0; i < events.length; ++i) {
|
||||
test(function(t) {
|
||||
var ws = new WebSocket(SCHEME_AND_DOMAIN+'/');
|
||||
var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message');
|
||||
ws[events[i]] = 1;
|
||||
assert_equals(ws[events[i]], null);
|
||||
}, events[i]);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
var events = ['onclose', 'onopen', 'onerror', 'onmessage'];
|
||||
for (var i = 0; i < events.length; ++i) {
|
||||
test(function(t) {
|
||||
var ws = new WebSocket(SCHEME_AND_DOMAIN+'/');
|
||||
var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message');
|
||||
ws[events[i]] = ";";
|
||||
assert_equals(ws[events[i]], null);
|
||||
}, events[i]);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
var events = ['onclose', 'onopen', 'onerror', 'onmessage'];
|
||||
for (var i = 0; i < events.length; ++i) {
|
||||
test(function(t) {
|
||||
var ws = new WebSocket(SCHEME_AND_DOMAIN+'/');
|
||||
var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message');
|
||||
var obj = {handleEvent:this.unreached_func("handleEvent was called")};
|
||||
ws[events[i]] = obj;
|
||||
assert_equals(ws[events[i]], obj);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
var events = ['onclose', 'onopen', 'onerror', 'onmessage'];
|
||||
for (var i = 0; i < events.length; ++i) {
|
||||
test(function() {
|
||||
var ws = new WebSocket(SCHEME_AND_DOMAIN+'/');
|
||||
var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/empty-message');
|
||||
var foo = function() {}
|
||||
ws[events[i]] = foo;
|
||||
assert_equals(ws[events[i]], foo, events[i]);
|
||||
|
|
|
@ -7,6 +7,6 @@
|
|||
<script>
|
||||
test(function(t) {
|
||||
// The protocol attribute must initially return the empty string
|
||||
assert_equals((new WebSocket(SCHEME_AND_DOMAIN+'/')).protocol, '');
|
||||
assert_equals((new WebSocket(SCHEME_DOMAIN_PORT + '/empty-message')).protocol, '');
|
||||
});
|
||||
</script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue