| <!doctype html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <body> |
| <script> |
| 'use strict'; |
| |
| promise_test(async t => { |
| return promise_rejects_js(t, TypeError, sharedStorage.set()); |
| }, 'sharedStorage.set with 0 argument'); |
| |
| promise_test(async t => { |
| return promise_rejects_js(t, TypeError, sharedStorage.set("a")); |
| }, 'sharedStorage.set with 1 argument'); |
| |
| promise_test(() => { |
| return sharedStorage.set("a", "b"); |
| }, 'sharedStorage.set with 2 arguments'); |
| |
| promise_test(() => { |
| return sharedStorage.set("a", "b", {ignoreIfPresent: true}); |
| }, 'sharedStorage.set with options'); |
| |
| promise_test(async t => { |
| return promise_rejects_js(t, TypeError, sharedStorage.set("a", "b", "c")); |
| }, 'sharedStorage.set with invalid options'); |
| |
| promise_test(async t => { |
| try { |
| await sharedStorage.set('', 'b'); |
| } catch (e) { |
| assert_equals(e.name, 'DataError'); |
| return; |
| } |
| assert_unreached("did not reject"); |
| }, 'sharedStorage.set with empty key'); |
| |
| promise_test(() => { |
| return sharedStorage.append("a", "b"); |
| }, 'sharedStorage.append'); |
| |
| promise_test(() => { |
| return sharedStorage.clear(); |
| }, 'sharedStorage.clear'); |
| |
| promise_test(() => { |
| return sharedStorage.delete("a"); |
| }, 'sharedStorage.delete'); |
| |
| test(() => { |
| try { |
| let a = new SharedStorageSetMethod('a'); |
| } catch (e) { |
| assert_equals(e.name, 'TypeError'); |
| return; |
| } |
| assert_unreached("did not throw"); |
| }, 'new SharedStorageSetMethod with 1 argument'); |
| |
| test(() => { |
| let a = new SharedStorageSetMethod('a', 'b'); |
| }, 'new SharedStorageSetMethod with 2 arguments'); |
| |
| test(() => { |
| try { |
| let a = new SharedStorageAppendMethod('a'); |
| } catch (e) { |
| assert_equals(e.name, 'TypeError'); |
| return; |
| } |
| assert_unreached("did not throw"); |
| }, 'new SharedStorageAppendMethod with 1 argument'); |
| |
| test(() => { |
| let a = new SharedStorageAppendMethod('a', 'b'); |
| }, 'new SharedStorageAppendMethod with 2 arguments'); |
| |
| test(() => { |
| try { |
| let a = new SharedStorageDeleteMethod(); |
| } catch (e) { |
| assert_equals(e.name, 'TypeError'); |
| return; |
| } |
| assert_unreached("did not throw"); |
| }, 'new SharedStorageDeleteMethod with no arguments'); |
| |
| test(() => { |
| let a = new SharedStorageDeleteMethod('a'); |
| }, 'new SharedStorageDeleteMethod with 1 argument'); |
| |
| test(() => { |
| try { |
| let a = SharedStorageClearMethod(); |
| } catch (e) { |
| assert_equals(e.name, 'TypeError'); |
| return; |
| } |
| assert_unreached("did not throw"); |
| }, 'call SharedStorageClearMethod() as a function'); |
| |
| test(() => { |
| let a = new SharedStorageClearMethod(); |
| }, 'new SharedStorageClearMethod with no arguments'); |
| |
| promise_test(() => { |
| return sharedStorage.batchUpdate([ |
| new SharedStorageSetMethod("key0", "value0"), |
| new SharedStorageAppendMethod("key1", "value1"), |
| new SharedStorageDeleteMethod("key2"), |
| new SharedStorageClearMethod() |
| ], {withLock: "lock3"}); |
| }, 'sharedStorage.batchUpdate'); |
| |
| promise_test(async t => { |
| return promise_rejects_js(t, TypeError, sharedStorage.batchUpdate()); |
| }, 'sharedStorage.batchUpdate without \'methods\' argument'); |
| |
| promise_test(async t => { |
| return promise_rejects_js(t, TypeError, sharedStorage.batchUpdate(["123"])); |
| }, 'sharedStorage.batchUpdate with invalid \'methods\' argument'); |
| |
| </script> |
| </body> |