| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/strings/string_util.h" | 5 #include "base/strings/string_util.h" |
| 6 | 6 |
| 7 #include <math.h> | 7 #include <math.h> |
| 8 #include <stdarg.h> | 8 #include <stdarg.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 699 parts.push_back(ASCIIToUTF16("c")); | 699 parts.push_back(ASCIIToUTF16("c")); |
| 700 EXPECT_EQ(ASCIIToUTF16("a, b, c"), JoinString(parts, separator)); | 700 EXPECT_EQ(ASCIIToUTF16("a, b, c"), JoinString(parts, separator)); |
| 701 | 701 |
| 702 parts.push_back(ASCIIToUTF16("")); | 702 parts.push_back(ASCIIToUTF16("")); |
| 703 EXPECT_EQ(ASCIIToUTF16("a, b, c, "), JoinString(parts, separator)); | 703 EXPECT_EQ(ASCIIToUTF16("a, b, c, "), JoinString(parts, separator)); |
| 704 parts.push_back(ASCIIToUTF16(" ")); | 704 parts.push_back(ASCIIToUTF16(" ")); |
| 705 EXPECT_EQ(ASCIIToUTF16("a|b|c|| "), JoinString(parts, ASCIIToUTF16("|"))); | 705 EXPECT_EQ(ASCIIToUTF16("a|b|c|| "), JoinString(parts, ASCIIToUTF16("|"))); |
| 706 } | 706 } |
| 707 | 707 |
| 708 TEST(StringUtilTest, StartsWith) { | 708 TEST(StringUtilTest, StartsWith) { |
| 709 EXPECT_TRUE(StartsWith("javascript:url", "javascript", | 709 EXPECT_TRUE(StartsWithASCII("javascript:url", "javascript", true)); |
| 710 base::CompareCase::SENSITIVE)); | 710 EXPECT_FALSE(StartsWithASCII("JavaScript:url", "javascript", true)); |
| 711 EXPECT_FALSE(StartsWith("JavaScript:url", "javascript", | 711 EXPECT_TRUE(StartsWithASCII("javascript:url", "javascript", false)); |
| 712 base::CompareCase::SENSITIVE)); | 712 EXPECT_TRUE(StartsWithASCII("JavaScript:url", "javascript", false)); |
| 713 EXPECT_TRUE(StartsWith("javascript:url", "javascript", | 713 EXPECT_FALSE(StartsWithASCII("java", "javascript", true)); |
| 714 base::CompareCase::INSENSITIVE_ASCII)); | 714 EXPECT_FALSE(StartsWithASCII("java", "javascript", false)); |
| 715 EXPECT_TRUE(StartsWith("JavaScript:url", "javascript", | 715 EXPECT_FALSE(StartsWithASCII(std::string(), "javascript", false)); |
| 716 base::CompareCase::INSENSITIVE_ASCII)); | 716 EXPECT_FALSE(StartsWithASCII(std::string(), "javascript", true)); |
| 717 EXPECT_FALSE(StartsWith("java", "javascript", base::CompareCase::SENSITIVE)); | 717 EXPECT_TRUE(StartsWithASCII("java", std::string(), false)); |
| 718 EXPECT_FALSE(StartsWith("java", "javascript", | 718 EXPECT_TRUE(StartsWithASCII("java", std::string(), true)); |
| 719 base::CompareCase::INSENSITIVE_ASCII)); | |
| 720 EXPECT_FALSE(StartsWith(std::string(), "javascript", | |
| 721 base::CompareCase::INSENSITIVE_ASCII)); | |
| 722 EXPECT_FALSE(StartsWith(std::string(), "javascript", | |
| 723 base::CompareCase::SENSITIVE)); | |
| 724 EXPECT_TRUE(StartsWith("java", std::string(), | |
| 725 base::CompareCase::INSENSITIVE_ASCII)); | |
| 726 EXPECT_TRUE(StartsWith("java", std::string(), base::CompareCase::SENSITIVE)); | |
| 727 | 719 |
| 728 EXPECT_TRUE(StartsWith(ASCIIToUTF16("javascript:url"), | 720 EXPECT_TRUE(StartsWith(ASCIIToUTF16("javascript:url"), |
| 729 ASCIIToUTF16("javascript"), | 721 ASCIIToUTF16("javascript"), true)); |
| 730 base::CompareCase::SENSITIVE)); | |
| 731 EXPECT_FALSE(StartsWith(ASCIIToUTF16("JavaScript:url"), | 722 EXPECT_FALSE(StartsWith(ASCIIToUTF16("JavaScript:url"), |
| 732 ASCIIToUTF16("javascript"), | 723 ASCIIToUTF16("javascript"), true)); |
| 733 base::CompareCase::SENSITIVE)); | |
| 734 EXPECT_TRUE(StartsWith(ASCIIToUTF16("javascript:url"), | 724 EXPECT_TRUE(StartsWith(ASCIIToUTF16("javascript:url"), |
| 735 ASCIIToUTF16("javascript"), | 725 ASCIIToUTF16("javascript"), false)); |
| 736 base::CompareCase::INSENSITIVE_ASCII)); | |
| 737 EXPECT_TRUE(StartsWith(ASCIIToUTF16("JavaScript:url"), | 726 EXPECT_TRUE(StartsWith(ASCIIToUTF16("JavaScript:url"), |
| 738 ASCIIToUTF16("javascript"), | 727 ASCIIToUTF16("javascript"), false)); |
| 739 base::CompareCase::INSENSITIVE_ASCII)); | 728 EXPECT_FALSE(StartsWith(ASCIIToUTF16("java"), |
| 740 EXPECT_FALSE(StartsWith(ASCIIToUTF16("java"), ASCIIToUTF16("javascript"), | 729 ASCIIToUTF16("javascript"), true)); |
| 741 base::CompareCase::SENSITIVE)); | 730 EXPECT_FALSE(StartsWith(ASCIIToUTF16("java"), |
| 742 EXPECT_FALSE(StartsWith(ASCIIToUTF16("java"), ASCIIToUTF16("javascript"), | 731 ASCIIToUTF16("javascript"), false)); |
| 743 base::CompareCase::INSENSITIVE_ASCII)); | 732 EXPECT_FALSE(StartsWith(string16(), ASCIIToUTF16("javascript"), false)); |
| 744 EXPECT_FALSE(StartsWith(string16(), ASCIIToUTF16("javascript"), | 733 EXPECT_FALSE(StartsWith(string16(), ASCIIToUTF16("javascript"), true)); |
| 745 base::CompareCase::INSENSITIVE_ASCII)); | 734 EXPECT_TRUE(StartsWith(ASCIIToUTF16("java"), string16(), false)); |
| 746 EXPECT_FALSE(StartsWith(string16(), ASCIIToUTF16("javascript"), | 735 EXPECT_TRUE(StartsWith(ASCIIToUTF16("java"), string16(), true)); |
| 747 base::CompareCase::SENSITIVE)); | |
| 748 EXPECT_TRUE(StartsWith(ASCIIToUTF16("java"), string16(), | |
| 749 base::CompareCase::INSENSITIVE_ASCII)); | |
| 750 EXPECT_TRUE(StartsWith(ASCIIToUTF16("java"), string16(), | |
| 751 base::CompareCase::SENSITIVE)); | |
| 752 } | 736 } |
| 753 | 737 |
| 754 TEST(StringUtilTest, EndsWith) { | 738 TEST(StringUtilTest, EndsWith) { |
| 755 EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), ASCIIToUTF16(".plugin"), | 739 EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), |
| 756 base::CompareCase::SENSITIVE)); | 740 ASCIIToUTF16(".plugin"), true)); |
| 757 EXPECT_FALSE(EndsWith(ASCIIToUTF16("Foo.Plugin"), ASCIIToUTF16(".plugin"), | 741 EXPECT_FALSE(EndsWith(ASCIIToUTF16("Foo.Plugin"), |
| 758 base::CompareCase::SENSITIVE)); | 742 ASCIIToUTF16(".plugin"), true)); |
| 759 EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), ASCIIToUTF16(".plugin"), | 743 EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), |
| 760 base::CompareCase::INSENSITIVE_ASCII)); | 744 ASCIIToUTF16(".plugin"), false)); |
| 761 EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.Plugin"), ASCIIToUTF16(".plugin"), | 745 EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.Plugin"), |
| 762 base::CompareCase::INSENSITIVE_ASCII)); | 746 ASCIIToUTF16(".plugin"), false)); |
| 763 EXPECT_FALSE(EndsWith(ASCIIToUTF16(".plug"), ASCIIToUTF16(".plugin"), | 747 EXPECT_FALSE(EndsWith(ASCIIToUTF16(".plug"), ASCIIToUTF16(".plugin"), true)); |
| 764 base::CompareCase::SENSITIVE)); | 748 EXPECT_FALSE(EndsWith(ASCIIToUTF16(".plug"), ASCIIToUTF16(".plugin"), false)); |
| 765 EXPECT_FALSE(EndsWith(ASCIIToUTF16(".plug"), ASCIIToUTF16(".plugin"), | 749 EXPECT_FALSE(EndsWith(ASCIIToUTF16("Foo.plugin Bar"), |
| 766 base::CompareCase::INSENSITIVE_ASCII)); | 750 ASCIIToUTF16(".plugin"), true)); |
| 767 EXPECT_FALSE(EndsWith(ASCIIToUTF16("Foo.plugin Bar"), ASCIIToUTF16(".plugin"), | 751 EXPECT_FALSE(EndsWith(ASCIIToUTF16("Foo.plugin Bar"), |
| 768 base::CompareCase::SENSITIVE)); | 752 ASCIIToUTF16(".plugin"), false)); |
| 769 EXPECT_FALSE(EndsWith(ASCIIToUTF16("Foo.plugin Bar"), ASCIIToUTF16(".plugin"), | 753 EXPECT_FALSE(EndsWith(string16(), ASCIIToUTF16(".plugin"), false)); |
| 770 base::CompareCase::INSENSITIVE_ASCII)); | 754 EXPECT_FALSE(EndsWith(string16(), ASCIIToUTF16(".plugin"), true)); |
| 771 EXPECT_FALSE(EndsWith(string16(), ASCIIToUTF16(".plugin"), | 755 EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), string16(), false)); |
| 772 base::CompareCase::INSENSITIVE_ASCII)); | 756 EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), string16(), true)); |
| 773 EXPECT_FALSE(EndsWith(string16(), ASCIIToUTF16(".plugin"), | 757 EXPECT_TRUE(EndsWith(ASCIIToUTF16(".plugin"), |
| 774 base::CompareCase::SENSITIVE)); | 758 ASCIIToUTF16(".plugin"), false)); |
| 775 EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), string16(), | 759 EXPECT_TRUE(EndsWith(ASCIIToUTF16(".plugin"), ASCIIToUTF16(".plugin"), true)); |
| 776 base::CompareCase::INSENSITIVE_ASCII)); | 760 EXPECT_TRUE(EndsWith(string16(), string16(), false)); |
| 777 EXPECT_TRUE(EndsWith(ASCIIToUTF16("Foo.plugin"), string16(), | 761 EXPECT_TRUE(EndsWith(string16(), string16(), true)); |
| 778 base::CompareCase::SENSITIVE)); | |
| 779 EXPECT_TRUE(EndsWith(ASCIIToUTF16(".plugin"), ASCIIToUTF16(".plugin"), | |
| 780 base::CompareCase::INSENSITIVE_ASCII)); | |
| 781 EXPECT_TRUE(EndsWith(ASCIIToUTF16(".plugin"), ASCIIToUTF16(".plugin"), | |
| 782 base::CompareCase::SENSITIVE)); | |
| 783 EXPECT_TRUE( | |
| 784 EndsWith(string16(), string16(), base::CompareCase::INSENSITIVE_ASCII)); | |
| 785 EXPECT_TRUE(EndsWith(string16(), string16(), base::CompareCase::SENSITIVE)); | |
| 786 } | 762 } |
| 787 | 763 |
| 788 TEST(StringUtilTest, GetStringFWithOffsets) { | 764 TEST(StringUtilTest, GetStringFWithOffsets) { |
| 789 std::vector<string16> subst; | 765 std::vector<string16> subst; |
| 790 subst.push_back(ASCIIToUTF16("1")); | 766 subst.push_back(ASCIIToUTF16("1")); |
| 791 subst.push_back(ASCIIToUTF16("2")); | 767 subst.push_back(ASCIIToUTF16("2")); |
| 792 std::vector<size_t> offsets; | 768 std::vector<size_t> offsets; |
| 793 | 769 |
| 794 ReplaceStringPlaceholders(ASCIIToUTF16("Hello, $1. Your number is $2."), | 770 ReplaceStringPlaceholders(ASCIIToUTF16("Hello, $1. Your number is $2."), |
| 795 subst, | 771 subst, |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1109 const std::string live = kLive; | 1085 const std::string live = kLive; |
| 1110 std::string dead = live; | 1086 std::string dead = live; |
| 1111 strncpy(WriteInto(&dead, 5), kDead, 4); | 1087 strncpy(WriteInto(&dead, 5), kDead, 4); |
| 1112 EXPECT_EQ(kDead, dead); | 1088 EXPECT_EQ(kDead, dead); |
| 1113 EXPECT_EQ(4u, dead.size()); | 1089 EXPECT_EQ(4u, dead.size()); |
| 1114 EXPECT_EQ(kLive, live); | 1090 EXPECT_EQ(kLive, live); |
| 1115 EXPECT_EQ(4u, live.size()); | 1091 EXPECT_EQ(4u, live.size()); |
| 1116 } | 1092 } |
| 1117 | 1093 |
| 1118 } // namespace base | 1094 } // namespace base |
| OLD | NEW |