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 <sstream> | 5 #include <sstream> |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
11 #include "testing/platform_test.h" | 11 #include "testing/platform_test.h" |
12 | 12 |
| 13 #if defined(OS_POSIX) |
| 14 #include "base/test/scoped_locale.h" |
| 15 #endif |
| 16 |
13 // This macro helps avoid wrapped lines in the test structs. | 17 // This macro helps avoid wrapped lines in the test structs. |
14 #define FPL(x) FILE_PATH_LITERAL(x) | 18 #define FPL(x) FILE_PATH_LITERAL(x) |
15 | 19 |
16 // This macro constructs strings which can contain NULs. | 20 // This macro constructs strings which can contain NULs. |
17 #define FPS(x) FilePath::StringType(FPL(x), arraysize(FPL(x)) - 1) | 21 #define FPS(x) FilePath::StringType(FPL(x), arraysize(FPL(x)) - 1) |
18 | 22 |
19 namespace base { | 23 namespace base { |
20 | 24 |
21 struct UnaryTestData { | 25 struct UnaryTestData { |
22 const FilePath::CharType* input; | 26 const FilePath::CharType* input; |
(...skipping 1096 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1119 TEST_F(FilePathTest, FromUTF8Unsafe_And_AsUTF8Unsafe) { | 1123 TEST_F(FilePathTest, FromUTF8Unsafe_And_AsUTF8Unsafe) { |
1120 const struct UTF8TestData cases[] = { | 1124 const struct UTF8TestData cases[] = { |
1121 { FPL("foo.txt"), "foo.txt" }, | 1125 { FPL("foo.txt"), "foo.txt" }, |
1122 // "aeo" with accents. Use http://0xcc.net/jsescape/ to decode them. | 1126 // "aeo" with accents. Use http://0xcc.net/jsescape/ to decode them. |
1123 { FPL("\u00E0\u00E8\u00F2.txt"), "\xC3\xA0\xC3\xA8\xC3\xB2.txt" }, | 1127 { FPL("\u00E0\u00E8\u00F2.txt"), "\xC3\xA0\xC3\xA8\xC3\xB2.txt" }, |
1124 // Full-width "ABC". | 1128 // Full-width "ABC". |
1125 { FPL("\uFF21\uFF22\uFF23.txt"), | 1129 { FPL("\uFF21\uFF22\uFF23.txt"), |
1126 "\xEF\xBC\xA1\xEF\xBC\xA2\xEF\xBC\xA3.txt" }, | 1130 "\xEF\xBC\xA1\xEF\xBC\xA2\xEF\xBC\xA3.txt" }, |
1127 }; | 1131 }; |
1128 | 1132 |
| 1133 #if !defined(SYSTEM_NATIVE_UTF8) && defined(OS_LINUX) |
| 1134 ScopedLocale locale("en_US.UTF-8"); |
| 1135 #endif |
| 1136 |
1129 for (size_t i = 0; i < arraysize(cases); ++i) { | 1137 for (size_t i = 0; i < arraysize(cases); ++i) { |
1130 // Test FromUTF8Unsafe() works. | 1138 // Test FromUTF8Unsafe() works. |
1131 FilePath from_utf8 = FilePath::FromUTF8Unsafe(cases[i].utf8); | 1139 FilePath from_utf8 = FilePath::FromUTF8Unsafe(cases[i].utf8); |
1132 EXPECT_EQ(cases[i].native, from_utf8.value()) | 1140 EXPECT_EQ(cases[i].native, from_utf8.value()) |
1133 << "i: " << i << ", input: " << cases[i].native; | 1141 << "i: " << i << ", input: " << cases[i].native; |
1134 // Test AsUTF8Unsafe() works. | 1142 // Test AsUTF8Unsafe() works. |
1135 FilePath from_native = FilePath(cases[i].native); | 1143 FilePath from_native = FilePath(cases[i].native); |
1136 EXPECT_EQ(cases[i].utf8, from_native.AsUTF8Unsafe()) | 1144 EXPECT_EQ(cases[i].utf8, from_native.AsUTF8Unsafe()) |
1137 << "i: " << i << ", input: " << cases[i].native; | 1145 << "i: " << i << ", input: " << cases[i].native; |
1138 // Test the two file paths are identical. | 1146 // Test the two file paths are identical. |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1278 // Test the PrintTo overload for FilePath (used when a test fails to compare two | 1286 // Test the PrintTo overload for FilePath (used when a test fails to compare two |
1279 // FilePaths). | 1287 // FilePaths). |
1280 TEST_F(FilePathTest, PrintTo) { | 1288 TEST_F(FilePathTest, PrintTo) { |
1281 std::stringstream ss; | 1289 std::stringstream ss; |
1282 FilePath fp(FPL("foo")); | 1290 FilePath fp(FPL("foo")); |
1283 base::PrintTo(fp, &ss); | 1291 base::PrintTo(fp, &ss); |
1284 EXPECT_EQ("foo", ss.str()); | 1292 EXPECT_EQ("foo", ss.str()); |
1285 } | 1293 } |
1286 | 1294 |
1287 } // namespace base | 1295 } // namespace base |
OLD | NEW |