99f36b9cf2d980f675e74adb112f346bf9aaf0c4
[WebKit-https.git] / LayoutTests / imported / w3c / web-platform-tests / service-workers / service-worker / resources / interfaces-worker.sub.js
1 'use strict';
2
3 importScripts('interfaces-idls.js');
4 importScripts('worker-testharness.js');
5 importScripts('/resources/WebIDLParser.js');
6 importScripts('/resources/idlharness.js');
7
8 var idlArray = new IdlArray();
9 idlArray.add_untested_idls(idls.untested);
10 idlArray.add_idls(idls.tested);
11 idlArray.add_objects({
12     ServiceWorkerGlobalScope: ['self'],
13     Clients: ['self.clients'],
14     ServiceWorkerRegistration: ['self.registration'],
15     CacheStorage: ['self.caches']
16     // TODO: Test instances of Client and WindowClient, e.g.
17     // Client: ['self.clientInstance'],
18     // WindowClient: ['self.windowClientInstance']
19   });
20
21 promise_test(function(t) {
22     return create_temporary_cache(t)
23       .then(function(cache) {
24           self.cacheInstance = cache;
25
26           idlArray.add_objects({ Cache: ['self.cacheInstance'] });
27           idlArray.test();
28         });
29   }, 'test setup (cache creation)');
30
31 test(function() {
32     var req = new Request('http://{{host}}/',
33                           {method: 'POST',
34                            headers: [['Content-Type', 'Text/Html']]});
35     assert_equals(
36       new ExtendableEvent('ExtendableEvent').type,
37       'ExtendableEvent', 'Type of ExtendableEvent should be ExtendableEvent');
38     assert_throws(new TypeError, function() {
39         new FetchEvent('FetchEvent');
40     }, 'FetchEvent constructor with one argument throws');
41     assert_throws(new TypeError, function() {
42         new FetchEvent('FetchEvent', {});
43     }, 'FetchEvent constructor with empty init dict throws');
44     assert_throws(new TypeError, function() {
45         new FetchEvent('FetchEvent', {request: null});
46     }, 'FetchEvent constructor with null request member throws');
47     assert_equals(
48       new FetchEvent('FetchEvent', {request: req}).type,
49       'FetchEvent', 'Type of FetchEvent should be FetchEvent');
50     assert_equals(
51       new FetchEvent('FetchEvent', {request: req}).cancelable,
52       false, 'Default FetchEvent.cancelable should be false');
53     assert_equals(
54       new FetchEvent('FetchEvent', {request: req}).bubbles,
55       false, 'Default FetchEvent.bubbles should be false');
56     assert_equals(
57       new FetchEvent('FetchEvent', {request: req}).clientId,
58       '', 'Default FetchEvent.clientId should be the empty string');
59     assert_equals(
60       new FetchEvent('FetchEvent', {request: req}).isReload,
61       false, 'Default FetchEvent.isReload should be false');
62     assert_equals(
63       new FetchEvent('FetchEvent', {request: req, cancelable: false}).cancelable,
64       false, 'FetchEvent.cancelable should be false');
65     assert_equals(
66       new FetchEvent('FetchEvent', {request: req, clientId : 'test-client-id'}).clientId, 'test-client-id',
67       'FetchEvent.clientId with option {clientId : "test-client-id"} should be "test-client-id"');
68     assert_equals(
69       new FetchEvent('FetchEvent', {request: req, isReload : true}).isReload, true,
70       'FetchEvent.isReload with option {isReload : true} should be true');
71     assert_equals(
72       new FetchEvent('FetchEvent', {request : req, isReload : true}).request.url,
73       'http://{{host}}/',
74       'FetchEvent.request.url should return the value it was initialized to');
75   }, 'Event constructors');
76
77 test(() => {
78     assert_false('XMLHttpRequest' in self);
79   }, 'xhr is not exposed');