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