Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/test/base/module_system_test.h" | 6 #include "chrome/test/base/module_system_test.h" |
| 7 #include "extensions/renderer/module_system.h" | 7 #include "extensions/renderer/module_system.h" |
| 8 | 8 |
| 9 // TODO(cduvall/kalman): Put this file in extensions namespace. | 9 // TODO(cduvall/kalman): Put this file in extensions namespace. |
| 10 using extensions::ModuleSystem; | 10 using extensions::ModuleSystem; |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 266 | 266 |
| 267 TEST_F(ModuleSystemTest, TestOverrideNonExistentNativeHandler) { | 267 TEST_F(ModuleSystemTest, TestOverrideNonExistentNativeHandler) { |
| 268 ModuleSystem::NativesEnabledScope natives_enabled_scope( | 268 ModuleSystem::NativesEnabledScope natives_enabled_scope( |
| 269 context_->module_system()); | 269 context_->module_system()); |
| 270 OverrideNativeHandler("thing", "exports.x = 5;"); | 270 OverrideNativeHandler("thing", "exports.x = 5;"); |
| 271 RegisterModule("test", | 271 RegisterModule("test", |
| 272 "var assert = requireNative('assert');" | 272 "var assert = requireNative('assert');" |
| 273 "assert.AssertTrue(requireNative('thing').x == 5);"); | 273 "assert.AssertTrue(requireNative('thing').x == 5);"); |
| 274 context_->module_system()->Require("test"); | 274 context_->module_system()->Require("test"); |
| 275 } | 275 } |
| 276 | |
| 277 TEST_F(ModuleSystemTest, TestRequireAsync) { | |
| 278 ModuleSystem::NativesEnabledScope natives_enabled_scope( | |
| 279 context_->module_system()); | |
| 280 RegisterModule("add", | |
| 281 "define('add', [], function() {" | |
| 282 " return { Add: function(x, y) { return x + y; } };" | |
| 283 "});"); | |
| 284 RegisterModule("math", | |
| 285 "define('math', ['add'], function(add) {" | |
| 286 " return { Add: add.Add };" | |
| 287 "});"); | |
| 288 RegisterModule("test", | |
| 289 "requireAsync('math').then(function(math) {" | |
|
not at google - send to devlin
2014/07/02 22:07:45
could you also test
- a chain of requireAsync call
Sam McNally
2014/07/03 10:56:53
Done.
Sam McNally
2014/07/07 05:58:37
Added some cross-context tests too.
| |
| 290 " requireNative('assert').AssertTrue(math.Add(3, 5) == 8);" | |
| 291 "});"); | |
| 292 context_->module_system()->Require("test"); | |
| 293 | |
| 294 // The requireAsync promise is resolved asynchronously so we need to let it | |
| 295 // run. | |
| 296 isolate_holder_.isolate()->RunMicrotasks(); | |
| 297 } | |
| OLD | NEW |