File: test_ax_tree_update_unittest.cc

package info (click to toggle)
chromium 138.0.7204.183-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,908 kB
  • sloc: cpp: 34,937,088; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,971; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (101 lines) | stat: -rw-r--r-- 4,742 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ui/accessibility/test_ax_tree_update.h"

#include "base/strings/stringprintf.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace ui {

std::pair<std::string, std::string> ConvertTo(
    ax::mojom::IntListAttribute int_list_attribute) {
  switch (int_list_attribute) {
    case ax::mojom::IntListAttribute::kNone:
      return {"kNone", "none"};
    case ax::mojom::IntListAttribute::kIndirectChildIds:
      return {"kIndirectChildIds,2", "indirect_child_ids=2"};
    case ax::mojom::IntListAttribute::kActionsIds:
      return {"kActionsIds,2", "actions_ids=2"};
    case ax::mojom::IntListAttribute::kControlsIds:
      return {"kControlsIds,2", "controls_ids=2"};
    case ax::mojom::IntListAttribute::kDetailsIds:
      return {"kDetailsIds,2", "details_ids=2"};
    case ax::mojom::IntListAttribute::kDescribedbyIds:
      return {"kDescribedbyIds,2", "describedby_ids=2"};
    case ax::mojom::IntListAttribute::kErrormessageIds:
      return {"kErrorMessageIds,2", "errormessage_ids=2"};
    case ax::mojom::IntListAttribute::kFlowtoIds:
      return {"kFlowtoIds,2", "flowto_ids=2"};
    case ax::mojom::IntListAttribute::kLabelledbyIds:
      return {"kLabelledbyIds,2", "labelledby_ids=2"};
    case ax::mojom::IntListAttribute::kRadioGroupIds:
      return {"kRadioGroupIds,2", "radio_group_ids=2"};
    case ax::mojom::IntListAttribute::kMarkerTypes:
      return {"kMarkerTypes,2", "marker_types=grammar"};
    case ax::mojom::IntListAttribute::kMarkerStarts:
      return {"kMarkerStarts,2", "marker_starts=2"};
    case ax::mojom::IntListAttribute::kMarkerEnds:
      return {"kMarkerEnds,2", "marker_ends=2"};
    case ax::mojom::IntListAttribute::kHighlightTypes:
      return {"kHighlightTypes,2", "highlight_types=spelling-error"};
    case ax::mojom::IntListAttribute::kCaretBounds:
      return {"kCaretBounds,2", "caret_bounds=2"};
    case ax::mojom::IntListAttribute::kCharacterOffsets:
      return {"kCharacterOffsets,2", "character_offsets=2"};
    case ax::mojom::IntListAttribute::kLineStarts:
      return {"kLineStarts,2", "line_start_offsets=2"};
    case ax::mojom::IntListAttribute::kLineEnds:
      return {"kLineEnds,2", "line_end_offsets=2"};
    case ax::mojom::IntListAttribute::kSentenceStarts:
      return {"kSentenceStarts,2", "sentence_start_offsets=2"};
    case ax::mojom::IntListAttribute::kSentenceEnds:
      return {"kSentenceEnds,2", "sentence_end_offsets=2"};
    case ax::mojom::IntListAttribute::kWordStarts:
      return {"kWordStarts,2", "word_starts=2"};
    case ax::mojom::IntListAttribute::kWordEnds:
      return {"kWordEnds,2", "word_ends=2"};
    case ax::mojom::IntListAttribute::kCustomActionIds:
      return {"kCustomActionIds,2", "custom_action_ids=2"};
    case ax::mojom::IntListAttribute::kTextOperationStartOffsets:
      return {"kTextOperationStartOffsets,2", "text_operation_start_offsets=2"};
    case ax::mojom::IntListAttribute::kTextOperationEndOffsets:
      return {"kTextOperationEndOffsets,2", "text_operation_end_offsets=2"};
    case ax::mojom::IntListAttribute::kTextOperationStartAnchorIds:
      return {"kTextOperationStartAnchorIds,2",
              "text_operation_start_anchor_ids=2"};
    case ax::mojom::IntListAttribute::kTextOperationEndAnchorIds:
      return {"kTextOperationEndAnchorIds,2",
              "text_operation_end_anchor_ids=2"};
    case ax::mojom::IntListAttribute::kTextOperations:
      return {"kTextOperations,2", "text_operations=2"};
    case ax::mojom::IntListAttribute::kAriaNotificationInterruptProperties:
      return {"kAriaNotificationInterruptProperties,2",
              "aria_notification_interrupt_properties=pending"};
    case ax::mojom::IntListAttribute::kAriaNotificationPriorityProperties:
      return {"kAriaNotificationPriorityProperties,1",
              "aria_notification_priority_properties=high"};
  }
}

TEST(TestAXTreeUpdateTest, IntListAttribute) {
  for (int i = static_cast<int>(ax::mojom::IntListAttribute::kMinValue) + 1;
       i <= static_cast<int>(ax::mojom::IntListAttribute::kMaxValue); ++i) {
    ax::mojom::IntListAttribute attribute =
        static_cast<ax::mojom::IntListAttribute>(i);

    auto [attribute_value, check_value] = ConvertTo(attribute);
    std::string update_value = absl::StrFormat(R"HTML(
    ++1 kGroup intListAttribute=%s
    ++++2 kGroup
  )HTML",
                                               attribute_value);

    TestAXTreeUpdate update(update_value);
    EXPECT_THAT(update.ToString(), ::testing::HasSubstr(check_value));
  }
}

}  // namespace ui