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

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

Issue 2476393003: V8ObjectBuilder::addString support Nullable. (Closed)
Patch Set: Change to addStringOrNull and replace to StringView. Created 4 years, 1 month 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 | « third_party/WebKit/Source/bindings/core/v8/V8ObjectBuilder.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "bindings/core/v8/V8ObjectBuilder.h"
6
7 #include "bindings/core/v8/V8Binding.h"
8 #include "bindings/core/v8/V8BindingForTesting.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace blink {
12
13 namespace {
14
15 TEST(V8ObjectBuilderTest, addString) {
Yuki 2016/11/09 12:17:18 nit: I'd suggest to sort the test cases in the sam
16 V8TestingScope scope;
17 {
Yuki 2016/11/09 12:17:18 nit: You don't need to create a new block. Without
18 ScriptState* scriptState = scope.getScriptState();
19 V8ObjectBuilder builder(scriptState);
20
21 WTF::String test1 = "test1";
22 WTF::String test2;
23 WTF::String test3 = "test3";
24 WTF::String test4;
25
26 builder.addString("test1", test1);
27 builder.addString("test2", test2);
28 builder.addStringOrNull("test3", test3);
29 builder.addStringOrNull("test4", test4);
30 ScriptValue jsonObject = builder.scriptValue();
31 EXPECT_TRUE(jsonObject.isObject());
32
33 String jsonString = v8StringToWebCoreString<String>(
34 v8::JSON::Stringify(scope.context(),
35 jsonObject.v8Value().As<v8::Object>())
36 .ToLocalChecked(),
37 DoNotExternalize);
38
39 String expected =
40 "{\"test1\":\"test1\",\"test2\":\"\",\"test3\":\"test3\",\"test4\":"
41 "null}";
42 EXPECT_EQ(expected, jsonString);
43 }
44 }
45
46 TEST(V8ObjectBuilderTest, addBoolean) {
47 V8TestingScope scope;
48 {
49 ScriptState* scriptState = scope.getScriptState();
50 V8ObjectBuilder builder(scriptState);
51 builder.addBoolean("b1", true);
52 builder.addBoolean("b2", false);
53 ScriptValue jsonObject = builder.scriptValue();
54 EXPECT_TRUE(jsonObject.isObject());
55
56 String jsonString = v8StringToWebCoreString<String>(
57 v8::JSON::Stringify(scope.context(),
58 jsonObject.v8Value().As<v8::Object>())
59 .ToLocalChecked(),
60 DoNotExternalize);
61
62 String expected = "{\"b1\":true,\"b2\":false}";
63 EXPECT_EQ(expected, jsonString);
64 }
65 }
66
67 TEST(V8ObjectBuilderTest, addNumber) {
68 V8TestingScope scope;
69 {
70 ScriptState* scriptState = scope.getScriptState();
71 V8ObjectBuilder builder(scriptState);
72 builder.addNumber("n1", 123);
73 builder.addNumber("n2", 123.456);
74 ScriptValue jsonObject = builder.scriptValue();
75 EXPECT_TRUE(jsonObject.isObject());
76
77 String jsonString = v8StringToWebCoreString<String>(
78 v8::JSON::Stringify(scope.context(),
79 jsonObject.v8Value().As<v8::Object>())
80 .ToLocalChecked(),
81 DoNotExternalize);
82
83 String expected = "{\"n1\":123,\"n2\":123.456}";
84 EXPECT_EQ(expected, jsonString);
85 }
86 }
87
88 TEST(V8ObjectBuilderTest, addNull) {
89 V8TestingScope scope;
90 {
91 ScriptState* scriptState = scope.getScriptState();
92 V8ObjectBuilder builder(scriptState);
93 builder.addNull("null_check");
94 ScriptValue jsonObject = builder.scriptValue();
95 EXPECT_TRUE(jsonObject.isObject());
96
97 String jsonString = v8StringToWebCoreString<String>(
98 v8::JSON::Stringify(scope.context(),
99 jsonObject.v8Value().As<v8::Object>())
100 .ToLocalChecked(),
101 DoNotExternalize);
102
103 String expected = "{\"null_check\":null}";
104 EXPECT_EQ(expected, jsonString);
105 }
106 }
107
108 TEST(V8ObjectBuilderTest, add) {
109 V8TestingScope scope;
110 {
111 ScriptState* scriptState = scope.getScriptState();
112 V8ObjectBuilder builder(scriptState);
113 V8ObjectBuilder result(scriptState);
114 builder.addNumber("n1", 123);
115 builder.addNumber("n2", 123.456);
116 result.add("builder", builder);
117 ScriptValue builderJsonObject = builder.scriptValue();
118 ScriptValue resultJsonObject = result.scriptValue();
119 EXPECT_TRUE(builderJsonObject.isObject());
120 EXPECT_TRUE(resultJsonObject.isObject());
121
122 String jsonString = v8StringToWebCoreString<String>(
123 v8::JSON::Stringify(scope.context(),
124 resultJsonObject.v8Value().As<v8::Object>())
125 .ToLocalChecked(),
126 DoNotExternalize);
127
128 String expected = "{\"builder\":{\"n1\":123,\"n2\":123.456}}";
129 EXPECT_EQ(expected, jsonString);
130 }
131 }
132
133 } // namespace
134
135 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/bindings/core/v8/V8ObjectBuilder.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698