// Copyright 2014 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. /** * Unit tests for the keep-alive client. * * They are launched by extensions/renderer/mojo/keep_alive_client_unittest.cc. */ var test = require('test').binding; var unittestBindings = require('test_environment_specific_bindings'); var utils = require('utils'); var shouldSucceed; // We need to set custom bindings for a real API and serial.getDevices has a // simple signature. var binding = require('binding').Binding.create('serial'); binding.registerCustomHook(function(bindingsAPI) { bindingsAPI.apiFunctions.setHandleRequestWithPromise('getDevices', function() { if (shouldSucceed) return Promise.resolve([]); else return Promise.reject(); }); }); var apiFunction = binding.generate().getDevices; unittestBindings.exportTests([ // Test that a keep alive is created and destroyed for a successful API call. function testKeepAliveWithSuccessfulCall() { shouldSucceed = true; utils.promise(apiFunction).then(test.succeed, test.fail); }, // Test that a keep alive is created and destroyed for an unsuccessful API // call. function testKeepAliveWithError() { shouldSucceed = false; utils.promise(apiFunction).then(test.fail, test.succeed); }, ], test.runTests, exports);