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

Side by Side Diff: extensions/renderer/utils_unittest.cc

Issue 2936213002: [Extensions] Don't require() a module for calling a method (Closed)
Patch Set: lazyboy's Created 3 years, 6 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 unified diff | Download patch
« no previous file with comments | « extensions/renderer/module_system.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/strings/stringprintf.h" 5 #include "base/strings/stringprintf.h"
6 #include "extensions/grit/extensions_renderer_resources.h" 6 #include "extensions/grit/extensions_renderer_resources.h"
7 #include "extensions/renderer/module_system_test.h" 7 #include "extensions/renderer/module_system_test.h"
8 #include "gin/dictionary.h" 8 #include "gin/dictionary.h"
9 9
10 namespace extensions { 10 namespace extensions {
11 namespace { 11 namespace {
12 12
13 class UtilsUnittest : public ModuleSystemTest { 13 class UtilsUnittest : public ModuleSystemTest {
14 private: 14 public:
15 void SetUp() override { 15 void SetUp() override {
16 ModuleSystemTest::SetUp(); 16 ModuleSystemTest::SetUp();
17 17
18 env()->RegisterModule("utils", IDR_UTILS_JS); 18 env()->RegisterModule("utils", IDR_UTILS_JS);
19 env()->RegisterTestFile("utils_unittest", "utils_unittest.js"); 19 env()->RegisterTestFile("utils_unittest", "utils_unittest.js");
20 env()->OverrideNativeHandler("schema_registry", 20 env()->OverrideNativeHandler("schema_registry",
21 "exports.$set('GetSchema', function() {});"); 21 "exports.$set('GetSchema', function() {});");
22 env()->OverrideNativeHandler("logging", 22 env()->OverrideNativeHandler("logging",
23 "exports.$set('CHECK', function() {});\n" 23 "exports.$set('CHECK', function() {});\n"
24 "exports.$set('DCHECK', function() {});\n" 24 "exports.$set('DCHECK', function() {});\n"
25 "exports.$set('WARNING', function() {});"); 25 "exports.$set('WARNING', function() {});");
26 env()->OverrideNativeHandler("v8_context", ""); 26 env()->OverrideNativeHandler("v8_context", "");
27 gin::Dictionary chrome(env()->isolate(), env()->CreateGlobal("chrome")); 27 gin::Dictionary chrome(env()->isolate(), env()->CreateGlobal("chrome"));
28 gin::Dictionary chrome_runtime( 28 gin::Dictionary chrome_runtime(
29 gin::Dictionary::CreateEmpty(env()->isolate())); 29 gin::Dictionary::CreateEmpty(env()->isolate()));
30 chrome.Set("runtime", chrome_runtime); 30 chrome.Set("runtime", chrome_runtime);
31 } 31 }
32
33 void RunTest(const std::string& test_name) { RunTestImpl(test_name, false); }
34
35 void RunTestWithPromises(const std::string& test_name) {
36 RunTestImpl(test_name, true);
37 }
38
39 private:
40 void RunTestImpl(const std::string& test_name, bool run_promises) {
41 ModuleSystem::NativesEnabledScope natives_enabled_scope(
42 env()->module_system());
43 ASSERT_FALSE(env()
44 ->module_system()
45 ->Require("utils_unittest")
46 .ToLocalChecked()
47 .IsEmpty());
48 env()->module_system()->CallModuleMethodSafe("utils_unittest", test_name);
49 if (run_promises)
50 RunResolvedPromises();
51 }
32 }; 52 };
33 53
34 TEST_F(UtilsUnittest, TestNothing) { 54 TEST_F(UtilsUnittest, TestNothing) {
35 ExpectNoAssertionsMade(); 55 ExpectNoAssertionsMade();
36 } 56 }
37 57
38 TEST_F(UtilsUnittest, SuperClass) { 58 TEST_F(UtilsUnittest, SuperClass) {
39 ModuleSystem::NativesEnabledScope natives_enabled_scope( 59 RunTest("testSuperClass");
40 env()->module_system());
41 env()->module_system()->CallModuleMethodSafe("utils_unittest",
42 "testSuperClass");
43 } 60 }
44 61
45 TEST_F(UtilsUnittest, PromiseNoResult) { 62 TEST_F(UtilsUnittest, PromiseNoResult) {
46 ModuleSystem::NativesEnabledScope natives_enabled_scope( 63 RunTestWithPromises("testPromiseNoResult");
47 env()->module_system());
48 env()->module_system()->CallModuleMethodSafe("utils_unittest",
49 "testPromiseNoResult");
50 RunResolvedPromises();
51 } 64 }
52 65
53 TEST_F(UtilsUnittest, PromiseOneResult) { 66 TEST_F(UtilsUnittest, PromiseOneResult) {
54 ModuleSystem::NativesEnabledScope natives_enabled_scope( 67 RunTestWithPromises("testPromiseOneResult");
55 env()->module_system());
56 env()->module_system()->CallModuleMethodSafe("utils_unittest",
57 "testPromiseOneResult");
58 RunResolvedPromises();
59 } 68 }
60 69
61 TEST_F(UtilsUnittest, PromiseTwoResults) { 70 TEST_F(UtilsUnittest, PromiseTwoResults) {
62 ModuleSystem::NativesEnabledScope natives_enabled_scope( 71 RunTestWithPromises("testPromiseTwoResults");
63 env()->module_system());
64 env()->module_system()->CallModuleMethodSafe("utils_unittest",
65 "testPromiseTwoResults");
66 RunResolvedPromises();
67 } 72 }
68 73
69 TEST_F(UtilsUnittest, PromiseError) { 74 TEST_F(UtilsUnittest, PromiseError) {
70 ModuleSystem::NativesEnabledScope natives_enabled_scope( 75 RunTestWithPromises("testPromiseError");
71 env()->module_system());
72 env()->module_system()->CallModuleMethodSafe("utils_unittest",
73 "testPromiseError");
74 RunResolvedPromises();
75 } 76 }
76 77
77 } // namespace 78 } // namespace
78 } // namespace extensions 79 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/renderer/module_system.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698