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