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

Side by Side Diff: chrome/common/json_value_serializer_unittest.cc

Issue 316016: Move the json-related files into a separate json directory. This hopefully al... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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 | Annotate | Revision Log
« no previous file with comments | « chrome/common/json_value_serializer.cc ('k') | chrome/common/sandbox_mac.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/file_util.h" 6 #include "base/file_util.h"
7 #include "base/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "base/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "chrome/common/chrome_paths.h" 12 #include "chrome/common/chrome_paths.h"
13 #include "chrome/common/json_value_serializer.h" 13 #include "chrome/common/json_value_serializer.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 15
16 TEST(JSONValueSerializerTest, Roundtrip) { 16 TEST(JSONValueSerializerTest, Roundtrip) {
17 const std::string original_serialization = 17 const std::string original_serialization =
18 "{\"bool\":true,\"int\":42,\"list\":[1,2],\"null\":null,\"real\":3.14}"; 18 "{\"bool\":true,\"int\":42,\"list\":[1,2],\"null\":null,\"real\":3.14}";
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 "\\u00E8\\u00E9\\u00EA\\u00EB\\u00EC\\u00ED\\u00EE\\u00EF\\u00F0\\u00F1" 99 "\\u00E8\\u00E9\\u00EA\\u00EB\\u00EC\\u00ED\\u00EE\\u00EF\\u00F0\\u00F1"
100 "\\u00F2\\u00F3\\u00F4\\u00F5\\u00F6\\u00F7\\u00F8\\u00F9\\u00FA\\u00FB" 100 "\\u00F2\\u00F3\\u00F4\\u00F5\\u00F6\\u00F7\\u00F8\\u00F9\\u00FA\\u00FB"
101 "\\u00FC\\u00FD\\u00FE\\u00FF"; 101 "\\u00FC\\u00FD\\u00FE\\u00FF";
102 102
103 std::string expected_output = "{\"all_chars\":\"" + all_chars_expected + 103 std::string expected_output = "{\"all_chars\":\"" + all_chars_expected +
104 "\"}"; 104 "\"}";
105 // Test JSONWriter interface 105 // Test JSONWriter interface
106 std::string output_js; 106 std::string output_js;
107 DictionaryValue valueRoot; 107 DictionaryValue valueRoot;
108 valueRoot.SetString(L"all_chars", all_chars); 108 valueRoot.SetString(L"all_chars", all_chars);
109 JSONWriter::Write(&valueRoot, false, &output_js); 109 base::JSONWriter::Write(&valueRoot, false, &output_js);
110 ASSERT_EQ(expected_output, output_js); 110 ASSERT_EQ(expected_output, output_js);
111 111
112 // Test JSONValueSerializer interface (uses JSONWriter). 112 // Test JSONValueSerializer interface (uses JSONWriter).
113 JSONStringValueSerializer serializer(&output_js); 113 JSONStringValueSerializer serializer(&output_js);
114 ASSERT_TRUE(serializer.Serialize(valueRoot)); 114 ASSERT_TRUE(serializer.Serialize(valueRoot));
115 ASSERT_EQ(expected_output, output_js); 115 ASSERT_EQ(expected_output, output_js);
116 } 116 }
117 117
118 TEST(JSONValueSerializerTest, UnicodeStrings) { 118 TEST(JSONValueSerializerTest, UnicodeStrings) {
119 // unicode string json -> escaped ascii text 119 // unicode string json -> escaped ascii text
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 root.reset(serializer.Deserialize(NULL)); 184 root.reset(serializer.Deserialize(NULL));
185 ASSERT_TRUE(root.get()); 185 ASSERT_TRUE(root.get());
186 root_expected.reset(serializer_expected.Deserialize(NULL)); 186 root_expected.reset(serializer_expected.Deserialize(NULL));
187 ASSERT_TRUE(root_expected.get()); 187 ASSERT_TRUE(root_expected.get());
188 ASSERT_TRUE(root->Equals(root_expected.get())); 188 ASSERT_TRUE(root->Equals(root_expected.get()));
189 } 189 }
190 190
191 namespace { 191 namespace {
192 192
193 void ValidateJsonList(const std::string& json) { 193 void ValidateJsonList(const std::string& json) {
194 scoped_ptr<Value> root(JSONReader::Read(json, false)); 194 scoped_ptr<Value> root(base::JSONReader::Read(json, false));
195 ASSERT_TRUE(root.get() && root->IsType(Value::TYPE_LIST)); 195 ASSERT_TRUE(root.get() && root->IsType(Value::TYPE_LIST));
196 ListValue* list = static_cast<ListValue*>(root.get()); 196 ListValue* list = static_cast<ListValue*>(root.get());
197 ASSERT_EQ(1U, list->GetSize()); 197 ASSERT_EQ(1U, list->GetSize());
198 Value* elt = NULL; 198 Value* elt = NULL;
199 ASSERT_TRUE(list->Get(0, &elt)); 199 ASSERT_TRUE(list->Get(0, &elt));
200 int value = 0; 200 int value = 0;
201 ASSERT_TRUE(elt && elt->GetAsInteger(&value)); 201 ASSERT_TRUE(elt && elt->GetAsInteger(&value));
202 ASSERT_EQ(1, value); 202 ASSERT_EQ(1, value);
203 } 203 }
204 204
205 } // namespace 205 } // namespace
206 206
207 TEST(JSONValueSerializerTest, JSONReaderComments) { 207 TEST(JSONValueSerializerTest, JSONReaderComments) {
208 ValidateJsonList("[ // 2, 3, ignore me ] \n1 ]"); 208 ValidateJsonList("[ // 2, 3, ignore me ] \n1 ]");
209 ValidateJsonList("[ /* 2, \n3, ignore me ]*/ \n1 ]"); 209 ValidateJsonList("[ /* 2, \n3, ignore me ]*/ \n1 ]");
210 ValidateJsonList("//header\n[ // 2, \n// 3, \n1 ]// footer"); 210 ValidateJsonList("//header\n[ // 2, \n// 3, \n1 ]// footer");
211 ValidateJsonList("/*\n[ // 2, \n// 3, \n1 ]*/[1]"); 211 ValidateJsonList("/*\n[ // 2, \n// 3, \n1 ]*/[1]");
212 ValidateJsonList("[ 1 /* one */ ] /* end */"); 212 ValidateJsonList("[ 1 /* one */ ] /* end */");
213 ValidateJsonList("[ 1 //// ,2\r\n ]"); 213 ValidateJsonList("[ 1 //// ,2\r\n ]");
214 214
215 scoped_ptr<Value> root; 215 scoped_ptr<Value> root;
216 216
217 // It's ok to have a comment in a string. 217 // It's ok to have a comment in a string.
218 root.reset(JSONReader::Read("[\"// ok\\n /* foo */ \"]", false)); 218 root.reset(base::JSONReader::Read("[\"// ok\\n /* foo */ \"]", false));
219 ASSERT_TRUE(root.get() && root->IsType(Value::TYPE_LIST)); 219 ASSERT_TRUE(root.get() && root->IsType(Value::TYPE_LIST));
220 ListValue* list = static_cast<ListValue*>(root.get()); 220 ListValue* list = static_cast<ListValue*>(root.get());
221 ASSERT_EQ(1U, list->GetSize()); 221 ASSERT_EQ(1U, list->GetSize());
222 Value* elt = NULL; 222 Value* elt = NULL;
223 ASSERT_TRUE(list->Get(0, &elt)); 223 ASSERT_TRUE(list->Get(0, &elt));
224 std::wstring value; 224 std::wstring value;
225 ASSERT_TRUE(elt && elt->GetAsString(&value)); 225 ASSERT_TRUE(elt && elt->GetAsString(&value));
226 ASSERT_EQ(L"// ok\n /* foo */ ", value); 226 ASSERT_EQ(L"// ok\n /* foo */ ", value);
227 227
228 // You can't nest comments. 228 // You can't nest comments.
229 root.reset(JSONReader::Read("/* /* inner */ outer */ [ 1 ]", false)); 229 root.reset(base::JSONReader::Read("/* /* inner */ outer */ [ 1 ]", false));
230 ASSERT_FALSE(root.get()); 230 ASSERT_FALSE(root.get());
231 231
232 // Not a open comment token. 232 // Not a open comment token.
233 root.reset(JSONReader::Read("/ * * / [1]", false)); 233 root.reset(base::JSONReader::Read("/ * * / [1]", false));
234 ASSERT_FALSE(root.get()); 234 ASSERT_FALSE(root.get());
235 } 235 }
236 236
237 class JSONFileValueSerializerTest : public testing::Test { 237 class JSONFileValueSerializerTest : public testing::Test {
238 protected: 238 protected:
239 virtual void SetUp() { 239 virtual void SetUp() {
240 // Name a subdirectory of the temp directory. 240 // Name a subdirectory of the temp directory.
241 ASSERT_TRUE(PathService::Get(base::DIR_TEMP, &test_dir_)); 241 ASSERT_TRUE(PathService::Get(base::DIR_TEMP, &test_dir_));
242 test_dir_ = 242 test_dir_ =
243 test_dir_.Append(FILE_PATH_LITERAL("JSONFileValueSerializerTest")); 243 test_dir_.Append(FILE_PATH_LITERAL("JSONFileValueSerializerTest"));
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 FilePath source_file_path; 339 FilePath source_file_path;
340 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &source_file_path)); 340 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &source_file_path));
341 source_file_path = source_file_path.Append( 341 source_file_path = source_file_path.Append(
342 FILE_PATH_LITERAL("serializer_test_nowhitespace.js")); 342 FILE_PATH_LITERAL("serializer_test_nowhitespace.js"));
343 ASSERT_TRUE(file_util::PathExists(source_file_path)); 343 ASSERT_TRUE(file_util::PathExists(source_file_path));
344 JSONFileValueSerializer serializer(source_file_path); 344 JSONFileValueSerializer serializer(source_file_path);
345 scoped_ptr<Value> root; 345 scoped_ptr<Value> root;
346 root.reset(serializer.Deserialize(NULL)); 346 root.reset(serializer.Deserialize(NULL));
347 ASSERT_TRUE(root.get()); 347 ASSERT_TRUE(root.get());
348 } 348 }
OLDNEW
« no previous file with comments | « chrome/common/json_value_serializer.cc ('k') | chrome/common/sandbox_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698