| Index: third_party/WebKit/Source/web/tests/AccessibilityObjectModelTest.cpp
|
| diff --git a/third_party/WebKit/Source/web/tests/AccessibilityObjectModelTest.cpp b/third_party/WebKit/Source/web/tests/AccessibilityObjectModelTest.cpp
|
| index 1622da198469fc57d3212b66a099bb9412cff109..ac9a4f63ee2e92c209657d100c9e494e6e7c5d95 100644
|
| --- a/third_party/WebKit/Source/web/tests/AccessibilityObjectModelTest.cpp
|
| +++ b/third_party/WebKit/Source/web/tests/AccessibilityObjectModelTest.cpp
|
| @@ -3,6 +3,7 @@
|
| // found in the LICENSE file.
|
|
|
| #include "core/dom/AccessibleNode.h"
|
| +#include "core/dom/AccessibleNodeList.h"
|
| #include "core/html/HTMLBodyElement.h"
|
| #include "core/testing/sim/SimRequest.h"
|
| #include "core/testing/sim/SimTest.h"
|
| @@ -342,6 +343,41 @@ TEST_F(AccessibilityObjectModelTest, SparseAttributes) {
|
| ->RoleValue());
|
| }
|
|
|
| +TEST_F(AccessibilityObjectModelTest, LabeledBy) {
|
| + SimRequest main_resource("https://example.com/", "text/html");
|
| + LoadURL("https://example.com/");
|
| + main_resource.Complete(
|
| + "<input id=target aria-labelledby='l1 l2'>"
|
| + "<label id=l1>Label 1</label>"
|
| + "<label id=l2>Label 2</label>"
|
| + "<label id=l3>Label 3</label>");
|
| +
|
| + auto* target = GetDocument().getElementById("target");
|
| + auto* l1 = GetDocument().getElementById("l1");
|
| + auto* l2 = GetDocument().getElementById("l2");
|
| + auto* l3 = GetDocument().getElementById("l3");
|
| +
|
| + HeapVector<Member<Element>> labeled_by;
|
| + ASSERT_TRUE(AccessibleNode::GetPropertyOrARIAAttribute(
|
| + target, AOMRelationListProperty::kLabeledBy, labeled_by));
|
| + ASSERT_EQ(2U, labeled_by.size());
|
| + ASSERT_EQ(l1, labeled_by[0]);
|
| + ASSERT_EQ(l2, labeled_by[1]);
|
| +
|
| + AccessibleNodeList* node_list = target->accessibleNode()->labeledBy();
|
| + ASSERT_EQ(nullptr, node_list);
|
| +
|
| + node_list = new AccessibleNodeList();
|
| + node_list->add(l3->accessibleNode());
|
| + target->accessibleNode()->setLabeledBy(node_list);
|
| +
|
| + labeled_by.clear();
|
| + ASSERT_TRUE(AccessibleNode::GetPropertyOrARIAAttribute(
|
| + target, AOMRelationListProperty::kLabeledBy, labeled_by));
|
| + ASSERT_EQ(1U, labeled_by.size());
|
| + ASSERT_EQ(l3, labeled_by[0]);
|
| +}
|
| +
|
| } // namespace
|
|
|
| } // namespace blink
|
|
|