Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Unified Diff: third_party/WebKit/Source/web/tests/AccessibilityObjectModelTest.cpp

Issue 2894103002: Int and Float properties for Accessibility Object Model phase 1 (Closed)
Patch Set: Update webexposed/ Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698