aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/websocket.rs6
-rw-r--r--tests/wpt/metadata/websockets/Send-before-open.htm.ini5
-rw-r--r--tests/wpt/metadata/websockets/interfaces.html.ini70
-rw-r--r--tests/wpt/metadata/websockets/interfaces/WebSocket/send/001.html.ini4
-rw-r--r--tests/wpt/metadata/websockets/interfaces/WebSocket/send/003.html.ini3
-rw-r--r--tests/wpt/metadata/websockets/interfaces/WebSocket/send/004.html.ini3
6 files changed, 77 insertions, 14 deletions
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs
index 13423097cba..e8c6aec8f50 100644
--- a/components/script/dom/websocket.rs
+++ b/components/script/dom/websocket.rs
@@ -208,7 +208,11 @@ impl<'a> WebSocketMethods for &'a WebSocket {
self.ready_state.get() as u16
}
- fn Send(self, data: Option<USVString>)-> Fallible<()>{
+ fn Send(self, data: Option<USVString>) -> Fallible<()> {
+ if self.ready_state.get() == WebSocketRequestState::Connecting {
+ return Err(Error::InvalidState);
+ }
+
/*TODO: This is not up to spec see http://html.spec.whatwg.org/multipage/comms.html search for
"If argument is a string"
TODO: Need to buffer data
diff --git a/tests/wpt/metadata/websockets/Send-before-open.htm.ini b/tests/wpt/metadata/websockets/Send-before-open.htm.ini
deleted file mode 100644
index 548882ca473..00000000000
--- a/tests/wpt/metadata/websockets/Send-before-open.htm.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[Send-before-open.htm]
- type: testharness
- [W3C WebSocket API - Send data on a WebSocket before connection is opened - INVALID_STATE_ERR is returned]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/websockets/interfaces.html.ini b/tests/wpt/metadata/websockets/interfaces.html.ini
index 5e4daae8f67..d26eadcc658 100644
--- a/tests/wpt/metadata/websockets/interfaces.html.ini
+++ b/tests/wpt/metadata/websockets/interfaces.html.ini
@@ -1,3 +1,71 @@
[interfaces.html]
type: testharness
- expected: CRASH
+ [WebSocket interface: existence and properties of interface object]
+ expected: FAIL
+
+ [WebSocket interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [WebSocket interface: attribute bufferedAmount]
+ expected: FAIL
+
+ [WebSocket interface: attribute extensions]
+ expected: FAIL
+
+ [WebSocket interface: attribute protocol]
+ expected: FAIL
+
+ [WebSocket interface: attribute onmessage]
+ expected: FAIL
+
+ [WebSocket interface: attribute binaryType]
+ expected: FAIL
+
+ [WebSocket interface: operation send(DOMString)]
+ expected: FAIL
+
+ [WebSocket interface: operation send(Blob)]
+ expected: FAIL
+
+ [WebSocket interface: operation send(ArrayBuffer)]
+ expected: FAIL
+
+ [WebSocket interface: operation send(ArrayBufferView)]
+ expected: FAIL
+
+ [Stringification of new WebSocket("ws://foo")]
+ expected: FAIL
+
+ [WebSocket interface: new WebSocket("ws://foo") must inherit property "bufferedAmount" with the proper type (6)]
+ expected: FAIL
+
+ [WebSocket interface: new WebSocket("ws://foo") must inherit property "extensions" with the proper type (10)]
+ expected: FAIL
+
+ [WebSocket interface: new WebSocket("ws://foo") must inherit property "protocol" with the proper type (11)]
+ expected: FAIL
+
+ [WebSocket interface: new WebSocket("ws://foo") must inherit property "onmessage" with the proper type (13)]
+ expected: FAIL
+
+ [WebSocket interface: new WebSocket("ws://foo") must inherit property "binaryType" with the proper type (14)]
+ expected: FAIL
+
+ [WebSocket interface: calling send(DOMString) on new WebSocket("ws://foo") with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [WebSocket interface: calling send(Blob) on new WebSocket("ws://foo") with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [WebSocket interface: calling send(ArrayBuffer) on new WebSocket("ws://foo") with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [WebSocket interface: calling send(ArrayBufferView) on new WebSocket("ws://foo") with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [CloseEvent interface: existence and properties of interface object]
+ expected: FAIL
+
+ [CloseEvent interface: existence and properties of interface prototype object]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/websockets/interfaces/WebSocket/send/001.html.ini b/tests/wpt/metadata/websockets/interfaces/WebSocket/send/001.html.ini
index 67f5d9b0879..81dc9b1e553 100644
--- a/tests/wpt/metadata/websockets/interfaces/WebSocket/send/001.html.ini
+++ b/tests/wpt/metadata/websockets/interfaces/WebSocket/send/001.html.ini
@@ -1,3 +1,5 @@
[001.html]
type: testharness
- expected: CRASH
+ [WebSockets: send() with no args]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/websockets/interfaces/WebSocket/send/003.html.ini b/tests/wpt/metadata/websockets/interfaces/WebSocket/send/003.html.ini
deleted file mode 100644
index f2b01b122e4..00000000000
--- a/tests/wpt/metadata/websockets/interfaces/WebSocket/send/003.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[003.html]
- type: testharness
- expected: CRASH
diff --git a/tests/wpt/metadata/websockets/interfaces/WebSocket/send/004.html.ini b/tests/wpt/metadata/websockets/interfaces/WebSocket/send/004.html.ini
deleted file mode 100644
index 58468cab4ee..00000000000
--- a/tests/wpt/metadata/websockets/interfaces/WebSocket/send/004.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[004.html]
- type: testharness
- expected: CRASH