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

Side by Side Diff: third_party/WebKit/LayoutTests/mojo/data-pipe.html

Issue 2732163002: Implements JS bindings for mojo data pipe. (Closed)
Patch Set: rebase Created 3 years, 9 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
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <title>Mojo data pipe tests</title>
3 <script src="../resources/testharness.js"></script>
4 <script src="../resources/testharnessreport.js"></script>
5 <script>
6
7 let kElementNumBytes = 1;
8 let kCapacityNumBytes = 64;
9
10 function createDataPipe() {
11 return Mojo.createDataPipe({
12 elementNumBytes: kElementNumBytes,
13 capacityNumBytes: kCapacityNumBytes
14 });
15 };
16
17 test(() => {
18 let {result, producer, consumer} = createDataPipe();
19 assert_equals(result, Mojo.RESULT_OK);
20 assert_true(producer instanceof MojoHandle);
21 assert_true(consumer instanceof MojoHandle);
22 }, "Create data pipe");
23
24 test(() => {
25 let {producer, consumer} = createDataPipe();
26 let data = new Uint8Array(kCapacityNumBytes);
27
28 let {result, numBytes} = producer.writeData(data);
29 assert_equals(result, Mojo.RESULT_OK);
30 assert_equals(numBytes, data.length);
31 }, "Write data");
32
33 test(() => {
34 let {producer, consumer} = createDataPipe();
35 let data = new Uint8Array(kCapacityNumBytes + 1);
36
37 let {result, numBytes} = producer.writeData(data, {allOrNone: true});
38 assert_equals(result, Mojo.RESULT_OUT_OF_RANGE);
39 assert_equals(numBytes, 0);
40 }, "Write data all or none");
41
42 async_test((test) => {
43 let {producer, consumer} = createDataPipe();
44 let data = new Uint8Array(kCapacityNumBytes);
45
46 consumer.watch({readable: true}, test.step_func_done((result) => {
47 var {result, numBytes} = consumer.queryData();
48 assert_equals(result, Mojo.RESULT_OK);
49 assert_equals(numBytes, data.length);
50 }));
51 producer.writeData(data);
52 }, "Query data");
53
54 async_test((test) => {
55 let {producer, consumer} = createDataPipe();
56 let data = new Uint8Array(kCapacityNumBytes);
57 for (let i = 0; i < data.length; ++i)
58 data[i] = i;
59
60 consumer.watch({readable: true}, test.step_func_done((result) => {
61 var kDiscardNumBytes = data.length / 2;
62
63 var {result, numBytes} = consumer.discardData(kDiscardNumBytes);
64 assert_equals(result, Mojo.RESULT_OK);
65 assert_equals(numBytes, kDiscardNumBytes);
66
67 var {result, numBytes} = consumer.queryData();
68 assert_equals(result, Mojo.RESULT_OK);
69 assert_equals(numBytes, kDiscardNumBytes);
70
71 var buffer = new Uint8Array(kDiscardNumBytes);
72 var {result, numBytes} = consumer.readData(buffer);
73 assert_equals(result, Mojo.RESULT_OK);
74 assert_equals(numBytes, kDiscardNumBytes);
75 assert_array_equals(buffer, data.slice(kDiscardNumBytes));
76 }));
77 producer.writeData(data);
78 }, "Discard data");
79
80 async_test((test) => {
81 let {producer, consumer} = createDataPipe();
82 let data = new Uint8Array(kCapacityNumBytes);
83
84 consumer.watch({readable: true}, test.step_func_done((result) => {
85 var {result, numBytes} = consumer.discardData(data.length + 1, {allOrNone: t rue});
86 assert_equals(result, Mojo.RESULT_OUT_OF_RANGE);
87 assert_equals(numBytes, 0);
88 }));
89 producer.writeData(data);
90 }, "Discard data all or none");
91
92 async_test((test) => {
93 let {producer, consumer} = createDataPipe();
94 let data = new Uint8Array(kCapacityNumBytes);
95 for (let i = 0; i < data.length; ++i)
96 data[i] = i;
97
98 consumer.watch({readable: true}, test.step_func_done((result) => {
99 var buffer = new Uint8Array(data.length);
100 var {result, numBytes} = consumer.readData(buffer);
101 assert_equals(result, Mojo.RESULT_OK);
102 assert_equals(numBytes, data.length);
103 assert_array_equals(buffer, data);
104
105 var {result, numBytes} = consumer.queryData();
106 assert_equals(result, Mojo.RESULT_OK);
107 assert_equals(numBytes, 0);
108 }));
109 producer.writeData(data);
110 }, "Read data");
111
112 async_test((test) => {
113 let {producer, consumer} = createDataPipe();
114 let data = new Uint8Array(kCapacityNumBytes);
115
116 consumer.watch({readable: true}, test.step_func_done((result) => {
117 var buffer = new Uint8Array(data.length + 1);
118 var {result, numBytes} = consumer.readData(buffer, {allOrNone: true});
119 assert_equals(result, Mojo.RESULT_OUT_OF_RANGE);
120 assert_equals(numBytes, 0);
121 }));
122 producer.writeData(data);
123 }, "Read data all or none");
124
125 async_test((test) => {
126 let {producer, consumer} = createDataPipe();
127 let data = new Uint8Array(kCapacityNumBytes);
128 for (let i = 0; i < data.length; ++i)
129 data[i] = i;
130
131 consumer.watch({readable: true}, test.step_func_done((result) => {
132 var buffer = new Uint8Array(data.length);
133 var {result, numBytes} = consumer.readData(buffer, {peek: true});
134 assert_equals(result, Mojo.RESULT_OK);
135 assert_equals(numBytes, data.length);
136 assert_array_equals(buffer, data);
137
138 var {result, numBytes} = consumer.queryData();
139 assert_equals(result, Mojo.RESULT_OK);
140 assert_equals(numBytes, data.length);
141 }));
142 producer.writeData(data);
143 }, "Peek data");
144
145 </script>
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698