Chromium Code Reviews

Side by Side Diff: mojo/public/js/bindings/core_unittests.js

Issue 703273002: Update mojo sdk to rev 04a510fb37db10642e156957f9b2c11c2f6442ac (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix content/child -> mojo/common linking Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
« no previous file with comments | « mojo/public/js/bindings/core.js ('k') | mojo/public/js/bindings/router.js » ('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 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 define([
6 "gin/test/expect",
7 "mojo/public/js/bindings/core",
8 "gc",
9 ], function(expect, core, gc) {
10 runWithMessagePipe(testNop);
11 runWithMessagePipe(testReadAndWriteMessage);
12 runWithMessagePipeWithOptions(testNop);
13 runWithMessagePipeWithOptions(testReadAndWriteMessage);
14 runWithDataPipe(testNop);
15 runWithDataPipe(testReadAndWriteDataPipe);
16 runWithDataPipeWithOptions(testNop);
17 runWithDataPipeWithOptions(testReadAndWriteDataPipe);
18 testHandleToString();
19 gc.collectGarbage(); // should not crash
20 this.result = "PASS";
21
22 function runWithMessagePipe(test) {
23 var pipe = core.createMessagePipe();
24 expect(pipe.result).toBe(core.RESULT_OK);
25
26 test(pipe);
27
28 expect(core.close(pipe.handle0)).toBe(core.RESULT_OK);
29 expect(core.close(pipe.handle1)).toBe(core.RESULT_OK);
30 }
31
32 function runWithMessagePipeWithOptions(test) {
33 var pipe = core.createMessagePipe({
34 flags: core.CREATE_MESSAGE_PIPE_OPTIONS_FLAG_NONE
35 });
36 expect(pipe.result).toBe(core.RESULT_OK);
37
38 test(pipe);
39
40 expect(core.close(pipe.handle0)).toBe(core.RESULT_OK);
41 expect(core.close(pipe.handle1)).toBe(core.RESULT_OK);
42 }
43
44 function runWithDataPipe(test) {
45 var pipe = core.createDataPipe();
46 expect(pipe.result).toBe(core.RESULT_OK);
47
48 test(pipe);
49
50 expect(core.close(pipe.producerHandle)).toBe(core.RESULT_OK);
51 expect(core.close(pipe.consumerHandle)).toBe(core.RESULT_OK);
52 }
53
54 function runWithDataPipeWithOptions(test) {
55 var pipe = core.createDataPipe({
56 flags: core.CREATE_DATA_PIPE_OPTIONS_FLAG_NONE,
57 elementNumBytes: 1,
58 capacityNumBytes: 64
59 });
60 expect(pipe.result).toBe(core.RESULT_OK);
61
62 test(pipe);
63
64 expect(core.close(pipe.producerHandle)).toBe(core.RESULT_OK);
65 expect(core.close(pipe.consumerHandle)).toBe(core.RESULT_OK);
66 }
67
68 function testNop(pipe) {
69 }
70
71 function testReadAndWriteMessage(pipe) {
72 var senderData = new Uint8Array(42);
73 for (var i = 0; i < senderData.length; ++i) {
74 senderData[i] = i * i;
75 }
76
77 var result = core.writeMessage(
78 pipe.handle0, senderData, [],
79 core.WRITE_MESSAGE_FLAG_NONE);
80
81 expect(result).toBe(core.RESULT_OK);
82
83 var read = core.readMessage(
84 pipe.handle1, core.READ_MESSAGE_FLAG_NONE);
85
86 expect(read.result).toBe(core.RESULT_OK);
87 expect(read.buffer.byteLength).toBe(42);
88 expect(read.handles.length).toBe(0);
89
90 var memory = new Uint8Array(read.buffer);
91 for (var i = 0; i < memory.length; ++i)
92 expect(memory[i]).toBe((i * i) & 0xFF);
93 }
94
95 function testReadAndWriteDataPipe(pipe) {
96 var senderData = new Uint8Array(42);
97 for (var i = 0; i < senderData.length; ++i) {
98 senderData[i] = i * i;
99 }
100
101 var write = core.writeData(
102 pipe.producerHandle, senderData,
103 core.WRITE_DATA_FLAG_ALL_OR_NONE);
104
105 expect(write.result).toBe(core.RESULT_OK);
106 expect(write.numBytes).toBe(42);
107
108 var read = core.readData(
109 pipe.consumerHandle, core.READ_DATA_FLAG_ALL_OR_NONE);
110
111 expect(read.result).toBe(core.RESULT_OK);
112 expect(read.buffer.byteLength).toBe(42);
113
114 var memory = new Uint8Array(read.buffer);
115 for (var i = 0; i < memory.length; ++i)
116 expect(memory[i]).toBe((i * i) & 0xFF);
117 }
118
119 function testHandleToString() {
120 var pipe = core.createDataPipe();
121 expect(pipe.consumerHandle.toString).toBeDefined();
122
123 var openHandleRE = /^\[mojo\:\:Handle \d+\]$/ // e.g. "[mojo::Handle 123]"
124 var openHandleString = pipe.consumerHandle.toString();
125 expect(openHandleString.match(openHandleRE)[0]).toEqual(openHandleString);
126
127 expect(core.close(pipe.producerHandle)).toBe(core.RESULT_OK);
128 expect(core.close(pipe.consumerHandle)).toBe(core.RESULT_OK);
129
130 expect(pipe.consumerHandle.toString()).toEqual("[mojo::Handle null]");
131 }
132
133 });
OLDNEW
« no previous file with comments | « mojo/public/js/bindings/core.js ('k') | mojo/public/js/bindings/router.js » ('j') | no next file with comments »

Powered by Google App Engine