OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/i18n/rtl.h" | 7 #include "base/i18n/rtl.h" |
8 #include "base/i18n/string_search.h" | 8 #include "base/i18n/string_search.h" |
9 #include "base/strings/string16.h" | 9 #include "base/strings/string16.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 | 192 |
193 const char* default_locale = uloc_getDefault(); | 193 const char* default_locale = uloc_getDefault(); |
194 SetICUDefaultLocale("da"); | 194 SetICUDefaultLocale("da"); |
195 | 195 |
196 EXPECT_FALSE(StringSearchIgnoringCaseAndAccents( | 196 EXPECT_FALSE(StringSearchIgnoringCaseAndAccents( |
197 a_base, a_with_ring, NULL, NULL)); | 197 a_base, a_with_ring, NULL, NULL)); |
198 | 198 |
199 SetICUDefaultLocale(default_locale); | 199 SetICUDefaultLocale(default_locale); |
200 } | 200 } |
201 | 201 |
| 202 TEST(StringSearchTest, FixedPatternMultipleSearch) { |
| 203 std::string default_locale(uloc_getDefault()); |
| 204 bool locale_is_posix = (default_locale == "en_US_POSIX"); |
| 205 if (locale_is_posix) |
| 206 SetICUDefaultLocale("en_US"); |
| 207 |
| 208 size_t index = 0; |
| 209 size_t length = 0; |
| 210 |
| 211 // Search "hello" over multiple texts. |
| 212 FixedPatternStringSearchIgnoringCaseAndAccents query(ASCIIToUTF16("hello")); |
| 213 EXPECT_TRUE(query.Search(ASCIIToUTF16("12hello34"), &index, &length)); |
| 214 EXPECT_EQ(2U, index); |
| 215 EXPECT_EQ(5U, length); |
| 216 EXPECT_FALSE(query.Search(ASCIIToUTF16("bye"), &index, &length)); |
| 217 EXPECT_TRUE(query.Search(ASCIIToUTF16("hELLo"), &index, &length)); |
| 218 EXPECT_EQ(0U, index); |
| 219 EXPECT_EQ(5U, length); |
| 220 |
| 221 if (locale_is_posix) |
| 222 SetICUDefaultLocale(default_locale.data()); |
| 223 } |
| 224 |
202 } // namespace i18n | 225 } // namespace i18n |
203 } // namespace base | 226 } // namespace base |
OLD | NEW |