.then(function(stashedObjects) { test.assertEq(1, stashedObjects.length); test.assertEq('test id', stashedObjects[0].id); test.assertEq([1, 2, 3, 4], stashedObjects[0].data); test.assertEq(1, stashedObjects[0].stashed_handles.length); readAndClose(core, stashedObjects[0].stashed_handles[0]); });
function readAndClose(core, handle) { var result = core.readData(handle, core.READ_DATA_FLAG_NONE); test.assertEq(core.RESULT_OK, result.result); core.close(handle); test.assertEq(1, result.buffer.byteLength); test.assertEq('a'.charCodeAt(0), new Int8Array(result.buffer)[0]); }
]).then(test.callback(function(modules) { var connection = modules[0]; var core = modules[1]; var serviceProvider = modules[2]; test.assertTrue(!!connection.Connection); test.assertTrue(!!core.createMessagePipe); test.assertTrue(!!serviceProvider.connectToService); }));
function writeAndClose(core, handle) { var data = new Int8Array(1); data[0] = 'a'.charCodeAt(0); var result = core.writeData(handle, data, core.WRITE_DATA_FLAG_NONE); test.assertEq(core.RESULT_OK, result.result); test.assertEq(1, result.numBytes); core.close(handle); }
function testCommonModulesAreAvailable() { var binding = require('binding'); var sendRequest = require('sendRequest'); var lastError = require('lastError'); test.assertTrue(!!binding); test.assertTrue(!!sendRequest); test.assertTrue(!!lastError); test.succeed(); },
function testMojoModulesAreAvailable() { Promise.all([ requireAsync('mojo/public/js/connection'), requireAsync('mojo/public/js/core'), requireAsync('content/public/renderer/service_provider'), ]).then(test.callback(function(modules) { var connection = modules[0]; var core = modules[1]; var serviceProvider = modules[2]; test.assertTrue(!!connection.Connection); test.assertTrue(!!core.createMessagePipe); test.assertTrue(!!serviceProvider.connectToService); })); },
function testEnvironment() { test.assertTrue(!!$Array); test.assertTrue(!!$Function); test.assertTrue(!!$JSON); test.assertTrue(!!$Object); test.assertTrue(!!$RegExp); test.assertTrue(!!$String); test.assertTrue(!!privates); test.assertTrue(!!define); test.assertTrue(!!require); test.assertTrue(!!requireNative); test.assertTrue(!!requireAsync); test.assertEq(undefined, chrome.runtime.lastError); test.assertEq(undefined, chrome.extension.lastError); test.succeed(); },
function testTestBindings() { var counter = 0; function increment() { counter++; } test.runWithUserGesture(increment); test.runWithoutUserGesture(increment); test.runWithModuleSystem(increment); test.assertEq(3, counter); test.assertFalse(test.isProcessingUserGesture()); test.assertTrue(!!test.getApiFeatures()); test.assertEq(0, test.getApiDefinitions().length); test.succeed(); }
function testPromisesRun() { Promise.resolve().then(test.callbackPass()); },
return promise.then(function(sender) { test.assertEq(nextIndex, expectedIndex); nextIndex++; return sender; });
// Checks that attempting to start a send with |sender| fails. function sendAfterClose(sender) { test.assertThrows(sender.send, sender, [], 'DataSender has been closed'); }
return sender.send(data).catch(function(result) { test.assertEq(expectedError, result.error); test.assertEq(expectedBytesSent, result.bytesSent); return sender; });
return sender.send(data).then(function(bytesSent) { test.assertEq(data.byteLength, bytesSent); return sender; });
sender.then(function(sender) { test.assertThrows( sender.cancel, sender, [], 'Cancel already in progress'); test.assertThrows(sender.send, sender, [], 'Cancel in progress'); });