| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 <math.h> | 5 #include <math.h> |
| 6 #include <stdarg.h> | 6 #include <stdarg.h> |
| 7 | 7 |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <sstream> | 9 #include <sstream> |
| 10 | 10 |
| 11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
| 12 #include "base/string_util.h" | 12 #include "base/string_util.h" |
| 13 #include "base/utf_string_conversions.h" | 13 #include "base/utf_string_conversions.h" |
| 14 #include "testing/gmock/include/gmock/gmock.h" | |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 16 | 15 |
| 17 using ::testing::ElementsAre; | |
| 18 | |
| 19 namespace base { | 16 namespace base { |
| 20 | 17 |
| 21 namespace { | 18 namespace { |
| 22 | 19 |
| 23 // Given a null-terminated string of wchar_t with each wchar_t representing | 20 // Given a null-terminated string of wchar_t with each wchar_t representing |
| 24 // a UTF-16 code unit, returns a string16 made up of wchar_t's in the input. | 21 // a UTF-16 code unit, returns a string16 made up of wchar_t's in the input. |
| 25 // Each wchar_t should be <= 0xFFFF and a non-BMP character (> U+FFFF) | 22 // Each wchar_t should be <= 0xFFFF and a non-BMP character (> U+FFFF) |
| 26 // should be represented as a surrogate pair (two UTF-16 units) | 23 // should be represented as a surrogate pair (two UTF-16 units) |
| 27 // *even* where wchar_t is 32-bit (Linux and Mac). | 24 // *even* where wchar_t is 32-bit (Linux and Mac). |
| 28 // | 25 // |
| (...skipping 1459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1488 EXPECT_TRUE(ContainsOnlyChars("", "")); | 1485 EXPECT_TRUE(ContainsOnlyChars("", "")); |
| 1489 EXPECT_FALSE(ContainsOnlyChars("Hello", "")); | 1486 EXPECT_FALSE(ContainsOnlyChars("Hello", "")); |
| 1490 | 1487 |
| 1491 EXPECT_TRUE(ContainsOnlyChars("", "1234")); | 1488 EXPECT_TRUE(ContainsOnlyChars("", "1234")); |
| 1492 EXPECT_TRUE(ContainsOnlyChars("1", "1234")); | 1489 EXPECT_TRUE(ContainsOnlyChars("1", "1234")); |
| 1493 EXPECT_TRUE(ContainsOnlyChars("1", "4321")); | 1490 EXPECT_TRUE(ContainsOnlyChars("1", "4321")); |
| 1494 EXPECT_TRUE(ContainsOnlyChars("123", "4321")); | 1491 EXPECT_TRUE(ContainsOnlyChars("123", "4321")); |
| 1495 EXPECT_FALSE(ContainsOnlyChars("123a", "4321")); | 1492 EXPECT_FALSE(ContainsOnlyChars("123a", "4321")); |
| 1496 } | 1493 } |
| 1497 | 1494 |
| 1498 TEST(SplitStringUsingSubstrTest, EmptyString) { | 1495 } // base |
| 1499 std::vector<std::string> results; | |
| 1500 SplitStringUsingSubstr("", "DELIMITER", &results); | |
| 1501 ASSERT_EQ(1u, results.size()); | |
| 1502 EXPECT_THAT(results, ElementsAre("")); | |
| 1503 } | |
| 1504 | |
| 1505 TEST(SplitStringUsingSubstrTest, StringWithNoDelimiter) { | |
| 1506 std::vector<std::string> results; | |
| 1507 SplitStringUsingSubstr("alongwordwithnodelimiter", "DELIMITER", &results); | |
| 1508 ASSERT_EQ(1u, results.size()); | |
| 1509 EXPECT_THAT(results, ElementsAre("alongwordwithnodelimiter")); | |
| 1510 } | |
| 1511 | |
| 1512 TEST(SplitStringUsingSubstrTest, LeadingDelimitersSkipped) { | |
| 1513 std::vector<std::string> results; | |
| 1514 SplitStringUsingSubstr( | |
| 1515 "DELIMITERDELIMITERDELIMITERoneDELIMITERtwoDELIMITERthree", | |
| 1516 "DELIMITER", | |
| 1517 &results); | |
| 1518 ASSERT_EQ(6u, results.size()); | |
| 1519 EXPECT_THAT(results, ElementsAre("", "", "", "one", "two", "three")); | |
| 1520 } | |
| 1521 | |
| 1522 TEST(SplitStringUsingSubstrTest, ConsecutiveDelimitersSkipped) { | |
| 1523 std::vector<std::string> results; | |
| 1524 SplitStringUsingSubstr( | |
| 1525 "unoDELIMITERDELIMITERDELIMITERdosDELIMITERtresDELIMITERDELIMITERcuatro", | |
| 1526 "DELIMITER", | |
| 1527 &results); | |
| 1528 ASSERT_EQ(7u, results.size()); | |
| 1529 EXPECT_THAT(results, ElementsAre("uno", "", "", "dos", "tres", "", "cuatro")); | |
| 1530 } | |
| 1531 | |
| 1532 TEST(SplitStringUsingSubstrTest, TrailingDelimitersSkipped) { | |
| 1533 std::vector<std::string> results; | |
| 1534 SplitStringUsingSubstr( | |
| 1535 "unDELIMITERdeuxDELIMITERtroisDELIMITERquatreDELIMITERDELIMITERDELIMITER", | |
| 1536 "DELIMITER", | |
| 1537 &results); | |
| 1538 ASSERT_EQ(7u, results.size()); | |
| 1539 EXPECT_THAT( | |
| 1540 results, ElementsAre("un", "deux", "trois", "quatre", "", "", "")); | |
| 1541 } | |
| 1542 | |
| 1543 } // namespace base | |
| OLD | NEW |