| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
| 3 * Copyright (C) 2006-present eyeo GmbH | 3 * Copyright (C) 2006-present eyeo GmbH |
| 4 * | 4 * |
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
| 6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
| 8 * | 8 * |
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 | 37 |
| 38 // Valid string | 38 // Valid string |
| 39 OwnedString s2(2); | 39 OwnedString s2(2); |
| 40 EXPECT_FALSE(s2.is_invalid()); | 40 EXPECT_FALSE(s2.is_invalid()); |
| 41 | 41 |
| 42 // Ensure we still have an invalid string. | 42 // Ensure we still have an invalid string. |
| 43 OwnedString s3(s); | 43 OwnedString s3(s); |
| 44 EXPECT_TRUE(s3.is_invalid()); | 44 EXPECT_TRUE(s3.is_invalid()); |
| 45 | 45 |
| 46 // Empty valid string lead to valid string. | 46 // Empty valid string lead to valid string. |
| 47 OwnedString s4(u""_str); | 47 OwnedString s4(ABP_TEXT(""_str)); |
| 48 EXPECT_FALSE(s4.is_invalid()); | 48 EXPECT_FALSE(s4.is_invalid()); |
| 49 } | 49 } |
| 50 | 50 |
| 51 TEST(TestStringTrimSpaces, zeroLengthString) | 51 TEST(TestStringTrimSpaces, zeroLengthString) |
| 52 { | 52 { |
| 53 EXPECT_EQ(u""_str, TrimSpaces(DependentString())); | 53 EXPECT_EQ(ABP_TEXT(""_str), TrimSpaces(DependentString())); |
| 54 EXPECT_EQ(u""_str, TrimSpaces(OwnedString())); | 54 EXPECT_EQ(ABP_TEXT(""_str), TrimSpaces(OwnedString())); |
| 55 EXPECT_EQ(u""_str, TrimSpaces(u""_str)); | 55 EXPECT_EQ(ABP_TEXT(""_str), TrimSpaces(ABP_TEXT(""_str))); |
| 56 } | 56 } |
| 57 | 57 |
| 58 TEST(TestStringTrimSpaces, spacesAreRemoved) | 58 TEST(TestStringTrimSpaces, spacesAreRemoved) |
| 59 { | 59 { |
| 60 for (uint16_t leftSpaces = 0; leftSpaces < 5; ++leftSpaces) | 60 for (uint16_t leftSpaces = 0; leftSpaces < 5; ++leftSpaces) |
| 61 { | 61 { |
| 62 for (uint16_t rightSpaces = 0; rightSpaces < 5; ++rightSpaces) | 62 for (uint16_t rightSpaces = 0; rightSpaces < 5; ++rightSpaces) |
| 63 { | 63 { |
| 64 for (uint16_t nonSpaces = 0; nonSpaces < 5; ++nonSpaces) | 64 for (uint16_t nonSpaces = 0; nonSpaces < 5; ++nonSpaces) |
| 65 { | 65 { |
| 66 OwnedString str; | 66 OwnedString str; |
| 67 std::string leftSpacesStdString(leftSpaces, ' '); | 67 std::string leftSpacesStdString(leftSpaces, ' '); |
| 68 str.append(leftSpacesStdString.c_str(), leftSpacesStdString.length()); | 68 str.append(leftSpacesStdString.c_str(), leftSpacesStdString.length()); |
| 69 std::string stdString(nonSpaces, 'a'); | 69 std::string stdString(nonSpaces, 'a'); |
| 70 OwnedString trimmedString; | 70 OwnedString trimmedString; |
| 71 trimmedString.append(stdString.c_str(), stdString.length()); | 71 trimmedString.append(stdString.c_str(), stdString.length()); |
| 72 str.append(trimmedString); | 72 str.append(trimmedString); |
| 73 std::string rightSpacesStdString(rightSpaces, ' '); | 73 std::string rightSpacesStdString(rightSpaces, ' '); |
| 74 str.append(rightSpacesStdString.c_str(), rightSpacesStdString.length()); | 74 str.append(rightSpacesStdString.c_str(), rightSpacesStdString.length()); |
| 75 EXPECT_EQ(trimmedString, TrimSpaces(str)); | 75 EXPECT_EQ(trimmedString, TrimSpaces(str)); |
| 76 } | 76 } |
| 77 } | 77 } |
| 78 } | 78 } |
| 79 } | 79 } |
| 80 | 80 |
| 81 TEST(TestStringSplitString, test) | 81 TEST(TestStringSplitString, test) |
| 82 { | 82 { |
| 83 { | 83 { |
| 84 auto str = u"123:abc"_str; | 84 auto str = ABP_TEXT("123:abc"_str); |
| 85 auto split = SplitString(str, 3); | 85 auto split = SplitString(str, 3); |
| 86 EXPECT_EQ(u"123"_str, split.first); | 86 EXPECT_EQ(ABP_TEXT("123"_str), split.first); |
| 87 EXPECT_EQ(u"abc"_str, split.second); | 87 EXPECT_EQ(ABP_TEXT("abc"_str), split.second); |
| 88 } | 88 } |
| 89 { | 89 { |
| 90 auto str = u"123:abc"_str; | 90 auto str = ABP_TEXT("123:abc"_str); |
| 91 auto split = SplitString(str, 0); | 91 auto split = SplitString(str, 0); |
| 92 EXPECT_EQ(u""_str, split.first); | 92 EXPECT_EQ(ABP_TEXT(""_str), split.first); |
| 93 EXPECT_EQ(u"23:abc"_str, split.second); | 93 EXPECT_EQ(ABP_TEXT("23:abc"_str), split.second); |
| 94 } | 94 } |
| 95 { | 95 { |
| 96 auto str = u"123:abc"_str; | 96 auto str = ABP_TEXT("123:abc"_str); |
| 97 auto split = SplitString(str, 6); | 97 auto split = SplitString(str, 6); |
| 98 EXPECT_EQ(u"123:ab"_str, split.first); | 98 EXPECT_EQ(ABP_TEXT("123:ab"_str), split.first); |
| 99 EXPECT_EQ(u""_str, split.second); | 99 EXPECT_EQ(ABP_TEXT(""_str), split.second); |
| 100 } | 100 } |
| 101 { | 101 { |
| 102 auto str = u"123:abc"_str; | 102 auto str = ABP_TEXT("123:abc"_str); |
| 103 auto split = SplitString(str, 7); | 103 auto split = SplitString(str, 7); |
| 104 EXPECT_EQ(u"123:abc"_str, split.first); | 104 EXPECT_EQ(ABP_TEXT("123:abc"_str), split.first); |
| 105 EXPECT_EQ(u""_str, split.second); | 105 EXPECT_EQ(ABP_TEXT(""_str), split.second); |
| 106 } | 106 } |
| 107 { | 107 { |
| 108 auto str = u"123:abc"_str; | 108 auto str = ABP_TEXT("123:abc"_str); |
| 109 auto split = SplitString(str, 10); | 109 auto split = SplitString(str, 10); |
| 110 EXPECT_EQ(u"123:abc"_str, split.first); | 110 EXPECT_EQ(ABP_TEXT("123:abc"_str), split.first); |
| 111 EXPECT_EQ(u""_str, split.second); | 111 EXPECT_EQ(ABP_TEXT(""_str), split.second); |
| 112 } | 112 } |
| 113 } | 113 } |
| 114 | 114 |
| 115 TEST(TestStringLexicalCast, toIntegers) | 115 TEST(TestStringLexicalCast, toIntegers) |
| 116 { | 116 { |
| 117 EXPECT_EQ(0, lexical_cast<int32_t>(u"0"_str)); | 117 EXPECT_EQ(0, lexical_cast<int32_t>(ABP_TEXT("0"_str))); |
| 118 EXPECT_EQ(1, lexical_cast<int32_t>(u"1"_str)); | 118 EXPECT_EQ(1, lexical_cast<int32_t>(ABP_TEXT("1"_str))); |
| 119 EXPECT_EQ(2, lexical_cast<int32_t>(u"2"_str)); | 119 EXPECT_EQ(2, lexical_cast<int32_t>(ABP_TEXT("2"_str))); |
| 120 EXPECT_EQ(10, lexical_cast<int32_t>(u"10"_str)); | 120 EXPECT_EQ(10, lexical_cast<int32_t>(ABP_TEXT("10"_str))); |
| 121 EXPECT_EQ(10, lexical_cast<int32_t>(u"010"_str)); | 121 EXPECT_EQ(10, lexical_cast<int32_t>(ABP_TEXT("010"_str))); |
| 122 EXPECT_EQ(-1, lexical_cast<int32_t>(u"-1"_str)); | 122 EXPECT_EQ(-1, lexical_cast<int32_t>(ABP_TEXT("-1"_str))); |
| 123 EXPECT_EQ(-2, lexical_cast<int32_t>(u"-2"_str)); | 123 EXPECT_EQ(-2, lexical_cast<int32_t>(ABP_TEXT("-2"_str))); |
| 124 EXPECT_EQ(-20, lexical_cast<int32_t>(u"-20"_str)); | 124 EXPECT_EQ(-20, lexical_cast<int32_t>(ABP_TEXT("-20"_str))); |
| 125 EXPECT_EQ(-20, lexical_cast<int32_t>(u"-020"_str)); | 125 EXPECT_EQ(-20, lexical_cast<int32_t>(ABP_TEXT("-020"_str))); |
| 126 EXPECT_EQ(0, lexical_cast<int32_t>(u"0-2"_str)); | 126 EXPECT_EQ(0, lexical_cast<int32_t>(ABP_TEXT("0-2"_str))); |
| 127 EXPECT_EQ(-2147483647, lexical_cast<int32_t>(u"-2147483647"_str)); | 127 EXPECT_EQ(-2147483647, lexical_cast<int32_t>(ABP_TEXT("-2147483647"_str))); |
| 128 EXPECT_EQ(-2147483648, lexical_cast<int32_t>(u"-2147483648"_str)); | 128 EXPECT_EQ(-2147483648, lexical_cast<int32_t>(ABP_TEXT("-2147483648"_str))); |
| 129 EXPECT_EQ( 0, lexical_cast<int32_t>(u"-2147483649"_str)); | 129 EXPECT_EQ( 0, lexical_cast<int32_t>(ABP_TEXT("-2147483649"_str))); |
| 130 EXPECT_EQ( 0, lexical_cast<int32_t>(u"-2157483649"_str)); | 130 EXPECT_EQ( 0, lexical_cast<int32_t>(ABP_TEXT("-2157483649"_str))); |
| 131 EXPECT_EQ( 0, lexical_cast<int32_t>(u"-3147483649"_str)); | 131 EXPECT_EQ( 0, lexical_cast<int32_t>(ABP_TEXT("-3147483649"_str))); |
| 132 EXPECT_EQ(-2147483648, lexical_cast<int32_t>(u"-02147483648"_str)); | 132 EXPECT_EQ(-2147483648, lexical_cast<int32_t>(ABP_TEXT("-02147483648"_str))); |
| 133 EXPECT_EQ(-2147483648, lexical_cast<int32_t>(u"-000002147483648"_str)); | 133 EXPECT_EQ(-2147483648, lexical_cast<int32_t>(ABP_TEXT("-000002147483648"_str))
); |
| 134 EXPECT_EQ( 0, lexical_cast<int32_t>(u"-21474836480"_str)); | 134 EXPECT_EQ( 0, lexical_cast<int32_t>(ABP_TEXT("-21474836480"_str))); |
| 135 EXPECT_EQ(2147483647, lexical_cast<int32_t>(u"2147483647"_str)); | 135 EXPECT_EQ(2147483647, lexical_cast<int32_t>(ABP_TEXT("2147483647"_str))); |
| 136 EXPECT_EQ(2147483647, lexical_cast<int32_t>(u"000002147483647"_str)); | 136 EXPECT_EQ(2147483647, lexical_cast<int32_t>(ABP_TEXT("000002147483647"_str))); |
| 137 EXPECT_EQ(2147483647, lexical_cast<int32_t>(u"02147483647"_str)); | 137 EXPECT_EQ(2147483647, lexical_cast<int32_t>(ABP_TEXT("02147483647"_str))); |
| 138 EXPECT_EQ( 0, lexical_cast<int32_t>(u"21474836470"_str)); | 138 EXPECT_EQ( 0, lexical_cast<int32_t>(ABP_TEXT("21474836470"_str))); |
| 139 EXPECT_EQ( 0, lexical_cast<int32_t>(u"2147483648"_str)); | 139 EXPECT_EQ( 0, lexical_cast<int32_t>(ABP_TEXT("2147483648"_str))); |
| 140 EXPECT_EQ( 0, lexical_cast<int32_t>(u"2157483648"_str)); | 140 EXPECT_EQ( 0, lexical_cast<int32_t>(ABP_TEXT("2157483648"_str))); |
| 141 EXPECT_EQ( 0, lexical_cast<int32_t>(u"3147483648"_str)); | 141 EXPECT_EQ( 0, lexical_cast<int32_t>(ABP_TEXT("3147483648"_str))); |
| 142 EXPECT_EQ(0u, lexical_cast<uint32_t>(u"0"_str)); | 142 EXPECT_EQ(0u, lexical_cast<uint32_t>(ABP_TEXT("0"_str))); |
| 143 EXPECT_EQ(2u, lexical_cast<uint32_t>(u"2"_str)); | 143 EXPECT_EQ(2u, lexical_cast<uint32_t>(ABP_TEXT("2"_str))); |
| 144 EXPECT_EQ(123u, lexical_cast<uint32_t>(u"123"_str)); | 144 EXPECT_EQ(123u, lexical_cast<uint32_t>(ABP_TEXT("123"_str))); |
| 145 EXPECT_EQ(123u, lexical_cast<uint32_t>(u"0123"_str)); | 145 EXPECT_EQ(123u, lexical_cast<uint32_t>(ABP_TEXT("0123"_str))); |
| 146 EXPECT_EQ(123u, lexical_cast<uint32_t>(u"0000123"_str)); | 146 EXPECT_EQ(123u, lexical_cast<uint32_t>(ABP_TEXT("0000123"_str))); |
| 147 EXPECT_EQ(4294967294u, lexical_cast<uint32_t>(u"4294967294"_str)); | 147 EXPECT_EQ(4294967294u, lexical_cast<uint32_t>(ABP_TEXT("4294967294"_str))); |
| 148 EXPECT_EQ(4294967295u, lexical_cast<uint32_t>(u"4294967295"_str)); | 148 EXPECT_EQ(4294967295u, lexical_cast<uint32_t>(ABP_TEXT("4294967295"_str))); |
| 149 EXPECT_EQ( 0u, lexical_cast<uint32_t>(u"4294967296"_str)); | 149 EXPECT_EQ( 0u, lexical_cast<uint32_t>(ABP_TEXT("4294967296"_str))); |
| 150 EXPECT_EQ( 0u, lexical_cast<uint32_t>(u"4594967295"_str)); | 150 EXPECT_EQ( 0u, lexical_cast<uint32_t>(ABP_TEXT("4594967295"_str))); |
| 151 EXPECT_EQ( 0u, lexical_cast<uint32_t>(u"5294967295"_str)); | 151 EXPECT_EQ( 0u, lexical_cast<uint32_t>(ABP_TEXT("5294967295"_str))); |
| 152 EXPECT_EQ( 0u, lexical_cast<uint32_t>(u"42949672950"_str)); | 152 EXPECT_EQ( 0u, lexical_cast<uint32_t>(ABP_TEXT("42949672950"_str))); |
| 153 EXPECT_EQ(4294967295u, lexical_cast<uint32_t>(u"04294967295"_str)); | 153 EXPECT_EQ(4294967295u, lexical_cast<uint32_t>(ABP_TEXT("04294967295"_str))); |
| 154 | 154 |
| 155 EXPECT_EQ(0, lexical_cast<int32_t>(u" 123"_str)); | 155 EXPECT_EQ(0, lexical_cast<int32_t>(ABP_TEXT(" 123"_str))); |
| 156 EXPECT_EQ(0u, lexical_cast<uint32_t>(u" 123"_str)); | 156 EXPECT_EQ(0u, lexical_cast<uint32_t>(ABP_TEXT(" 123"_str))); |
| 157 EXPECT_EQ(0, lexical_cast<int32_t>(u"123abc"_str)); | 157 EXPECT_EQ(0, lexical_cast<int32_t>(ABP_TEXT("123abc"_str))); |
| 158 EXPECT_EQ(0u, lexical_cast<uint32_t>(u"123abc"_str)); | 158 EXPECT_EQ(0u, lexical_cast<uint32_t>(ABP_TEXT("123abc"_str))); |
| 159 EXPECT_EQ(0, lexical_cast<int32_t>(u"1 23"_str)); | 159 EXPECT_EQ(0, lexical_cast<int32_t>(ABP_TEXT("1 23"_str))); |
| 160 EXPECT_EQ(0u, lexical_cast<uint32_t>(u"1 23"_str)); | 160 EXPECT_EQ(0u, lexical_cast<uint32_t>(ABP_TEXT("1 23"_str))); |
| 161 } | 161 } |
| 162 | 162 |
| 163 TEST(TestStringLexicalCast, toBoolean) | 163 TEST(TestStringLexicalCast, toBoolean) |
| 164 { | 164 { |
| 165 EXPECT_TRUE(lexical_cast<bool>(u"true"_str)); | 165 EXPECT_TRUE(lexical_cast<bool>(ABP_TEXT("true"_str))); |
| 166 EXPECT_FALSE(lexical_cast<bool>(u"true123"_str)); | 166 EXPECT_FALSE(lexical_cast<bool>(ABP_TEXT("true123"_str))); |
| 167 EXPECT_FALSE(lexical_cast<bool>(u"false"_str)); | 167 EXPECT_FALSE(lexical_cast<bool>(ABP_TEXT("false"_str))); |
| 168 EXPECT_FALSE(lexical_cast<bool>(u"some-string"_str)); | 168 EXPECT_FALSE(lexical_cast<bool>(ABP_TEXT("some-string"_str))); |
| 169 EXPECT_FALSE(lexical_cast<bool>(u""_str)); | 169 EXPECT_FALSE(lexical_cast<bool>(ABP_TEXT(""_str))); |
| 170 EXPECT_FALSE(lexical_cast<bool>(DependentString())); | 170 EXPECT_FALSE(lexical_cast<bool>(DependentString())); |
| 171 } | 171 } |
| 172 | 172 |
| 173 TEST(TestStringLexicalCast, toOwnedString) | 173 TEST(TestStringLexicalCast, toOwnedString) |
| 174 { | 174 { |
| 175 EXPECT_EQ(u"some-string"_str, lexical_cast<OwnedString>(u"some-string"_str)); | 175 EXPECT_EQ(ABP_TEXT("some-string"_str), lexical_cast<OwnedString>(ABP_TEXT("som
e-string"_str))); |
| 176 EXPECT_EQ(u""_str, lexical_cast<OwnedString>(u""_str)); | 176 EXPECT_EQ(ABP_TEXT(""_str), lexical_cast<OwnedString>(ABP_TEXT(""_str))); |
| 177 } | 177 } |
| OLD | NEW |