| // 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. | 
 |  | 
 | #include "base/strings/stringprintf.h" | 
 | #include "extensions/renderer/module_system_test.h" | 
 | #include "gin/dictionary.h" | 
 | #include "grit/extensions_renderer_resources.h" | 
 |  | 
 | namespace extensions { | 
 | namespace { | 
 |  | 
 | class UtilsUnittest : public ModuleSystemTest { | 
 |  private: | 
 |   void SetUp() override { | 
 |     ModuleSystemTest::SetUp(); | 
 |  | 
 |     env()->RegisterModule("utils", IDR_UTILS_JS); | 
 |     env()->RegisterTestFile("utils_unittest", "utils_unittest.js"); | 
 |     env()->OverrideNativeHandler("schema_registry", | 
 |                                  "exports.GetSchema = function() {};"); | 
 |     env()->OverrideNativeHandler("logging", | 
 |                                  "exports.CHECK = function() {};\n" | 
 |                                  "exports.DCHECK = function() {};\n" | 
 |                                  "exports.WARNING = function() {};"); | 
 |     env()->OverrideNativeHandler("v8_context", ""); | 
 |     gin::Dictionary chrome(env()->isolate(), env()->CreateGlobal("chrome")); | 
 |     gin::Dictionary chrome_runtime( | 
 |         gin::Dictionary::CreateEmpty(env()->isolate())); | 
 |     chrome.Set("runtime", chrome_runtime); | 
 |   } | 
 | }; | 
 |  | 
 | TEST_F(UtilsUnittest, TestNothing) { | 
 |   ExpectNoAssertionsMade(); | 
 | } | 
 |  | 
 | TEST_F(UtilsUnittest, SuperClass) { | 
 |   ModuleSystem::NativesEnabledScope natives_enabled_scope( | 
 |       env()->module_system()); | 
 |   env()->module_system()->CallModuleMethod("utils_unittest", "testSuperClass"); | 
 | } | 
 |  | 
 | TEST_F(UtilsUnittest, PromiseNoResult) { | 
 |   ModuleSystem::NativesEnabledScope natives_enabled_scope( | 
 |       env()->module_system()); | 
 |   env()->module_system()->CallModuleMethod("utils_unittest", | 
 |                                            "testPromiseNoResult"); | 
 |   RunResolvedPromises(); | 
 | } | 
 |  | 
 | TEST_F(UtilsUnittest, PromiseOneResult) { | 
 |   ModuleSystem::NativesEnabledScope natives_enabled_scope( | 
 |       env()->module_system()); | 
 |   env()->module_system()->CallModuleMethod("utils_unittest", | 
 |                                            "testPromiseOneResult"); | 
 |   RunResolvedPromises(); | 
 | } | 
 |  | 
 | TEST_F(UtilsUnittest, PromiseTwoResults) { | 
 |   ModuleSystem::NativesEnabledScope natives_enabled_scope( | 
 |       env()->module_system()); | 
 |   env()->module_system()->CallModuleMethod("utils_unittest", | 
 |                                            "testPromiseTwoResults"); | 
 |   RunResolvedPromises(); | 
 | } | 
 |  | 
 | TEST_F(UtilsUnittest, PromiseError) { | 
 |   ModuleSystem::NativesEnabledScope natives_enabled_scope( | 
 |       env()->module_system()); | 
 |   env()->module_system()->CallModuleMethod("utils_unittest", | 
 |                                            "testPromiseError"); | 
 |   RunResolvedPromises(); | 
 | } | 
 |  | 
 | }  // namespace | 
 | }  // namespace extensions |