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

Side by Side Diff: chrome/test/data/extensions/api_test/idltest/binary_data/binary.js

Issue 10161038: Allow serialization of ArrayBuffer params in extension/apps API methods (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup and rebased Created 8 years, 7 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 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 var assertEq = chrome.test.assertEq;
6 var assertTrue = chrome.test.assertTrue;
7 var callbackPass = chrome.test.callbackPass;
8
9 function makeCompareCallback(buf) {
10 return function(array) {
11 var view = new Uint8Array(buf);
Matt Perry 2012/05/04 19:22:21 view is unused
asargent_no_longer_on_chrome 2012/05/04 22:42:22 Removed, good catch.
12 assertEq(buf.byteLength, array.length);
13 for (var i = 0; i < buf.length; i++) {
14 assertEq(buf[i], array[i]);
15 }
16 };
17 }
18
19 function makeBuffer() {
20 var bufferSize = 128;
21 var ab = new ArrayBuffer(bufferSize);
22 var view = new Uint8Array(ab);
23 for (var i = 0; i < bufferSize; i++) {
24 view[i] = i+3;
25 }
26 return view;
27 }
28
29 var tests = [
30 function sendBuffer() {
31 var view = makeBuffer();
32 chrome.experimental.idltest.sendArrayBuffer(
33 view.buffer, callbackPass(makeCompareCallback(view.buffer)));
34 },
35
36 function sendBufferView() {
37 var view = makeBuffer();
38 chrome.experimental.idltest.sendArrayBufferView(
39 view, callbackPass(makeCompareCallback(view.buffer)));
40 },
41
42 function sendBufferSlice() {
43 var view = makeBuffer();
44 var bufferSlice = view.buffer.slice(64);
45 assertEq(64, bufferSlice.byteLength);
46 chrome.experimental.idltest.sendArrayBuffer(
47 bufferSlice, callbackPass(makeCompareCallback(bufferSlice)));
48 },
49
50 function getBuffer() {
51 chrome.experimental.idltest.getArrayBuffer(callbackPass(function(buffer) {
52 assertTrue(buffer.__proto__ == (new ArrayBuffer()).__proto__);
53 var view = new Uint8Array(buffer);
54 var expected = "hello world";
55 assertEq(view.byteLength, expected.length);
56 for (var i = 0; i < view.byteLength; i++) {
57 assertTrue(expected[i] == String.fromCharCode(view[i]));
58 }
59 }));
60 }
61 ];
62
63 chrome.test.runTests(tests);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698