// Copyright 2015 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. 'use strict'; let mojoPrivate = require('mojoPrivate').binding; let test = require('test').binding; let unittestBindings = require('test_environment_specific_bindings'); unittestBindings.exportTests([ function testDefine() { mojoPrivate.define('testModule', [ 'mojo/public/js/codec', ], test.callbackPass(function(codec) { test.assertEq('function', typeof codec.Message); })); }, function testDefineRegistersModule() { mojoPrivate.define('testModule', ['dependency'], test.callbackPass(function(module) { test.assertEq(12345, module.result); })); mojoPrivate.define('dependency', test.callbackPass(function() { return {result: 12345}; })); }, function testDefineModuleDoesNotExist() { mojoPrivate.define('testModule', ['does not exist!'], test.fail); test.succeed(); }, function testRequireAsync() { mojoPrivate.requireAsync('mojo/public/js/codec').then( test.callbackPass(function(codec) { test.assertEq('function', typeof codec.Message); })); }, function testDefineAndRequire() { mojoPrivate.define('testModule', ['dependency'], test.callbackPass(function(module) { test.assertEq(12345, module.result); })); mojoPrivate.define('dependency', test.callbackPass(function() { return {result: 12345}; })); mojoPrivate.requireAsync('dependency').then( test.callbackPass(), test.fail); } ], test.runTests, exports);