Bug 1340974 - To make data-url.html pass. r=smaug, a=test-only
authorYoshi Huang <allstars.chh@mozilla.com>
Thu, 03 Aug 2017 10:36:27 +0800
changeset 423382 58a56b524b5ec309371c0e1e1313f813c0b83344
parent 423381 2b7b0fd96fcedec7bcdebd81d185118b96a4a60d
child 423383 c4b95f208eeb55003dbbe7da141e2a995cd4bbcb
push id1517
push userjlorenzo@mozilla.com
push dateThu, 14 Sep 2017 16:50:54 +0000
treeherdermozilla-release@3b41fd564418 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssmaug, test-only
bugs1340974
milestone56.0
Bug 1340974 - To make data-url.html pass. r=smaug, a=test-only The original test in [1] will throw Syntax error, due to we strip whitespace in [2]. The test 'else postMessage(..)' will become 'elsepostMessage(...)' and cause ReferenceError: elsepostMessage is not defined. So I added {} to fix the error. Also in the last test [3], it will trigger error handler in the testing framework, and the TestHarness will fail if there's an error thrown. So I added 'setup({allow_uncaught_exception:true});' to fix this. [1]: http://searchfox.org/mozilla-central/rev/f0e4ae5f8c40ba742214e89aba3f554da0b89a33/testing/web-platform/tests/workers/data-url.html#53 [2]: http://searchfox.org/mozilla-central/rev/f0e4ae5f8c40ba742214e89aba3f554da0b89a33/netwerk/protocol/data/nsDataHandler.cpp#92 [3]: http://searchfox.org/mozilla-central/rev/f0e4ae5f8c40ba742214e89aba3f554da0b89a33/testing/web-platform/tests/workers/data-url.html#56
testing/web-platform/meta/workers/data-url.html.ini
testing/web-platform/tests/workers/data-url.html
deleted file mode 100644
--- a/testing/web-platform/meta/workers/data-url.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[data-url.html]
-  type: testharness
-  expected: ERROR
--- a/testing/web-platform/tests/workers/data-url.html
+++ b/testing/web-platform/tests/workers/data-url.html
@@ -20,17 +20,18 @@ function assert_worker_throws(test_desc,
 }
 
 function assert_worker_construction_fails(test_desc, mime_type, worker_code) {
   async_test(function(t) {
     var w = new Worker(`data:${mime_type},${worker_code};postMessage("PASS")`);
     w.onmessage = t.step_func_done(function(e) {
       assert_unreached('Should not receive any message back.');
     });
-    w.onerror = t.step_func_done(function() {
+    w.onerror = t.step_func_done(function(e) {
+      assert_true(true, 'Should throw ' + e.message);
     });
   }, test_desc);
 }
 // Helper assert functions -END-
 
 // Actual tests -START-
 
 // Any MIME type
@@ -45,15 +46,16 @@ assert_worker_sends_pass('communication 
 // once https://github.com/w3c/IndexedDB/pull/150 lands, this is spec conforming
 assert_worker_throws('indexedDB inaccessible', 'self.indexedDB.open("someDBName")');
 assert_worker_throws('Web SQL Database inaccessible', 'self.openDatabase("someDBName", "1.0", "someDBName", 1);');
 
 // 'data:' workers are cross-origin
 assert_worker_sends_pass('cross-origin worker', '', 'fetch("/").then(() => self.postMessage("FAIL"), () => self.postMessage("PASS"))');
 
 // 'data:' workers have opaque origin
-assert_worker_sends_pass('worker has opaque origin', 'application/javascript', 'if (self.location.origin == "null") postMessage("PASS"); else postMessage("FAIL");');
+assert_worker_sends_pass('worker has opaque origin', 'application/javascript', 'if (self.location.origin == "null") {postMessage("PASS");} else {postMessage("FAIL");}');
 
+setup({allow_uncaught_exception:true});
 // invalid javascript will trigger an ErrorEvent
 assert_worker_construction_fails('invalid javascript produces error', 'application/javascript', '}x=3');
 
 // Actual tests -END-
 </script>