Skip to content

Commit

Permalink
Test base URL with multiple globals for WebSocket
Browse files Browse the repository at this point in the history
  • Loading branch information
zcorpan committed May 16, 2023
1 parent 446398a commit 9d415b8
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 0 deletions.
2 changes: 2 additions & 0 deletions websockets/multi-globals/url-parsing/current/current.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<!DOCTYPE html>
<title>Current page used as a test helper</title>
13 changes: 13 additions & 0 deletions websockets/multi-globals/url-parsing/incumbent/incumbent.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!DOCTYPE html>
<title>Incumbent page used as a test helper</title>

<iframe src="../current/current.html" id="current"></iframe>

<script>
const current = document.querySelector("#current").contentWindow;

window.hello = () => {
window.ws = new current.WebSocket('foo');
ws.close();
};
</script>
22 changes: 22 additions & 0 deletions websockets/multi-globals/url-parsing/url-parsing.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!DOCTYPE html>
<title>Multiple globals for base URL in WebSocket constructor</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<!-- This is the entry global -->

<iframe src="incumbent/incumbent.html"></iframe>

<script>
async_test((t) => {
onload = t.step_func_done(() => {
frames[0].hello();
// Inside constructors, "this's relevant settings object" === "current settings object",
// because of how "this" is constructed.
// https://github.com/whatwg/websockets/issues/46
const expectedUrl = new URL('current/foo', location.href);
expectedUrl.protocol = 'ws:';
assert_equals(frames[0].ws.url, expectedUrl.href);
});
});
</script>

0 comments on commit 9d415b8

Please sign in to comment.