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

Unified 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: fixes for review feedback and browser test failures Created 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/extensions/api_test/idltest/binary_data/binary.js
diff --git a/chrome/test/data/extensions/api_test/idltest/binary_data/binary.js b/chrome/test/data/extensions/api_test/idltest/binary_data/binary.js
new file mode 100644
index 0000000000000000000000000000000000000000..950db1c1c2fd30ba77b2979c4f26565b04e258fc
--- /dev/null
+++ b/chrome/test/data/extensions/api_test/idltest/binary_data/binary.js
@@ -0,0 +1,62 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+var assertEq = chrome.test.assertEq;
+var assertTrue = chrome.test.assertTrue;
+var callbackPass = chrome.test.callbackPass;
+
+function makeCompareCallback(buf) {
+ return function(array) {
+ assertEq(buf.byteLength, array.length);
+ for (var i = 0; i < buf.length; i++) {
+ assertEq(buf[i], array[i]);
+ }
+ };
+}
+
+function makeBuffer() {
+ var bufferSize = 128;
+ var ab = new ArrayBuffer(bufferSize);
+ var view = new Uint8Array(ab);
+ for (var i = 0; i < bufferSize; i++) {
+ view[i] = i+3;
+ }
+ return view;
+}
+
+var tests = [
+ function sendBuffer() {
+ var view = makeBuffer();
+ chrome.experimental.idltest.sendArrayBuffer(
+ view.buffer, callbackPass(makeCompareCallback(view.buffer)));
+ },
+
+ function sendBufferView() {
+ var view = makeBuffer();
+ chrome.experimental.idltest.sendArrayBufferView(
+ view, callbackPass(makeCompareCallback(view.buffer)));
+ },
+
+ function sendBufferSlice() {
+ var view = makeBuffer();
+ var bufferSlice = view.buffer.slice(64);
+ assertEq(64, bufferSlice.byteLength);
+ chrome.experimental.idltest.sendArrayBuffer(
+ bufferSlice, callbackPass(makeCompareCallback(bufferSlice)));
+ },
+
+ function getBuffer() {
+ chrome.experimental.idltest.getArrayBuffer(callbackPass(function(buffer) {
+ assertTrue(buffer.__proto__ == (new ArrayBuffer()).__proto__);
+ var view = new Uint8Array(buffer);
+ var expected = "hello world";
+ assertEq(view.byteLength, expected.length);
+ for (var i = 0; i < view.byteLength; i++) {
+ assertTrue(expected[i] == String.fromCharCode(view[i]));
+ }
+ }));
+ }
+];
+
+chrome.test.runTests(tests);

Powered by Google App Engine
This is Rietveld 408576698