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

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/ScriptModuleTest.cpp

Issue 2781303002: [ES6 modules] Introduce ScriptModuleHash (Closed)
Patch Set: add_tests Created 3 years, 8 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
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "bindings/core/v8/ScriptModule.h" 5 #include "bindings/core/v8/ScriptModule.h"
6 6
7 #include "bindings/core/v8/V8BindingForTesting.h" 7 #include "bindings/core/v8/V8BindingForTesting.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "v8/include/v8.h" 9 #include "v8/include/v8.h"
10 10
11 namespace blink { 11 namespace blink {
12 12
13 namespace { 13 namespace {
14 14
15 TEST(ScriptModuleTest, compileSuccess) { 15 TEST(ScriptModuleTest, compileSuccess) {
16 V8TestingScope scope; 16 V8TestingScope scope;
17 ScriptModule module = 17 ScriptModule module =
18 ScriptModule::compile(scope.isolate(), "export const a = 42;", "foo.js"); 18 ScriptModule::compile(scope.isolate(), "export const a = 42;", "foo.js");
19 ASSERT_FALSE(module.isNull()); 19 ASSERT_FALSE(module.isNull());
20 } 20 }
21 21
22 TEST(ScriptModuleTest, compileFail) { 22 TEST(ScriptModuleTest, compileFail) {
23 V8TestingScope scope; 23 V8TestingScope scope;
24 ScriptModule module = 24 ScriptModule module =
25 ScriptModule::compile(scope.isolate(), "123 = 456", "foo.js"); 25 ScriptModule::compile(scope.isolate(), "123 = 456", "foo.js");
26 ASSERT_TRUE(module.isNull()); 26 ASSERT_TRUE(module.isNull());
27 } 27 }
28 28
29 TEST(ScriptModuleTest, equalAndHash) {
30 V8TestingScope scope;
31
32 ScriptModule moduleNull;
33 ScriptModule moduleA =
34 ScriptModule::compile(scope.isolate(), "export const a = 'a';", "a.js");
35 ASSERT_FALSE(moduleA.isNull());
36 ScriptModule moduleB =
37 ScriptModule::compile(scope.isolate(), "export const b = 'b';", "b.js");
38 ASSERT_FALSE(moduleB.isNull());
39 Vector<char> moduleDeletedBuffer(sizeof(ScriptModule));
40 ScriptModule& moduleDeleted =
41 *reinterpret_cast<ScriptModule*>(moduleDeletedBuffer.data());
42 HashTraits<ScriptModule>::constructDeletedValue(moduleDeleted, true);
43
44 EXPECT_EQ(moduleNull, moduleNull);
45 EXPECT_EQ(moduleA, moduleA);
46 EXPECT_EQ(moduleB, moduleB);
47 EXPECT_EQ(moduleDeleted, moduleDeleted);
48
49 EXPECT_NE(moduleNull, moduleA);
50 EXPECT_NE(moduleNull, moduleB);
51 EXPECT_NE(moduleNull, moduleDeleted);
52
53 EXPECT_NE(moduleA, moduleNull);
54 EXPECT_NE(moduleA, moduleB);
55 EXPECT_NE(moduleA, moduleDeleted);
56
57 EXPECT_NE(moduleB, moduleNull);
58 EXPECT_NE(moduleB, moduleA);
59 EXPECT_NE(moduleB, moduleDeleted);
60
61 EXPECT_NE(moduleDeleted, moduleNull);
62 EXPECT_NE(moduleDeleted, moduleA);
63 EXPECT_NE(moduleDeleted, moduleB);
64
65 EXPECT_NE(DefaultHash<ScriptModule>::Hash::hash(moduleA),
66 DefaultHash<ScriptModule>::Hash::hash(moduleB));
67 EXPECT_NE(DefaultHash<ScriptModule>::Hash::hash(moduleNull),
68 DefaultHash<ScriptModule>::Hash::hash(moduleA));
69 EXPECT_NE(DefaultHash<ScriptModule>::Hash::hash(moduleNull),
70 DefaultHash<ScriptModule>::Hash::hash(moduleB));
71 }
72
29 } // namespace 73 } // namespace
30 74
31 } // namespace blink 75 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698