Skip to content

Commit

Permalink
Formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
yaakovschectman committed Apr 4, 2023
1 parent fa5f1dc commit ec9de30
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -435,8 +435,13 @@ HRESULT AXPlatformNodeTextRangeProviderWin::FindAttributeRange(
return S_OK;
}

static bool StringSearchBasic(const std::u16string_view search_string, const std::u16string_view find_in, size_t* find_start, size_t* find_length, bool backwards) {
size_t index = backwards ? find_in.rfind(search_string) : find_in.find(search_string);
static bool StringSearchBasic(const std::u16string_view search_string,
const std::u16string_view find_in,
size_t* find_start,
size_t* find_length,
bool backwards) {
size_t index =
backwards ? find_in.rfind(search_string) : find_in.find(search_string);
if (index == std::u16string::npos) {
return false;
}
Expand All @@ -446,19 +451,22 @@ static bool StringSearchBasic(const std::u16string_view search_string, const std
}

bool StringSearch(std::u16string_view search_string,
std::u16string_view find_in,
size_t* find_start,
size_t* find_length,
bool ignore_case,
bool backwards) {
std::u16string_view find_in,
size_t* find_start,
size_t* find_length,
bool ignore_case,
bool backwards) {
UErrorCode status = U_ZERO_ERROR;
UCollator* col = ucol_open(uloc_getDefault(), &status);
UStringSearch* search = usearch_openFromCollator(search_string.data(), search_string.size(), find_in.data(), find_in.size(), col, nullptr, &status);
UStringSearch* search = usearch_openFromCollator(
search_string.data(), search_string.size(), find_in.data(),
find_in.size(), col, nullptr, &status);
if (!U_SUCCESS(status)) {
if (search) {
usearch_close(search);
}
return StringSearchBasic(search_string, find_in, find_start, find_length, backwards);
return StringSearchBasic(search_string, find_in, find_start, find_length,
backwards);
}
UCollator* collator = usearch_getCollator(search);
ucol_setStrength(collator, ignore_case ? UCOL_PRIMARY : UCOL_TERTIARY);
Expand All @@ -469,9 +477,11 @@ bool StringSearch(std::u16string_view search_string,
if (search) {
usearch_close(search);
}
return StringSearchBasic(search_string, find_in, find_start, find_length, backwards);
return StringSearchBasic(search_string, find_in, find_start, find_length,
backwards);
}
int32_t index = backwards ? usearch_last(search, &status) : usearch_first(search, &status);
int32_t index = backwards ? usearch_last(search, &status)
: usearch_first(search, &status);
bool match = false;
if (U_SUCCESS(status) && index != USEARCH_DONE) {
match = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -284,11 +284,11 @@ class AX_EXPORT __declspec(uuid("3071e40d-a10d-45ff-a59f-6e8e1138e2c1"))
//
// Exposed as non-static for use in testing.
bool StringSearch(std::u16string_view search_string,
std::u16string_view find_in,
size_t* find_start,
size_t* find_length,
bool ignore_case,
bool backwards);
std::u16string_view find_in,
size_t* find_start,
size_t* find_length,
bool ignore_case,
bool backwards);

} // namespace ui

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,25 +147,25 @@ namespace ui {
EXPECT_STREQ(expected_content, provider_content.Get()); \
}

#define EXPECT_UIA_FIND_TEXT(text_range_provider, search_term, ignore_case, \
owner) \
{ \
base::win::ScopedBstr find_string(search_term); \
ComPtr<ITextRangeProvider> text_range_provider_found; \
EXPECT_HRESULT_SUCCEEDED(text_range_provider->FindText( \
find_string.Get(), false, ignore_case, &text_range_provider_found)); \
if (text_range_provider_found == nullptr) { \
EXPECT_TRUE(false); \
} else { \
SetOwner(owner, text_range_provider_found.Get()); \
base::win::ScopedBstr found_content; \
EXPECT_HRESULT_SUCCEEDED( \
text_range_provider_found->GetText(-1, found_content.Receive())); \
if (ignore_case) \
EXPECT_TRUE(StringCompareICU(found_content.Get(), find_string.Get())); \
else \
EXPECT_EQ(0, wcscmp(found_content.Get(), find_string.Get())); \
} \
#define EXPECT_UIA_FIND_TEXT(text_range_provider, search_term, ignore_case, \
owner) \
{ \
base::win::ScopedBstr find_string(search_term); \
ComPtr<ITextRangeProvider> text_range_provider_found; \
EXPECT_HRESULT_SUCCEEDED(text_range_provider->FindText( \
find_string.Get(), false, ignore_case, &text_range_provider_found)); \
if (text_range_provider_found == nullptr) { \
EXPECT_TRUE(false); \
} else { \
SetOwner(owner, text_range_provider_found.Get()); \
base::win::ScopedBstr found_content; \
EXPECT_HRESULT_SUCCEEDED( \
text_range_provider_found->GetText(-1, found_content.Receive())); \
if (ignore_case) \
EXPECT_TRUE(StringCompareICU(found_content.Get(), find_string.Get())); \
else \
EXPECT_EQ(0, wcscmp(found_content.Get(), find_string.Get())); \
} \
}

#define EXPECT_UIA_FIND_TEXT_NO_MATCH(text_range_provider, search_term, \
Expand Down Expand Up @@ -214,7 +214,9 @@ namespace ui {

static bool StringCompareICU(BSTR left, BSTR right) {
size_t start, length;
if (!StringSearch(reinterpret_cast<char16_t*>(left), reinterpret_cast<char16_t*>(right), &start, &length, true, false)) {
if (!StringSearch(reinterpret_cast<char16_t*>(left),
reinterpret_cast<char16_t*>(right), &start, &length, true,
false)) {
return false;
}
return start == 0 && length == wcslen(left);
Expand Down Expand Up @@ -5145,7 +5147,7 @@ TEST_F(AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderFindText) {
EXPECT_UIA_FIND_TEXT(range, L"more", false, owner);
// Accented lowercase e.
EXPECT_UIA_FIND_TEXT(range, L"resum\xE9", false, owner);
// Accented uppercase e.
// Accented uppercase +e.
EXPECT_UIA_FIND_TEXT(range, L"resum\xC9", true, owner);
EXPECT_UIA_FIND_TEXT(range, L"resume", true, owner);
EXPECT_UIA_FIND_TEXT(range, L"resumE", true, owner);
Expand Down

0 comments on commit ec9de30

Please sign in to comment.