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

Unified 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 side-by-side diff with in-line comments
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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/mojo/data-pipe.html
diff --git a/third_party/WebKit/LayoutTests/mojo/data-pipe.html b/third_party/WebKit/LayoutTests/mojo/data-pipe.html
new file mode 100644
index 0000000000000000000000000000000000000000..5298cbdb450142c459ddb771dcdbfefe51c9b2f4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/mojo/data-pipe.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<title>Mojo data pipe tests</title>
+<script src="../resources/testharness.js"></script>
+<script src="../resources/testharnessreport.js"></script>
+<script>
+
+let kElementNumBytes = 1;
+let kCapacityNumBytes = 64;
+
+function createDataPipe() {
+ return Mojo.createDataPipe({
+ elementNumBytes: kElementNumBytes,
+ capacityNumBytes: kCapacityNumBytes
+ });
+};
+
+test(() => {
+ let {result, producer, consumer} = createDataPipe();
+ assert_equals(result, Mojo.RESULT_OK);
+ assert_true(producer instanceof MojoHandle);
+ assert_true(consumer instanceof MojoHandle);
+}, "Create data pipe");
+
+test(() => {
+ let {producer, consumer} = createDataPipe();
+ let data = new Uint8Array(kCapacityNumBytes);
+
+ let {result, numBytes} = producer.writeData(data);
+ assert_equals(result, Mojo.RESULT_OK);
+ assert_equals(numBytes, data.length);
+}, "Write data");
+
+test(() => {
+ let {producer, consumer} = createDataPipe();
+ let data = new Uint8Array(kCapacityNumBytes + 1);
+
+ let {result, numBytes} = producer.writeData(data, {allOrNone: true});
+ assert_equals(result, Mojo.RESULT_OUT_OF_RANGE);
+ assert_equals(numBytes, 0);
+}, "Write data all or none");
+
+async_test((test) => {
+ let {producer, consumer} = createDataPipe();
+ let data = new Uint8Array(kCapacityNumBytes);
+
+ consumer.watch({readable: true}, test.step_func_done((result) => {
+ var {result, numBytes} = consumer.queryData();
+ assert_equals(result, Mojo.RESULT_OK);
+ assert_equals(numBytes, data.length);
+ }));
+ producer.writeData(data);
+}, "Query data");
+
+async_test((test) => {
+ let {producer, consumer} = createDataPipe();
+ let data = new Uint8Array(kCapacityNumBytes);
+ for (let i = 0; i < data.length; ++i)
+ data[i] = i;
+
+ consumer.watch({readable: true}, test.step_func_done((result) => {
+ var kDiscardNumBytes = data.length / 2;
+
+ var {result, numBytes} = consumer.discardData(kDiscardNumBytes);
+ assert_equals(result, Mojo.RESULT_OK);
+ assert_equals(numBytes, kDiscardNumBytes);
+
+ var {result, numBytes} = consumer.queryData();
+ assert_equals(result, Mojo.RESULT_OK);
+ assert_equals(numBytes, kDiscardNumBytes);
+
+ var buffer = new Uint8Array(kDiscardNumBytes);
+ var {result, numBytes} = consumer.readData(buffer);
+ assert_equals(result, Mojo.RESULT_OK);
+ assert_equals(numBytes, kDiscardNumBytes);
+ assert_array_equals(buffer, data.slice(kDiscardNumBytes));
+ }));
+ producer.writeData(data);
+}, "Discard data");
+
+async_test((test) => {
+ let {producer, consumer} = createDataPipe();
+ let data = new Uint8Array(kCapacityNumBytes);
+
+ consumer.watch({readable: true}, test.step_func_done((result) => {
+ var {result, numBytes} = consumer.discardData(data.length + 1, {allOrNone: true});
+ assert_equals(result, Mojo.RESULT_OUT_OF_RANGE);
+ assert_equals(numBytes, 0);
+ }));
+ producer.writeData(data);
+}, "Discard data all or none");
+
+async_test((test) => {
+ let {producer, consumer} = createDataPipe();
+ let data = new Uint8Array(kCapacityNumBytes);
+ for (let i = 0; i < data.length; ++i)
+ data[i] = i;
+
+ consumer.watch({readable: true}, test.step_func_done((result) => {
+ var buffer = new Uint8Array(data.length);
+ var {result, numBytes} = consumer.readData(buffer);
+ assert_equals(result, Mojo.RESULT_OK);
+ assert_equals(numBytes, data.length);
+ assert_array_equals(buffer, data);
+
+ var {result, numBytes} = consumer.queryData();
+ assert_equals(result, Mojo.RESULT_OK);
+ assert_equals(numBytes, 0);
+ }));
+ producer.writeData(data);
+}, "Read data");
+
+async_test((test) => {
+ let {producer, consumer} = createDataPipe();
+ let data = new Uint8Array(kCapacityNumBytes);
+
+ consumer.watch({readable: true}, test.step_func_done((result) => {
+ var buffer = new Uint8Array(data.length + 1);
+ var {result, numBytes} = consumer.readData(buffer, {allOrNone: true});
+ assert_equals(result, Mojo.RESULT_OUT_OF_RANGE);
+ assert_equals(numBytes, 0);
+ }));
+ producer.writeData(data);
+}, "Read data all or none");
+
+async_test((test) => {
+ let {producer, consumer} = createDataPipe();
+ let data = new Uint8Array(kCapacityNumBytes);
+ for (let i = 0; i < data.length; ++i)
+ data[i] = i;
+
+ consumer.watch({readable: true}, test.step_func_done((result) => {
+ var buffer = new Uint8Array(data.length);
+ var {result, numBytes} = consumer.readData(buffer, {peek: true});
+ assert_equals(result, Mojo.RESULT_OK);
+ assert_equals(numBytes, data.length);
+ assert_array_equals(buffer, data);
+
+ var {result, numBytes} = consumer.queryData();
+ assert_equals(result, Mojo.RESULT_OK);
+ assert_equals(numBytes, data.length);
+ }));
+ producer.writeData(data);
+}, "Peek data");
+
+</script>
« 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