<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/shared-storage/resources/util.js"></script>
<body>
<script>
'use strict';
promise_test(async t => {
await addModuleOnce("/shared-storage/resources/simple-module.js");
return sharedStorage.run("operation1", {keepAlive: true});
}, 'run()');
promise_test(async t => {
await addModuleOnce("/shared-storage/resources/simple-module.js");
return sharedStorage.run("operation1",
{data: {'custom-key': 'custom-value'},
keepAlive: true});
}, 'run() with custom data');
promise_test(async t => {
try {
await addModuleOnce("/shared-storage/resources/simple-module.js");
await sharedStorage.run("operation1", {data: window});
} catch (e) {
assert_equals(e.name, 'DataCloneError');
assert_equals(e.message, 'Failed to execute \'run\' on \'SharedStorage\': #<Window> could not be cloned.');
return;
}
assert_unreached("did not reject");
}, 'run() with unsupported serializable type');
</script>
</body>