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 |