diff options
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 |