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

Side by Side Diff: chrome/renderer/extensions/safe_builtins_unittest.cc

Issue 359413004: Add support for using AMD modules from extensions modules. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cross-context tests Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/test/base/module_system_test.h" 5 #include "chrome/test/base/module_system_test.h"
6 6
7 namespace extensions { 7 namespace extensions {
8 namespace { 8 namespace {
9 9
10 class SafeBuiltinsUnittest : public ModuleSystemTest { 10 class SafeBuiltinsUnittest : public ModuleSystemTest {
11 }; 11 };
12 12
13 TEST_F(SafeBuiltinsUnittest, TestNotOriginalObject) { 13 TEST_F(SafeBuiltinsUnittest, TestNotOriginalObject) {
14 ModuleSystem::NativesEnabledScope natives_enabled_scope( 14 ModuleSystem::NativesEnabledScope natives_enabled_scope(env_.module_system());
15 context_->module_system()); 15 env_.RegisterModule("test",
16 RegisterModule("test", 16 "var assert = requireNative('assert');\n"
17 "var assert = requireNative('assert');\n" 17 "Array.foo = 10;\n"
18 "Array.foo = 10;\n" 18 "assert.AssertTrue(!$Array.hasOwnProperty('foo'));\n");
19 "assert.AssertTrue(!$Array.hasOwnProperty('foo'));\n" 19 env_.module_system()->Require("test");
20 );
21 context_->module_system()->Require("test");
22 } 20 }
23 21
24 TEST_F(SafeBuiltinsUnittest, TestSelf) { 22 TEST_F(SafeBuiltinsUnittest, TestSelf) {
25 ModuleSystem::NativesEnabledScope natives_enabled_scope( 23 ModuleSystem::NativesEnabledScope natives_enabled_scope(env_.module_system());
26 context_->module_system()); 24 env_.RegisterModule("test",
27 RegisterModule("test", 25 "var assert = requireNative('assert');\n"
28 "var assert = requireNative('assert');\n" 26 "Array.foo = 10;\n"
29 "Array.foo = 10;\n" 27 "assert.AssertTrue($Array.self.foo == 10);\n"
30 "assert.AssertTrue($Array.self.foo == 10);\n" 28 "var arr = $Array.self(1);\n"
31 "var arr = $Array.self(1);\n" 29 "assert.AssertTrue(arr.length == 1);\n"
32 "assert.AssertTrue(arr.length == 1);\n" 30 "assert.AssertTrue(arr[0] === undefined);\n");
33 "assert.AssertTrue(arr[0] === undefined);\n" 31 env_.module_system()->Require("test");
34 );
35 context_->module_system()->Require("test");
36 } 32 }
37 33
38 TEST_F(SafeBuiltinsUnittest, TestStaticFunction) { 34 TEST_F(SafeBuiltinsUnittest, TestStaticFunction) {
39 ModuleSystem::NativesEnabledScope natives_enabled_scope( 35 ModuleSystem::NativesEnabledScope natives_enabled_scope(env_.module_system());
40 context_->module_system()); 36 env_.RegisterModule("test",
41 RegisterModule("test", 37 "var assert = requireNative('assert');\n"
42 "var assert = requireNative('assert');\n" 38 "Object.keys = function() {throw new Error()};\n"
43 "Object.keys = function() {throw new Error()};\n" 39 "var obj = {a: 10};\n"
44 "var obj = {a: 10};\n" 40 "var keys = $Object.keys(obj);\n"
45 "var keys = $Object.keys(obj);\n" 41 "assert.AssertTrue(keys.length == 1);\n"
46 "assert.AssertTrue(keys.length == 1);\n" 42 "assert.AssertTrue(keys[0] == 'a');\n");
47 "assert.AssertTrue(keys[0] == 'a');\n" 43 env_.module_system()->Require("test");
48 );
49 context_->module_system()->Require("test");
50 } 44 }
51 45
52 TEST_F(SafeBuiltinsUnittest, TestInstanceMethod) { 46 TEST_F(SafeBuiltinsUnittest, TestInstanceMethod) {
53 ModuleSystem::NativesEnabledScope natives_enabled_scope( 47 ModuleSystem::NativesEnabledScope natives_enabled_scope(env_.module_system());
54 context_->module_system()); 48 env_.RegisterModule("test",
55 RegisterModule("test", 49 "var assert = requireNative('assert');\n"
56 "var assert = requireNative('assert');\n" 50 "Array.prototype.push = function() {throw new Error();}\n"
57 "Array.prototype.push = function() {throw new Error();}\n" 51 "var arr = []\n"
58 "var arr = []\n" 52 "$Array.push(arr, 1);\n"
59 "$Array.push(arr, 1);\n" 53 "assert.AssertTrue(arr.length == 1);\n"
60 "assert.AssertTrue(arr.length == 1);\n" 54 "assert.AssertTrue(arr[0] == 1);\n");
61 "assert.AssertTrue(arr[0] == 1);\n" 55 env_.module_system()->Require("test");
62 );
63 context_->module_system()->Require("test");
64 } 56 }
65 57
66 // NOTE: JSON is already tested in ExtensionApiTest.Messaging, via 58 // NOTE: JSON is already tested in ExtensionApiTest.Messaging, via
67 // chrome/test/data/extensions/api_test/messaging/connect/page.js. 59 // chrome/test/data/extensions/api_test/messaging/connect/page.js.
68 60
69 } // namespace 61 } // namespace
70 } // namespace extensions 62 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698