// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include #include "testing/gtest/include/gtest/gtest.h" #include "ui/accessibility/ax_enum_util.h" #include "ui/accessibility/ax_enums.mojom.h" #include "ui/accessibility/ax_role_properties.h" namespace ui { TEST(AXRolePropertiesTest, TestSupportsHierarchicalLevel) { // Test for iterating through all roles and validate if a role supports // hierarchical level. std::unordered_set roles_expected_supports_hierarchical_level = { ax::mojom::Role::kComment, ax::mojom::Role::kListItem, ax::mojom::Role::kRow, ax::mojom::Role::kTreeItem}; for (int role_idx = static_cast(ax::mojom::Role::kMinValue); role_idx <= static_cast(ax::mojom::Role::kMaxValue); role_idx++) { ax::mojom::Role role = static_cast(role_idx); bool supports_hierarchical_level = SupportsHierarchicalLevel(role); SCOPED_TRACE(testing::Message() << "ax::mojom::Role=" << ToString(role) << ", Actual: supportsHierarchicalLevel=" << supports_hierarchical_level << ", Expected: supportsHierarchicalLevel=" << !supports_hierarchical_level); if (roles_expected_supports_hierarchical_level.find(role) != roles_expected_supports_hierarchical_level.end()) EXPECT_TRUE(supports_hierarchical_level); else EXPECT_FALSE(supports_hierarchical_level); } } TEST(AXRolePropertiesTest, TestSupportsToggle) { // Test for iterating through all roles and validate if a role supports // toggle. std::unordered_set roles_expected_supports_toggle = { ax::mojom::Role::kCheckBox, ax::mojom::Role::kMenuItemCheckBox, ax::mojom::Role::kSwitch, ax::mojom::Role::kToggleButton}; for (int role_idx = static_cast(ax::mojom::Role::kMinValue); role_idx <= static_cast(ax::mojom::Role::kMaxValue); role_idx++) { ax::mojom::Role role = static_cast(role_idx); bool supports_toggle = SupportsToggle(role); SCOPED_TRACE(testing::Message() << "ax::mojom::Role=" << ToString(role) << ", Actual: supportsToggle=" << supports_toggle << ", Expected: supportsToggle=" << !supports_toggle); if (roles_expected_supports_toggle.find(role) != roles_expected_supports_toggle.end()) EXPECT_TRUE(supports_toggle); else EXPECT_FALSE(supports_toggle); } } } // namespace ui