Flutter Engine
The Flutter Engine
Classes | Namespaces | Macros | Functions
ax_platform_node_textrangeprovider_win_unittest.cc File Reference
#include "ax/platform/ax_platform_node_win_unittest.h"
#include <UIAutomationClient.h>
#include <UIAutomationCoreApi.h>
#include <filesystem>
#include <memory>
#include <utility>
#include "ax/ax_tree.h"
#include "ax/platform/ax_fragment_root_win.h"
#include "ax/platform/ax_platform_node_textrangeprovider_win.h"
#include "base/win/atl.h"
#include "base/win/scoped_bstr.h"
#include "base/win/scoped_safearray.h"
#include "base/win/scoped_variant.h"
#include "flutter/fml/icu_util.h"
#include "third_party/icu/source/common/unicode/putil.h"

Go to the source code of this file.

Classes

class  ui::AXPlatformNodeTextRangeProviderTest
 
class  ui::MockAXPlatformNodeTextRangeProviderWin
 

Namespaces

namespace  ui
 

Macros

#define EXPECT_UIA_ELEMENTNOTAVAILABLE(expr)    EXPECT_EQ(static_cast<HRESULT>(UIA_E_ELEMENTNOTAVAILABLE), (expr))
 
#define EXPECT_UIA_INVALIDOPERATION(expr)    EXPECT_EQ(static_cast<HRESULT>(UIA_E_INVALIDOPERATION), (expr))
 
#define EXPECT_UIA_ELEMENTNOTENABLED(expr)    EXPECT_EQ(static_cast<HRESULT>(UIA_E_ELEMENTNOTENABLED), (expr))
 
#define EXPECT_UIA_NOTSUPPORTED(expr)    EXPECT_EQ(static_cast<HRESULT>(UIA_E_NOTSUPPORTED), (expr))
 
#define ASSERT_UIA_ELEMENTNOTAVAILABLE(expr)    ASSERT_EQ(static_cast<HRESULT>(UIA_E_ELEMENTNOTAVAILABLE), (expr))
 
#define ASSERT_UIA_INVALIDOPERATION(expr)    ASSERT_EQ(static_cast<HRESULT>(UIA_E_INVALIDOPERATION), (expr))
 
#define ASSERT_UIA_ELEMENTNOTENABLED(expr)    ASSERT_EQ(static_cast<HRESULT>(UIA_E_ELEMENTNOTENABLED), (expr))
 
#define ASSERT_UIA_NOTSUPPORTED(expr)    ASSERT_EQ(static_cast<HRESULT>(UIA_E_NOTSUPPORTED), (expr))
 
#define EXPECT_UIA_GETPROPERTYVALUE_EQ(node, property_id, expected)
 
#define EXPECT_UIA_ELEMENT_ARRAY_BSTR_EQ(array, element_test_property_id, expected_property_values)
 
#define EXPECT_UIA_SAFEARRAY_EQ(safearray, expected_property_values)
 
#define EXPECT_UIA_TEXTATTRIBUTE_EQ(provider, attribute, variant)
 
#define EXPECT_UIA_TEXTATTRIBUTE_MIXED(provider, attribute)
 
#define EXPECT_UIA_TEXTATTRIBUTE_NOTSUPPORTED(provider, attribute)
 
#define EXPECT_UIA_TEXTRANGE_EQ(provider, expected_content)
 
#define EXPECT_UIA_FIND_TEXT(text_range_provider, search_term, ignore_case, owner)
 
#define EXPECT_UIA_FIND_TEXT_NO_MATCH(text_range_provider, search_term, ignore_case, owner)
 
#define EXPECT_UIA_MOVE_ENDPOINT_BY_UNIT(text_range_provider, endpoint, unit, count, expected_text, expected_count)
 
#define EXPECT_UIA_MOVE(text_range_provider, unit, count, expected_text, expected_count)
 
#define EXPECT_ENCLOSING_ELEMENT(ax_node_given, ax_node_expected)
 
#define DCHECK_EQ(a, b)   BASE_DCHECK((a) == (b))
 

Functions

static bool ui::StringCompareICU (BSTR left, BSTR right)
 
static AXNodePosition::AXPositionInstance ui::CreateTextPosition (const AXNode &anchor, int text_offset, ax::mojom::TextAffinity affinity)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderClone)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderCompareEndpoints)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderExpandToEnclosingCharacter)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderExpandToEnclosingWord)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderExpandToEnclosingLine)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderExpandToEnclosingParagraph)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderExpandToEnclosingFormat)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderExpandToEnclosingFormatWithEmptyObjects)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderExpandToEnclosingDocument)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderIgnoredForTextNavigation)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderInvalidCalls)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderGetText)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderMoveCharacter)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderMoveFormat)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderMoveWord)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderMoveLine)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderMoveParagraph)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderMoveDocument)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderMove)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderMoveEndpointByDocument)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderMoveEndpointByCharacterMultilingual)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderMoveEndpointByWord)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderMoveEndpointByLine)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderMoveEndpointByUnitTextField)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderMoveEndpointByFormat)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderCompare)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderSelection)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderGetBoundingRectangles)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderGetEnclosingElement)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderGetEnclosingElementRichButton)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderMoveEndpointByRange)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderGetAttributeValue)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderGetAttributeValueAnnotationObjects)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderGetAttributeValueAnnotationObjectsMixed)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderGetAttributeValueNotSupported)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderGetAttributeValueWithAncestorTextPosition)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderSelect)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderSelectListMarker)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderFindText)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, FindTextWithEmbeddedObjectCharacter)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderFindTextBackwards)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestITextRangeProviderFindAttribute)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, ElementNotAvailable)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestITextRangeProviderIgnoredNodes)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestNormalizeTextRangePastEndOfDocument)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestNormalizeTextRangePastEndOfDocumentWithIgnoredNodes)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestNormalizeTextRangeInsideIgnoredNodes)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestNormalizeTextRangeSpanIgnoredNodes)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestNormalizeTextRangeForceSameAnchorOnDegenerateRange)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestValidateStartAndEnd)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestReplaceStartAndEndEndpointNode)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestDeleteSubtreeThatIncludesEndpoints)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestDeleteSubtreeWithIgnoredAncestors)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_TestDeleteSubtreeThatIncludesEndpointsNormalizeMoves)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestDeleteTreePositionPreviousSibling)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, TestReplaceStartAndEndEndpointRepeatRemoval)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, CaretAtEndOfTextFieldReadOnly)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_GeneratedNewlineReturnsCommonAnchorReadonly)
 
 ui::TEST_F (AXPlatformNodeTextRangeProviderTest, DISABLED_MoveEndpointToLastIgnoredForTextNavigationNode)
 

Macro Definition Documentation

◆ ASSERT_UIA_ELEMENTNOTAVAILABLE

#define ASSERT_UIA_ELEMENTNOTAVAILABLE (   expr)     ASSERT_EQ(static_cast<HRESULT>(UIA_E_ELEMENTNOTAVAILABLE), (expr))

◆ ASSERT_UIA_ELEMENTNOTENABLED

#define ASSERT_UIA_ELEMENTNOTENABLED (   expr)     ASSERT_EQ(static_cast<HRESULT>(UIA_E_ELEMENTNOTENABLED), (expr))

◆ ASSERT_UIA_INVALIDOPERATION

#define ASSERT_UIA_INVALIDOPERATION (   expr)     ASSERT_EQ(static_cast<HRESULT>(UIA_E_INVALIDOPERATION), (expr))

◆ ASSERT_UIA_NOTSUPPORTED

#define ASSERT_UIA_NOTSUPPORTED (   expr)     ASSERT_EQ(static_cast<HRESULT>(UIA_E_NOTSUPPORTED), (expr))

◆ DCHECK_EQ

#define DCHECK_EQ (   a,
  b 
)    BASE_DCHECK((a) == (b))

◆ EXPECT_ENCLOSING_ELEMENT

#define EXPECT_ENCLOSING_ELEMENT (   ax_node_given,
  ax_node_expected 
)
Value:
{ \
ComPtr<ITextRangeProvider> text_range_provider; \
GetTextRangeProviderFromTextNode(text_range_provider, ax_node_given); \
ComPtr<IRawElementProviderSimple> enclosing_element; \
ASSERT_HRESULT_SUCCEEDED( \
text_range_provider->GetEnclosingElement(&enclosing_element)); \
ComPtr<IRawElementProviderSimple> expected_text_provider = \
QueryInterfaceFromNode<IRawElementProviderSimple>(ax_node_expected); \
EXPECT_EQ(expected_text_provider.Get(), enclosing_element.Get()); \
}

Definition at line 201 of file ax_platform_node_textrangeprovider_win_unittest.cc.

◆ EXPECT_UIA_ELEMENT_ARRAY_BSTR_EQ

#define EXPECT_UIA_ELEMENT_ARRAY_BSTR_EQ (   array,
  element_test_property_id,
  expected_property_values 
)
Value:
{ \
ASSERT_EQ(1u, SafeArrayGetDim(array)); \
LONG array_lower_bound; \
ASSERT_HRESULT_SUCCEEDED( \
SafeArrayGetLBound(array, 1, &array_lower_bound)); \
LONG array_upper_bound; \
ASSERT_HRESULT_SUCCEEDED( \
SafeArrayGetUBound(array, 1, &array_upper_bound)); \
IUnknown** array_data; \
ASSERT_HRESULT_SUCCEEDED( \
::SafeArrayAccessData(array, reinterpret_cast<void**>(&array_data))); \
size_t count = array_upper_bound - array_lower_bound + 1; \
ASSERT_EQ(expected_property_values.size(), count); \
for (size_t i = 0; i < count; ++i) { \
ComPtr<IRawElementProviderSimple> element; \
ASSERT_HRESULT_SUCCEEDED( \
array_data[i]->QueryInterface(IID_PPV_ARGS(&element))); \
EXPECT_UIA_GETPROPERTYVALUE_EQ(element, element_test_property_id, \
expected_property_values[i].c_str()); \
} \
ASSERT_HRESULT_SUCCEEDED(::SafeArrayUnaccessData(array)); \
}
int count
Definition: FontMgrTest.cpp:50

Definition at line 60 of file ax_platform_node_textrangeprovider_win_unittest.cc.

◆ EXPECT_UIA_ELEMENTNOTAVAILABLE

#define EXPECT_UIA_ELEMENTNOTAVAILABLE (   expr)     EXPECT_EQ(static_cast<HRESULT>(UIA_E_ELEMENTNOTAVAILABLE), (expr))

◆ EXPECT_UIA_ELEMENTNOTENABLED

#define EXPECT_UIA_ELEMENTNOTENABLED (   expr)     EXPECT_EQ(static_cast<HRESULT>(UIA_E_ELEMENTNOTENABLED), (expr))

◆ EXPECT_UIA_FIND_TEXT

#define EXPECT_UIA_FIND_TEXT (   text_range_provider,
  search_term,
  ignore_case,
  owner 
)
Value:
{ \
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())); \
} \
}
static int find_string(const TArray< SkString > &strings, const char ext[])
static bool StringCompareICU(BSTR left, BSTR right)

Definition at line 150 of file ax_platform_node_textrangeprovider_win_unittest.cc.

◆ EXPECT_UIA_FIND_TEXT_NO_MATCH

#define EXPECT_UIA_FIND_TEXT_NO_MATCH (   text_range_provider,
  search_term,
  ignore_case,
  owner 
)
Value:
{ \
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)); \
EXPECT_EQ(nullptr, text_range_provider_found); \
}

Definition at line 171 of file ax_platform_node_textrangeprovider_win_unittest.cc.

◆ EXPECT_UIA_GETPROPERTYVALUE_EQ

#define EXPECT_UIA_GETPROPERTYVALUE_EQ (   node,
  property_id,
  expected 
)
Value:
{ \
base::win::ScopedVariant expectedVariant(expected); \
ASSERT_EQ(VT_BSTR, expectedVariant.type()); \
ASSERT_NE(nullptr, expectedVariant.ptr()->bstrVal); \
base::win::ScopedVariant actual; \
ASSERT_HRESULT_SUCCEEDED( \
node->GetPropertyValue(property_id, actual.Receive())); \
ASSERT_EQ(VT_BSTR, actual.type()); \
ASSERT_NE(nullptr, actual.ptr()->bstrVal); \
EXPECT_STREQ(expectedVariant.ptr()->bstrVal, actual.ptr()->bstrVal); \
}

Definition at line 47 of file ax_platform_node_textrangeprovider_win_unittest.cc.

◆ EXPECT_UIA_INVALIDOPERATION

#define EXPECT_UIA_INVALIDOPERATION (   expr)     EXPECT_EQ(static_cast<HRESULT>(UIA_E_INVALIDOPERATION), (expr))

◆ EXPECT_UIA_MOVE

#define EXPECT_UIA_MOVE (   text_range_provider,
  unit,
  count,
  expected_text,
  expected_count 
)
Value:
{ \
int result_count; \
EXPECT_HRESULT_SUCCEEDED( \
text_range_provider->Move(unit, count, &result_count)); \
EXPECT_EQ(expected_count, result_count); \
EXPECT_UIA_TEXTRANGE_EQ(text_range_provider, expected_text); \
}

Definition at line 191 of file ax_platform_node_textrangeprovider_win_unittest.cc.

◆ EXPECT_UIA_MOVE_ENDPOINT_BY_UNIT

#define EXPECT_UIA_MOVE_ENDPOINT_BY_UNIT (   text_range_provider,
  endpoint,
  unit,
  count,
  expected_text,
  expected_count 
)
Value:
{ \
int result_count; \
EXPECT_HRESULT_SUCCEEDED(text_range_provider->MoveEndpointByUnit( \
endpoint, unit, count, &result_count)); \
EXPECT_EQ(expected_count, result_count); \
EXPECT_UIA_TEXTRANGE_EQ(text_range_provider, expected_text); \
}

Definition at line 181 of file ax_platform_node_textrangeprovider_win_unittest.cc.

◆ EXPECT_UIA_NOTSUPPORTED

#define EXPECT_UIA_NOTSUPPORTED (   expr)     EXPECT_EQ(static_cast<HRESULT>(UIA_E_NOTSUPPORTED), (expr))

◆ EXPECT_UIA_SAFEARRAY_EQ

#define EXPECT_UIA_SAFEARRAY_EQ (   safearray,
  expected_property_values 
)
Value:
{ \
using T = typename decltype(expected_property_values)::value_type; \
EXPECT_EQ(sizeof(T), ::SafeArrayGetElemsize(safearray)); \
EXPECT_EQ(1u, SafeArrayGetDim(safearray)); \
LONG array_lower_bound; \
EXPECT_HRESULT_SUCCEEDED( \
SafeArrayGetLBound(safearray, 1, &array_lower_bound)); \
LONG array_upper_bound; \
EXPECT_HRESULT_SUCCEEDED( \
SafeArrayGetUBound(safearray, 1, &array_upper_bound)); \
const size_t count = array_upper_bound - array_lower_bound + 1; \
EXPECT_EQ(expected_property_values.size(), count); \
if (sizeof(T) == ::SafeArrayGetElemsize(safearray) && \
count == expected_property_values.size()) { \
T* array_data; \
EXPECT_HRESULT_SUCCEEDED(::SafeArrayAccessData( \
safearray, reinterpret_cast<void**>(&array_data))); \
for (size_t i = 0; i < count; ++i) { \
EXPECT_EQ(array_data[i], expected_property_values[i]); \
} \
EXPECT_HRESULT_SUCCEEDED(::SafeArrayUnaccessData(safearray)); \
} \
}
#define T
Definition: precompiler.cc:65

Definition at line 85 of file ax_platform_node_textrangeprovider_win_unittest.cc.

◆ EXPECT_UIA_TEXTATTRIBUTE_EQ

#define EXPECT_UIA_TEXTATTRIBUTE_EQ (   provider,
  attribute,
  variant 
)
Value:
{ \
base::win::ScopedVariant scoped_variant; \
EXPECT_HRESULT_SUCCEEDED( \
provider->GetAttributeValue(attribute, scoped_variant.Receive())); \
EXPECT_EQ(0, scoped_variant.Compare(variant)); \
}

Definition at line 110 of file ax_platform_node_textrangeprovider_win_unittest.cc.

◆ EXPECT_UIA_TEXTATTRIBUTE_MIXED

#define EXPECT_UIA_TEXTATTRIBUTE_MIXED (   provider,
  attribute 
)
Value:
{ \
ComPtr<IUnknown> expected_mixed; \
EXPECT_HRESULT_SUCCEEDED( \
::UiaGetReservedMixedAttributeValue(&expected_mixed)); \
base::win::ScopedVariant scoped_variant; \
EXPECT_HRESULT_SUCCEEDED( \
provider->GetAttributeValue(attribute, scoped_variant.Receive())); \
EXPECT_EQ(VT_UNKNOWN, scoped_variant.type()); \
EXPECT_EQ(expected_mixed.Get(), V_UNKNOWN(scoped_variant.ptr())); \
}

Definition at line 118 of file ax_platform_node_textrangeprovider_win_unittest.cc.

◆ EXPECT_UIA_TEXTATTRIBUTE_NOTSUPPORTED

#define EXPECT_UIA_TEXTATTRIBUTE_NOTSUPPORTED (   provider,
  attribute 
)
Value:
{ \
ComPtr<IUnknown> expected_notsupported; \
EXPECT_HRESULT_SUCCEEDED( \
::UiaGetReservedNotSupportedValue(&expected_notsupported)); \
base::win::ScopedVariant scoped_variant; \
EXPECT_HRESULT_SUCCEEDED( \
provider->GetAttributeValue(attribute, scoped_variant.Receive())); \
EXPECT_EQ(VT_UNKNOWN, scoped_variant.type()); \
EXPECT_EQ(expected_notsupported.Get(), V_UNKNOWN(scoped_variant.ptr())); \
}

Definition at line 130 of file ax_platform_node_textrangeprovider_win_unittest.cc.

◆ EXPECT_UIA_TEXTRANGE_EQ

#define EXPECT_UIA_TEXTRANGE_EQ (   provider,
  expected_content 
)
Value:
{ \
base::win::ScopedBstr provider_content; \
EXPECT_HRESULT_SUCCEEDED( \
provider->GetText(-1, provider_content.Receive())); \
EXPECT_STREQ(expected_content, provider_content.Get()); \
}

Definition at line 142 of file ax_platform_node_textrangeprovider_win_unittest.cc.