Index: third_party/WebKit/LayoutTests/imported/wpt/workers/constructors/SharedWorker/same-origin.html |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/workers/constructors/SharedWorker/same-origin.html b/third_party/WebKit/LayoutTests/imported/wpt/workers/constructors/SharedWorker/same-origin.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2e0dd8db33a7d1d8fed344feb55abbe622c4dd94 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/workers/constructors/SharedWorker/same-origin.html |
@@ -0,0 +1,67 @@ |
+<!-- |
+/* |
+--> |
+<!doctype html> |
+<title>same-origin checks</title> |
+<link rel=help href="http://www.whatwg.org/html/#dom-sharedworker"> |
+<script src="/resources/testharness.js"></script> |
+<script src="/resources/testharnessreport.js"></script> |
+<div id="log"></div> |
+<script> |
+// Needed to prevent a race condition if a worker throws an exception that may or may |
+// not propogate to the window before the tests finish |
+setup({allow_uncaught_exception: true}); |
+ |
+function testSharedWorkerHelper(t, script) { |
+ try { |
+ var worker = new SharedWorker(script, ''); |
+ worker.onerror = t.step_func_done(function(e) { |
+ assert_true(e instanceof ErrorEvent); |
+ }); |
+ } catch (e) { |
+ t.step_func_done(function(e) { assert_true(true); }); |
+ } |
+} |
+ |
+test(function() { |
+ assert_throws("SecurityError", function() { new SharedWorker('unsupported:', ''); }); |
+}, "unsupported_scheme"); |
+ |
+async_test(function() { |
+ var worker = new SharedWorker('data:,onconnect = function(e) { e.ports[0].postMessage(1); }', ''); |
+ worker.port.onmessage = this.step_func_done(function(e) { |
+ assert_equals(e.data, 1); |
+ }); |
+}, "data_url"); |
+ |
+async_test(function(t) { |
+ testSharedWorkerHelper(this, 'javascript:""'); |
+}, "javascript_url"); |
+ |
+async_test(function(t) { |
+ testSharedWorkerHelper(this, 'about:blank'); |
+}, "about_blank"); |
+ |
+async_test(function(t) { |
+ testSharedWorkerHelper(this, 'http://www.opera.com/'); |
+}, "opera_com"); |
+ |
+async_test(function(t) { |
+ testSharedWorkerHelper(this, location.protocol+'//'+location.hostname+':81/'); |
+}, "port_81"); |
+ |
+async_test(function(t) { |
+ testSharedWorkerHelper(this, 'https://'+location.hostname+':80/'); |
+}, "https_port_80"); |
+ |
+async_test(function(t) { |
+ testSharedWorkerHelper(this, 'https://'+location.hostname+':8000/'); |
+}, "https_port_8000"); |
+ |
+async_test(function(t) { |
+ testSharedWorkerHelper(this, 'http://'+location.hostname+':8012/'); |
+}, "http_port_8012"); |
+</script> |
+<!-- |
+*/ |
+//--> |