| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
| 8 #include "base/json/json_file_value_serializer.h" | 8 #include "base/json/json_file_value_serializer.h" |
| 9 #include "base/json/json_reader.h" | 9 #include "base/json/json_reader.h" |
| 10 #include "base/json/json_string_value_serializer.h" | 10 #include "base/json/json_string_value_serializer.h" |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 | 115 |
| 116 // Test JSONValueSerializer interface (uses JSONWriter). | 116 // Test JSONValueSerializer interface (uses JSONWriter). |
| 117 JSONStringValueSerializer serializer(&output_js); | 117 JSONStringValueSerializer serializer(&output_js); |
| 118 ASSERT_TRUE(serializer.Serialize(valueRoot)); | 118 ASSERT_TRUE(serializer.Serialize(valueRoot)); |
| 119 ASSERT_EQ(expected_output, output_js); | 119 ASSERT_EQ(expected_output, output_js); |
| 120 } | 120 } |
| 121 | 121 |
| 122 TEST(JSONValueSerializerTest, UnicodeStrings) { | 122 TEST(JSONValueSerializerTest, UnicodeStrings) { |
| 123 // unicode string json -> escaped ascii text | 123 // unicode string json -> escaped ascii text |
| 124 DictionaryValue root; | 124 DictionaryValue root; |
| 125 string16 test(WideToUTF16(L"\x7F51\x9875")); | 125 string16 test(base::WideToUTF16(L"\x7F51\x9875")); |
| 126 root.SetString("web", test); | 126 root.SetString("web", test); |
| 127 | 127 |
| 128 std::string expected = "{\"web\":\"\\u7F51\\u9875\"}"; | 128 std::string expected = "{\"web\":\"\\u7F51\\u9875\"}"; |
| 129 | 129 |
| 130 std::string actual; | 130 std::string actual; |
| 131 JSONStringValueSerializer serializer(&actual); | 131 JSONStringValueSerializer serializer(&actual); |
| 132 ASSERT_TRUE(serializer.Serialize(root)); | 132 ASSERT_TRUE(serializer.Serialize(root)); |
| 133 ASSERT_EQ(expected, actual); | 133 ASSERT_EQ(expected, actual); |
| 134 | 134 |
| 135 // escaped ascii text -> json | 135 // escaped ascii text -> json |
| 136 JSONStringValueSerializer deserializer(expected); | 136 JSONStringValueSerializer deserializer(expected); |
| 137 scoped_ptr<Value> deserial_root(deserializer.Deserialize(NULL, NULL)); | 137 scoped_ptr<Value> deserial_root(deserializer.Deserialize(NULL, NULL)); |
| 138 ASSERT_TRUE(deserial_root.get()); | 138 ASSERT_TRUE(deserial_root.get()); |
| 139 DictionaryValue* dict_root = | 139 DictionaryValue* dict_root = |
| 140 static_cast<DictionaryValue*>(deserial_root.get()); | 140 static_cast<DictionaryValue*>(deserial_root.get()); |
| 141 string16 web_value; | 141 string16 web_value; |
| 142 ASSERT_TRUE(dict_root->GetString("web", &web_value)); | 142 ASSERT_TRUE(dict_root->GetString("web", &web_value)); |
| 143 ASSERT_EQ(test, web_value); | 143 ASSERT_EQ(test, web_value); |
| 144 } | 144 } |
| 145 | 145 |
| 146 TEST(JSONValueSerializerTest, HexStrings) { | 146 TEST(JSONValueSerializerTest, HexStrings) { |
| 147 // hex string json -> escaped ascii text | 147 // hex string json -> escaped ascii text |
| 148 DictionaryValue root; | 148 DictionaryValue root; |
| 149 string16 test(WideToUTF16(L"\x01\x02")); | 149 string16 test(base::WideToUTF16(L"\x01\x02")); |
| 150 root.SetString("test", test); | 150 root.SetString("test", test); |
| 151 | 151 |
| 152 std::string expected = "{\"test\":\"\\u0001\\u0002\"}"; | 152 std::string expected = "{\"test\":\"\\u0001\\u0002\"}"; |
| 153 | 153 |
| 154 std::string actual; | 154 std::string actual; |
| 155 JSONStringValueSerializer serializer(&actual); | 155 JSONStringValueSerializer serializer(&actual); |
| 156 ASSERT_TRUE(serializer.Serialize(root)); | 156 ASSERT_TRUE(serializer.Serialize(root)); |
| 157 ASSERT_EQ(expected, actual); | 157 ASSERT_EQ(expected, actual); |
| 158 | 158 |
| 159 // escaped ascii text -> json | 159 // escaped ascii text -> json |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 base::FilePath source_file_path; | 330 base::FilePath source_file_path; |
| 331 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &source_file_path)); | 331 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &source_file_path)); |
| 332 source_file_path = source_file_path.Append( | 332 source_file_path = source_file_path.Append( |
| 333 FILE_PATH_LITERAL("serializer_test_nowhitespace.js")); | 333 FILE_PATH_LITERAL("serializer_test_nowhitespace.js")); |
| 334 ASSERT_TRUE(file_util::PathExists(source_file_path)); | 334 ASSERT_TRUE(file_util::PathExists(source_file_path)); |
| 335 JSONFileValueSerializer serializer(source_file_path); | 335 JSONFileValueSerializer serializer(source_file_path); |
| 336 scoped_ptr<Value> root; | 336 scoped_ptr<Value> root; |
| 337 root.reset(serializer.Deserialize(NULL, NULL)); | 337 root.reset(serializer.Deserialize(NULL, NULL)); |
| 338 ASSERT_TRUE(root.get()); | 338 ASSERT_TRUE(root.get()); |
| 339 } | 339 } |
| OLD | NEW |