'use strict'; // This file checks additional interface requirements, on top of the basic IDL // that is validated in service-workers/idlharness.any.js importScripts('/resources/testharness.js'); test(function() { var req = new Request('http://{{host}}/', {method: 'POST', headers: [['Content-Type', 'Text/Html']]}); assert_equals( new ExtendableEvent('ExtendableEvent').type, 'ExtendableEvent', 'Type of ExtendableEvent should be ExtendableEvent'); assert_throws_js(TypeError, function() { new FetchEvent('FetchEvent'); }, 'FetchEvent constructor with one argument throws'); assert_throws_js(TypeError, function() { new FetchEvent('FetchEvent', {}); }, 'FetchEvent constructor with empty init dict throws'); assert_throws_js(TypeError, function() { new FetchEvent('FetchEvent', {request: null}); }, 'FetchEvent constructor with null request member throws'); assert_equals( new FetchEvent('FetchEvent', {request: req}).type, 'FetchEvent', 'Type of FetchEvent should be FetchEvent'); assert_equals( new FetchEvent('FetchEvent', {request: req}).cancelable, false, 'Default FetchEvent.cancelable should be false'); assert_equals( new FetchEvent('FetchEvent', {request: req}).bubbles, false, 'Default FetchEvent.bubbles should be false'); assert_equals( new FetchEvent('FetchEvent', {request: req}).clientId, '', 'Default FetchEvent.clientId should be the empty string'); assert_equals( new FetchEvent('FetchEvent', {request: req, cancelable: false}).cancelable, false, 'FetchEvent.cancelable should be false'); assert_equals( new FetchEvent('FetchEvent', {request: req, clientId : 'test-client-id'}).clientId, 'test-client-id', 'FetchEvent.clientId with option {clientId : "test-client-id"} should be "test-client-id"'); assert_equals( new FetchEvent('FetchEvent', {request : req}).request.url, 'http://{{host}}/', 'FetchEvent.request.url should return the value it was initialized to'); assert_equals( new FetchEvent('FetchEvent', {request : req}).isReload, undefined, 'FetchEvent.isReload should not exist'); }, 'Event constructors'); test(() => { assert_false('XMLHttpRequest' in self); }, 'xhr is not exposed'); test(() => { assert_false('createObjectURL' in self.URL); }, 'URL.createObjectURL is not exposed')