Update web-platform-tests to revision 8a2ceb5f18911302b7a5c1cd2791f4ab50ad4326

This commit is contained in:
Josh Matthews 2017-10-12 09:25:50 -04:00
parent 462c272380
commit 1f531f66ea
5377 changed files with 174916 additions and 84369 deletions

View file

@ -0,0 +1,81 @@
<html manifest="resources/appcache-worker.manifest">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
var resolveInitPromise;
var initPromise = new Promise(r => { resolveInitPromise = r; });
applicationCache.addEventListener('cached', resolveInitPromise, false);
applicationCache.addEventListener('noupdate', resolveInitPromise, false);
promise_test(t => {
return initPromise.then(_ => {
var worker =
new Worker('resources/appcache-worker.py?type=cached');
return new Promise(r => { worker.onmessage = r; });
}).then(event => {
assert_equals(event.data, 'Done: cached');
});
}, 'Dedicated worker of the cached script');
promise_test(t => {
return initPromise.then(_ => {
var worker =
new Worker('resources/appcache-worker.py?type=fallingback');
return new Promise(r => { worker.onmessage = r; });
}).then(event => {
assert_equals(event.data, 'Done: fallbacked');
});
}, 'Dedicated worker of the fallbacked script');
promise_test(t => {
return initPromise.then(_ => {
var worker =
new Worker('resources/appcache-dedicated-worker-not-in-cache.js');
return new Promise((resolve, reject) => {
worker.onerror = resolve;
worker.onmessage = _ => {
reject('The worker not in the AppCache must not be executed.');
};
});
});
}, 'Dedicated worker of the not-in-cache script');
promise_test(t => {
return initPromise.then(_ => {
var worker =
new SharedWorker('resources/appcache-worker.py?type=cached');
var promise = new Promise(r => { worker.port.onmessage = r; });
worker.port.start();
return promise;
}).then(event => {
assert_equals(event.data, 'Done: cached');
});
}, 'Shared worker of the cached script');
promise_test(t => {
return initPromise.then(_ => {
var worker =
new SharedWorker('resources/appcache-worker.py?type=fallingback');
var promise = new Promise(r => { worker.port.onmessage = r; });
worker.port.start();
return promise;
}).then(event => {
assert_equals(event.data, 'Done: fallbacked');
});
}, 'Shared worker of the fallbacked script');
promise_test(t => {
return initPromise.then(_ => {
var worker =
new SharedWorker(
'resources/appcache-shared-worker-not-in-cache.js');
var promise = new Promise(r => { worker.port.onmessage = r; });
worker.port.start();
return promise;
}).then(event => {
assert_equals(event.data, 'Done');
});
}, 'Shared worker of the not-in-cache script');
</script>
</html>

View file

@ -0,0 +1,64 @@
var info = '';
var initPromise = new Promise(resolve => {
self.addEventListener('connect', event => {
self.postMessage = msg => { event.ports[0].postMessage(msg); };
resolve();
});
});
function importNotInCacheSciptTest() {
return new Promise((resolve, reject) => {
try {
importScripts('appcache-worker-import.py?type=not-in-cache');
} catch(e) {
reject(new Error('Error while importing the not-in-cache script: ' +
e.toString()));
return;
}
if (info != 'Set by the not-in-cache script') {
reject(new Error('The not-in-cache script was not correctly executed'));
}
resolve();
});
}
function importFallbackSciptTest() {
return new Promise((resolve, reject) => {
try {
importScripts('appcache-worker-import.py?type=fallingback');
reject(new Error('Importing a fallback script must fail.'));
} catch(e) {
resolve();
}
});
}
function fetchNotInCacheFileTest() {
return fetch('appcache-worker-data.py?type=not-in-cache')
.then(res => res.text(),
_ => { throw new Error('Failed to fetch not-in-cache file'); })
.then(text => {
if (text != 'not-in-cache') {
throw new Error('not-in-cache file mismatch');
}
})
}
function fetchFallbackFileTest() {
return fetch('appcache-worker-data.py?type=fallingback')
.then(res => {
if (res.status != 404) {
throw new Error(
'Fetching fallback file must resolve with 404 response');
}
},
_ => { throw new Error('Fetching fallback file must not fail'); });
}
initPromise
.then(importNotInCacheSciptTest)
.then(importFallbackSciptTest)
.then(fetchNotInCacheFileTest)
.then(fetchFallbackFileTest)
.then(_ => postMessage('Done'), error => postMessage(error.toString()));

View file

@ -0,0 +1,5 @@
def main(request, response):
type = request.GET['type']
if request.GET['type'] == 'fallingback':
return 404, [('Content-Type', 'text/plain')], "Page not found"
return [('Content-Type', 'text/plain')], type

View file

@ -0,0 +1,7 @@
script = 'info = \'Set by the %s script\';'
def main(request, response):
type = request.GET['type']
if request.GET['type'] == 'fallingback':
return 404, [('Content-Type', 'text/plain')], "Page not found"
return [('Content-Type', 'text/javascript')], script % type

View file

@ -0,0 +1,10 @@
CACHE MANIFEST
appcache-worker.py?type=cached
appcache-worker-import.py?type=cached
appcache-worker-data.py?type=cached
FALLBACK:
appcache-worker.py?type=fallingback appcache-worker.py?type=fallbacked
appcache-worker-import.py?type=fallingback appcache-worker-import.py?type=fallbacked
appcache-worker-data.py?type=fallingback appcache-worker-data.py?type=fallbacked

View file

@ -0,0 +1,102 @@
script = '''
var initPromise = Promise.resolve();
if ('SharedWorkerGlobalScope' in self &&
self instanceof SharedWorkerGlobalScope) {
initPromise = new Promise(resolve => {
self.addEventListener('connect', event => {
self.postMessage = msg => { event.ports[0].postMessage(msg); };
resolve();
});
});
}
var info = '';
function importCachedScriptTest() {
return new Promise((resolve, reject) => {
info = '';
try {
importScripts('appcache-worker-import.py?type=cached');
} catch(e) {
reject(new Error('Error while importing the cached script: ' +
e.toString()));
return;
}
if (info != 'Set by the cached script') {
reject(new Error('The cached script was not correctly executed'));
}
resolve();
});
}
function importNotInCacheSciptTest() {
return new Promise((resolve, reject) => {
try {
importScripts('appcache-worker-import.py?type=not-in-cache');
reject(new Error('Importing a non-cached script must fail.'));
} catch(e) {
resolve();
}
});
}
function importFallbackSciptTest() {
return new Promise((resolve, reject) => {
info = '';
try {
importScripts('appcache-worker-import.py?type=fallingback');
} catch(e) {
reject(new Error('Error while importing the fallingback script: ' +
e.toString()));
}
if (info != 'Set by the fallbacked script') {
reject(new Error('The fallingback script was not correctly executed'));
}
resolve();
});
}
function fetchCachedFileTest() {
return fetch('appcache-worker-data.py?type=cached')
.then(res => res.text(),
_ => { throw new Error('Failed to fetch cached file'); })
.then(text => {
if (text != 'cached') {
throw new Error('cached file missmatch');
}
});
}
function fetchNotInCacheFileTest() {
return fetch('appcache-worker-data.py?type=not-in-cache')
.then(_ => { throw new Error('Fetching not-in-cache file must fail'); },
_ => {});
}
function fetchFallbackFileTest() {
return fetch('appcache-worker-data.py?type=fallingback')
.then(res => res.text(),
_ => { throw new Error('Failed to fetch fallingback file'); })
.then(text => {
if (text != 'fallbacked') {
throw new Error('fallbacked file miss match');
}
});
}
initPromise
.then(importCachedScriptTest)
.then(importNotInCacheSciptTest)
.then(importFallbackSciptTest)
.then(fetchCachedFileTest)
.then(fetchNotInCacheFileTest)
.then(_ => postMessage('Done: %s'),
error => postMessage(error.toString()));
'''
def main(request, response):
type = request.GET['type']
if request.GET['type'] == 'fallingback':
return 404, [('Content-Type', 'text/plain')], "Page not found"
return [('Content-Type', 'text/javascript')], script % type