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

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

Issue 1115563002: extensions/renderer: Use v8::Local instead of v8::Handle. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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_test.cc ('k') | extensions/renderer/native_handler.h » ('j') | 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/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "extensions/renderer/module_system.h" 6 #include "extensions/renderer/module_system.h"
7 #include "extensions/renderer/module_system_test.h" 7 #include "extensions/renderer/module_system_test.h"
8 #include "gin/modules/module_registry.h" 8 #include "gin/modules/module_registry.h"
9 9
10 namespace extensions { 10 namespace extensions {
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 } 134 }
135 env()->module_system()->Require("test"); 135 env()->module_system()->Require("test");
136 } 136 }
137 } 137 }
138 138
139 TEST_F(ModuleSystemTest, TestLazyField) { 139 TEST_F(ModuleSystemTest, TestLazyField) {
140 ModuleSystem::NativesEnabledScope natives_enabled_scope( 140 ModuleSystem::NativesEnabledScope natives_enabled_scope(
141 env()->module_system()); 141 env()->module_system());
142 env()->RegisterModule("lazy", "exports.x = 5;"); 142 env()->RegisterModule("lazy", "exports.x = 5;");
143 143
144 v8::Handle<v8::Object> object = env()->CreateGlobal("object"); 144 v8::Local<v8::Object> object = env()->CreateGlobal("object");
145 145
146 env()->module_system()->SetLazyField(object, "blah", "lazy", "x"); 146 env()->module_system()->SetLazyField(object, "blah", "lazy", "x");
147 147
148 env()->RegisterModule("test", 148 env()->RegisterModule("test",
149 "var assert = requireNative('assert');" 149 "var assert = requireNative('assert');"
150 "assert.AssertTrue(object.blah == 5);"); 150 "assert.AssertTrue(object.blah == 5);");
151 env()->module_system()->Require("test"); 151 env()->module_system()->Require("test");
152 } 152 }
153 153
154 TEST_F(ModuleSystemTest, TestLazyFieldYieldingObject) { 154 TEST_F(ModuleSystemTest, TestLazyFieldYieldingObject) {
155 ModuleSystem::NativesEnabledScope natives_enabled_scope( 155 ModuleSystem::NativesEnabledScope natives_enabled_scope(
156 env()->module_system()); 156 env()->module_system());
157 env()->RegisterModule( 157 env()->RegisterModule(
158 "lazy", 158 "lazy",
159 "var object = {};" 159 "var object = {};"
160 "object.__defineGetter__('z', function() { return 1; });" 160 "object.__defineGetter__('z', function() { return 1; });"
161 "object.x = 5;" 161 "object.x = 5;"
162 "object.y = function() { return 10; };" 162 "object.y = function() { return 10; };"
163 "exports.object = object;"); 163 "exports.object = object;");
164 164
165 v8::Handle<v8::Object> object = env()->CreateGlobal("object"); 165 v8::Local<v8::Object> object = env()->CreateGlobal("object");
166 166
167 env()->module_system()->SetLazyField(object, "thing", "lazy", "object"); 167 env()->module_system()->SetLazyField(object, "thing", "lazy", "object");
168 168
169 env()->RegisterModule("test", 169 env()->RegisterModule("test",
170 "var assert = requireNative('assert');" 170 "var assert = requireNative('assert');"
171 "assert.AssertTrue(object.thing.x == 5);" 171 "assert.AssertTrue(object.thing.x == 5);"
172 "assert.AssertTrue(object.thing.y() == 10);" 172 "assert.AssertTrue(object.thing.y() == 10);"
173 "assert.AssertTrue(object.thing.z == 1);"); 173 "assert.AssertTrue(object.thing.z == 1);");
174 env()->module_system()->Require("test"); 174 env()->module_system()->Require("test");
175 } 175 }
176 176
177 TEST_F(ModuleSystemTest, TestLazyFieldIsOnlyEvaledOnce) { 177 TEST_F(ModuleSystemTest, TestLazyFieldIsOnlyEvaledOnce) {
178 ModuleSystem::NativesEnabledScope natives_enabled_scope( 178 ModuleSystem::NativesEnabledScope natives_enabled_scope(
179 env()->module_system()); 179 env()->module_system());
180 env()->module_system()->RegisterNativeHandler( 180 env()->module_system()->RegisterNativeHandler(
181 "counter", 181 "counter",
182 scoped_ptr<NativeHandler>(new CounterNatives(env()->context()))); 182 scoped_ptr<NativeHandler>(new CounterNatives(env()->context())));
183 env()->RegisterModule("lazy", 183 env()->RegisterModule("lazy",
184 "requireNative('counter').Increment();" 184 "requireNative('counter').Increment();"
185 "exports.x = 5;"); 185 "exports.x = 5;");
186 186
187 v8::Handle<v8::Object> object = env()->CreateGlobal("object"); 187 v8::Local<v8::Object> object = env()->CreateGlobal("object");
188 188
189 env()->module_system()->SetLazyField(object, "x", "lazy", "x"); 189 env()->module_system()->SetLazyField(object, "x", "lazy", "x");
190 190
191 env()->RegisterModule("test", 191 env()->RegisterModule("test",
192 "var assert = requireNative('assert');" 192 "var assert = requireNative('assert');"
193 "var counter = requireNative('counter');" 193 "var counter = requireNative('counter');"
194 "assert.AssertTrue(counter.Get() == 0);" 194 "assert.AssertTrue(counter.Get() == 0);"
195 "object.x;" 195 "object.x;"
196 "assert.AssertTrue(counter.Get() == 1);" 196 "assert.AssertTrue(counter.Get() == 1);"
197 "object.x;" 197 "object.x;"
198 "assert.AssertTrue(counter.Get() == 1);"); 198 "assert.AssertTrue(counter.Get() == 1);");
199 env()->module_system()->Require("test"); 199 env()->module_system()->Require("test");
200 } 200 }
201 201
202 TEST_F(ModuleSystemTest, TestRequireNativesAfterLazyEvaluation) { 202 TEST_F(ModuleSystemTest, TestRequireNativesAfterLazyEvaluation) {
203 ModuleSystem::NativesEnabledScope natives_enabled_scope( 203 ModuleSystem::NativesEnabledScope natives_enabled_scope(
204 env()->module_system()); 204 env()->module_system());
205 env()->RegisterModule("lazy", "exports.x = 5;"); 205 env()->RegisterModule("lazy", "exports.x = 5;");
206 v8::Handle<v8::Object> object = env()->CreateGlobal("object"); 206 v8::Local<v8::Object> object = env()->CreateGlobal("object");
207 207
208 env()->module_system()->SetLazyField(object, "x", "lazy", "x"); 208 env()->module_system()->SetLazyField(object, "x", "lazy", "x");
209 env()->RegisterModule("test", 209 env()->RegisterModule("test",
210 "object.x;" 210 "object.x;"
211 "requireNative('assert').AssertTrue(true);"); 211 "requireNative('assert').AssertTrue(true);");
212 env()->module_system()->Require("test"); 212 env()->module_system()->Require("test");
213 } 213 }
214 214
215 TEST_F(ModuleSystemTest, TestTransitiveRequire) { 215 TEST_F(ModuleSystemTest, TestTransitiveRequire) {
216 ModuleSystem::NativesEnabledScope natives_enabled_scope( 216 ModuleSystem::NativesEnabledScope natives_enabled_scope(
217 env()->module_system()); 217 env()->module_system());
218 env()->RegisterModule("dependency", "exports.x = 5;"); 218 env()->RegisterModule("dependency", "exports.x = 5;");
219 env()->RegisterModule("lazy", "exports.output = require('dependency');"); 219 env()->RegisterModule("lazy", "exports.output = require('dependency');");
220 220
221 v8::Handle<v8::Object> object = env()->CreateGlobal("object"); 221 v8::Local<v8::Object> object = env()->CreateGlobal("object");
222 222
223 env()->module_system()->SetLazyField(object, "thing", "lazy", "output"); 223 env()->module_system()->SetLazyField(object, "thing", "lazy", "output");
224 224
225 env()->RegisterModule("test", 225 env()->RegisterModule("test",
226 "var assert = requireNative('assert');" 226 "var assert = requireNative('assert');"
227 "assert.AssertTrue(object.thing.x == 5);"); 227 "assert.AssertTrue(object.thing.x == 5);");
228 env()->module_system()->Require("test"); 228 env()->module_system()->Require("test");
229 } 229 }
230 230
231 TEST_F(ModuleSystemTest, TestModulesOnlyGetEvaledOnce) { 231 TEST_F(ModuleSystemTest, TestModulesOnlyGetEvaledOnce) {
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 "});"); 478 "});");
479 scoped_ptr<ModuleSystemTestEnvironment> other_env = CreateEnvironment(); 479 scoped_ptr<ModuleSystemTestEnvironment> other_env = CreateEnvironment();
480 gin::ModuleRegistry::From(env()->context()->v8_context())->AddBuiltinModule( 480 gin::ModuleRegistry::From(env()->context()->v8_context())->AddBuiltinModule(
481 env()->isolate(), "natives", other_env->module_system()->NewInstance()); 481 env()->isolate(), "natives", other_env->module_system()->NewInstance());
482 other_env->ShutdownModuleSystem(); 482 other_env->ShutdownModuleSystem();
483 env()->module_system()->Require("test"); 483 env()->module_system()->Require("test");
484 RunResolvedPromises(); 484 RunResolvedPromises();
485 } 485 }
486 486
487 } // namespace extensions 487 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/renderer/module_system_test.cc ('k') | extensions/renderer/native_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698