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 cee1987b9679349e1a4a98122dec9da3d32a2675..bd07048daa9fb303dad68700266246587cc04eae 100644 |
--- a/third_party/WebKit/Source/web/tests/AccessibilityObjectModelTest.cpp |
+++ b/third_party/WebKit/Source/web/tests/AccessibilityObjectModelTest.cpp |
@@ -5,6 +5,9 @@ |
#include "core/dom/AccessibleNode.h" |
#include "core/html/HTMLBodyElement.h" |
#include "modules/accessibility/AXObjectCacheImpl.h" |
+#include "modules/accessibility/AXTable.h" |
+#include "modules/accessibility/AXTableCell.h" |
+#include "modules/accessibility/AXTableRow.h" |
#include "platform/testing/RuntimeEnabledFeaturesTestHelpers.h" |
#include "web/tests/sim/SimRequest.h" |
#include "web/tests/sim/SimTest.h" |
@@ -131,6 +134,104 @@ TEST_F(AccessibilityObjectModelTest, AOMPropertiesCanBeCleared) { |
EXPECT_FALSE(axButton->IsEnabled()); |
} |
+TEST_F(AccessibilityObjectModelTest, RangeProperties) { |
+ SimRequest main_resource("https://example.com/", "text/html"); |
+ LoadURL("https://example.com/"); |
+ main_resource.Complete("<div role=slider id=slider>"); |
+ |
+ auto* slider = GetDocument().getElementById("slider"); |
+ ASSERT_NE(nullptr, slider); |
+ slider->accessibleNode()->setValueMin(-0.5, false); |
+ slider->accessibleNode()->setValueMax(0.5, false); |
+ slider->accessibleNode()->setValueNow(0.1, false); |
+ |
+ auto* cache = AXObjectCache(); |
+ ASSERT_NE(nullptr, cache); |
+ auto* ax_slider = cache->GetOrCreate(slider); |
+ EXPECT_EQ(-0.5f, ax_slider->MinValueForRange()); |
+ EXPECT_EQ(0.5f, ax_slider->MaxValueForRange()); |
+ EXPECT_EQ(0.1f, ax_slider->ValueForRange()); |
+} |
+ |
+TEST_F(AccessibilityObjectModelTest, Level) { |
+ SimRequest main_resource("https://example.com/", "text/html"); |
+ LoadURL("https://example.com/"); |
+ main_resource.Complete("<div role=heading id=heading>"); |
+ |
+ auto* heading = GetDocument().getElementById("heading"); |
+ ASSERT_NE(nullptr, heading); |
+ heading->accessibleNode()->setLevel(5, false); |
+ |
+ auto* cache = AXObjectCache(); |
+ ASSERT_NE(nullptr, cache); |
+ auto* ax_heading = cache->GetOrCreate(heading); |
+ EXPECT_EQ(5, ax_heading->HeadingLevel()); |
+} |
+ |
+TEST_F(AccessibilityObjectModelTest, ListItem) { |
+ SimRequest main_resource("https://example.com/", "text/html"); |
+ LoadURL("https://example.com/"); |
+ main_resource.Complete( |
+ "<div role=list><div role=listitem id=listitem></div></div>"); |
+ |
+ auto* listitem = GetDocument().getElementById("listitem"); |
+ ASSERT_NE(nullptr, listitem); |
+ listitem->accessibleNode()->setPosInSet(9, false); |
+ listitem->accessibleNode()->setSetSize(10, false); |
+ |
+ auto* cache = AXObjectCache(); |
+ ASSERT_NE(nullptr, cache); |
+ auto* ax_listitem = cache->GetOrCreate(listitem); |
+ EXPECT_EQ(9, ax_listitem->PosInSet()); |
+ EXPECT_EQ(10, ax_listitem->SetSize()); |
+} |
+ |
+TEST_F(AccessibilityObjectModelTest, Grid) { |
+ SimRequest main_resource("https://example.com/", "text/html"); |
+ LoadURL("https://example.com/"); |
+ main_resource.Complete( |
+ "<div role=grid id=grid>" |
+ " <div role=row id=row>" |
+ " <div role=gridcell id=cell></div>" |
+ " <div role=gridcell id=cell2></div>" |
+ " </div>" |
+ "</div>"); |
+ |
+ auto* grid = GetDocument().getElementById("grid"); |
+ ASSERT_NE(nullptr, grid); |
+ grid->accessibleNode()->setColCount(16, false); |
+ grid->accessibleNode()->setRowCount(9, false); |
+ |
+ auto* row = GetDocument().getElementById("row"); |
+ ASSERT_NE(nullptr, row); |
+ row->accessibleNode()->setColIndex(8, false); |
+ row->accessibleNode()->setRowIndex(5, false); |
+ |
+ auto* cell = GetDocument().getElementById("cell"); |
+ |
+ auto* cell2 = GetDocument().getElementById("cell2"); |
+ ASSERT_NE(nullptr, cell2); |
+ cell2->accessibleNode()->setColIndex(10, false); |
+ cell2->accessibleNode()->setRowIndex(7, false); |
+ |
+ auto* cache = AXObjectCache(); |
+ ASSERT_NE(nullptr, cache); |
+ |
+ auto* ax_grid = static_cast<AXTable*>(cache->GetOrCreate(grid)); |
+ EXPECT_EQ(16, ax_grid->AriaColumnCount()); |
+ EXPECT_EQ(9, ax_grid->AriaRowCount()); |
+ |
+ auto* ax_cell = static_cast<AXTableCell*>(cache->GetOrCreate(cell)); |
+ EXPECT_TRUE(ax_cell->IsTableCell()); |
+ EXPECT_EQ(8U, ax_cell->AriaColumnIndex()); |
+ EXPECT_EQ(5U, ax_cell->AriaRowIndex()); |
+ |
+ auto* ax_cell2 = static_cast<AXTableCell*>(cache->GetOrCreate(cell2)); |
+ EXPECT_TRUE(ax_cell2->IsTableCell()); |
+ EXPECT_EQ(10U, ax_cell2->AriaColumnIndex()); |
+ EXPECT_EQ(7U, ax_cell2->AriaRowIndex()); |
+} |
+ |
} // namespace |
} // namespace blink |