Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/streams/writable-streams/brand-checks.js

Issue 2772293002: Update WritableStream to new standard version (Closed)
Patch Set: Changes from domenic@ review Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 'use strict';
2
3 if (self.importScripts) {
4 self.importScripts('/resources/testharness.js');
5 }
6
7 function fakeWritableStreamDefaultWriter() {
8 return {
9 get closed() { return Promise.resolve(); },
10 get desiredSize() { return 1; },
11 get ready() { return Promise.resolve(); },
12 abort() { return Promise.resolve(); },
13 close() { return Promise.resolve(); },
14 write() { return Promise.resolve(); }
15 };
16 }
17
18 function realReadableStreamDefaultWriter() {
19 const rs = new ReadableStream();
20 return rs.getReader();
21 }
22
23 function getterRejects(t, obj, getterName, target) {
24 const getter = Object.getOwnPropertyDescriptor(obj, getterName).get;
25
26 return promise_rejects(t, new TypeError(), getter.call(target),
27 getterName + ' should reject with a TypeError');
28 }
29
30 function methodRejects(t, obj, methodName, target) {
31 const method = obj[methodName];
32
33 return promise_rejects(t, new TypeError(), method.call(target),
34 methodName + ' should reject with a TypeError');
35 }
36
37 function getterThrows(obj, getterName, target) {
38 const getter = Object.getOwnPropertyDescriptor(obj, getterName).get;
39
40 assert_throws(new TypeError(), () => getter.call(target), getterName + ' shoul d throw a TypeError');
41 }
42
43 const ws = new WritableStream();
44 const writer = ws.getWriter();
45 const WritableStreamDefaultWriter = writer.constructor;
46 const WriterProto = WritableStreamDefaultWriter.prototype;
47
48 test(() => {
49 getterThrows(WriterProto, 'desiredSize', fakeWritableStreamDefaultWriter());
50 getterThrows(WriterProto, 'desiredSize', realReadableStreamDefaultWriter());
51 }, 'WritableStreamDefaultWriter.prototype.desiredSize enforces a brand check');
52
53 promise_test(t => {
54 return Promise.all([getterRejects(t, WriterProto, 'closed', fakeWritableStream DefaultWriter()),
55 getterRejects(t, WriterProto, 'closed', realReadableStreamDefaultWriter())]) ;
56 }, 'WritableStreamDefaultWriter.prototype.closed enforces a brand check');
57
58 promise_test(t => {
59 return Promise.all([getterRejects(t, WriterProto, 'ready', fakeWritableStreamD efaultWriter()),
60 getterRejects(t, WriterProto, 'ready', realReadableStreamDefaultWriter())]);
61 }, 'WritableStreamDefaultWriter.prototype.ready enforces a brand check');
62
63 test(t => {
64 return Promise.all([methodRejects(t, WriterProto, 'abort', fakeWritableStreamD efaultWriter()),
65 methodRejects(t, WriterProto, 'abort', realReadableStreamDefaultWriter())]);
66
67 }, 'WritableStreamDefaultWriter.prototype.abort enforces a brand check');
68
69 promise_test(t => {
70 return Promise.all([methodRejects(t, WriterProto, 'write', fakeWritableStreamD efaultWriter()),
71 methodRejects(t, WriterProto, 'write', realReadableStreamDefaultWriter())]);
72 }, 'WritableStreamDefaultWriter.prototype.write enforces a brand check');
73
74 promise_test(t => {
75 return Promise.all([methodRejects(t, WriterProto, 'close', fakeWritableStreamD efaultWriter()),
76 methodRejects(t, WriterProto, 'close', realReadableStreamDefaultWriter())]);
77 }, 'WritableStreamDefaultWriter.prototype.close enforces a brand check');
78
79 done();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698