1 // META: title=NativeIO API: Write respects the allocated capacities.
2 // META: global=dedicatedworker
5 const file = storageFoundation.openSync('test_file');
6 testCase.add_cleanup(() => {
8 storageFoundation.deleteSync('test_file');
10 const writeBuffer = Uint8Array.from([64, 65, 66, 67]);
11 assert_throws_dom('QuotaExceededError', () => {file.write(writeBuffer, 0)});
12 }, 'NativeIOFileSync.write() fails without any capacity request.');
15 const file = storageFoundation.openSync('test_file');
17 const granted_capacity = storageFoundation.requestCapacitySync(4);
18 assert_greater_than_equal(granted_capacity, 2);
20 testCase.add_cleanup(() => {
22 storageFoundation.deleteSync('test_file');
23 storageFoundation.releaseCapacitySync(granted_capacity);
26 const writeBuffer = new Uint8Array(granted_capacity - 1).fill(64);
27 file.write(writeBuffer, 0);
28 }, 'NativeIOFileSync.write() succeeds when given a buffer of length ' +
29 'granted capacity - 1');
32 const file = storageFoundation.openSync('test_file');
34 const granted_capacity = storageFoundation.requestCapacitySync(4);
35 assert_greater_than_equal(granted_capacity, 2);
36 testCase.add_cleanup(() => {
38 storageFoundation.deleteSync('test_file');
39 storageFoundation.releaseCapacitySync(granted_capacity);
41 const writeBuffer = new Uint8Array(granted_capacity).fill(64);
43 file.write(writeBuffer, 0);
44 }, 'NativeIOFileSync.write() succeeds when given the granted capacity');
47 const file = storageFoundation.openSync('test_file');
49 const granted_capacity = storageFoundation.requestCapacitySync(4);
50 assert_greater_than_equal(granted_capacity, 2);
51 testCase.add_cleanup(() => {
53 storageFoundation.deleteSync('test_file');
54 storageFoundation.releaseCapacitySync(granted_capacity);
56 const writeBuffer = new Uint8Array(granted_capacity + 1).fill(64);
58 assert_throws_dom('QuotaExceededError', () => {file.write(writeBuffer, 0)});
59 }, 'NativeIOFileSync.write() fails when given the granted capacity + 1');