| Index: chrome/renderer/extensions/utils_unittest.cc
|
| diff --git a/chrome/renderer/extensions/utils_unittest.cc b/chrome/renderer/extensions/utils_unittest.cc
|
| index 3a718ddccd14a4477469f25e7566a2054f5a8f7c..7145d431aaa6d1ac31a6b5d9fb3d966b9bd98836 100644
|
| --- a/chrome/renderer/extensions/utils_unittest.cc
|
| +++ b/chrome/renderer/extensions/utils_unittest.cc
|
| @@ -119,5 +119,44 @@ TEST_F(UtilsUnittest, SuperClass) {
|
| context_->module_system()->Require("test");
|
| }
|
|
|
| +TEST_F(UtilsUnittest, DeepCopy) {
|
| + ModuleSystem::NativesEnabledScope natives_enabled_scope(
|
| + context_->module_system());
|
| + RegisterTestModule(
|
| + "var nested = {\n"
|
| + " string: 'abc',\n"
|
| + " _null: null\n"
|
| + "};\n"
|
| + "var top = {\n"
|
| + " array: [1, 'abc', nested],\n"
|
| + " uint8array: new Uint8Array([1,2,3])\n"
|
| + "};\n"
|
| + "\n"
|
| + "var copy = utils.deepCopy(top);\n"
|
| + "// Ensure that the copy is not referencing to the original.\n"
|
| + "AssertTrue(copy !== top);\n"
|
| + "AssertTrue(copy.array !== top.array);\n"
|
| + "AssertTrue(copy.array[2] !== top.array[2]);\n"
|
| + "AssertTrue(copy.uint8array !== top.uint8array);\n"
|
| + "AssertTrue(copy.uint8array.buffer !== top.uint8array.buffer);\n"
|
| + "\n"
|
| + "// Check |copy|.\n"
|
| + "AssertTrue(Object.keys(copy) == 'array,uint8array');\n"
|
| + "\n"
|
| + "// Check |copy.array|.\n"
|
| + "AssertTrue(Array.isArray(copy.array));\n"
|
| + "AssertTrue(copy.array.length === 3);\n"
|
| + "AssertTrue(copy.array[0] === 1);\n"
|
| + "AssertTrue(copy.array[1] === 'abc');\n"
|
| + "\n"
|
| + "// Check |copy.array[2]|.\n"
|
| + "var copyNested = copy.array[2];\n"
|
| + "AssertTrue(Object.keys(copyNested) == 'string,_null');\n"
|
| + "AssertTrue(copyNested.string === 'abc');\n"
|
| + "AssertTrue(copyNested._null === null);\n");
|
| +
|
| + context_->module_system()->Require("test");
|
| +}
|
| +
|
| } // namespace
|
| } // namespace extensions
|
|
|