summaryrefslogtreecommitdiff
path: root/chromium/ui/views/controls/table/table_view_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/views/controls/table/table_view_unittest.cc')
-rw-r--r--chromium/ui/views/controls/table/table_view_unittest.cc36
1 files changed, 30 insertions, 6 deletions
diff --git a/chromium/ui/views/controls/table/table_view_unittest.cc b/chromium/ui/views/controls/table/table_view_unittest.cc
index 12cb14b36c6..85922dbaf6a 100644
--- a/chromium/ui/views/controls/table/table_view_unittest.cc
+++ b/chromium/ui/views/controls/table/table_view_unittest.cc
@@ -13,6 +13,7 @@
#include "base/numerics/ranges.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/test/bind.h"
#include "build/build_config.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/accessibility/ax_enums.mojom.h"
@@ -131,7 +132,7 @@ class TableViewTestHelper {
namespace {
-#if defined(OS_APPLE)
+#if defined(OS_MAC)
constexpr int kCtrlOrCmdMask = ui::EF_COMMAND_DOWN;
#else
constexpr int kCtrlOrCmdMask = ui::EF_CONTROL_DOWN;
@@ -185,7 +186,7 @@ class TestTableModel2 : public ui::TableModel {
private:
ui::TableModelObserver* observer_ = nullptr;
- base::Optional<std::u16string> tooltip_;
+ absl::optional<std::u16string> tooltip_;
// The data.
std::vector<std::vector<int>> rows_;
@@ -444,12 +445,13 @@ class TableViewTest : public ViewsTestBase,
helper_ = std::make_unique<TableViewTestHelper>(table_);
widget_ = std::make_unique<Widget>();
- Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW);
+ Widget::InitParams params =
+ CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS);
params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
params.bounds = gfx::Rect(0, 0, 650, 650);
params.delegate = GetWidgetDelegate(widget_.get());
widget_->Init(std::move(params));
- widget_->GetContentsView()->AddChildView(std::move(scroll_view));
+ widget_->GetRootView()->AddChildView(std::move(scroll_view));
widget_->Show();
}
@@ -460,7 +462,6 @@ class TableViewTest : public ViewsTestBase,
void ClickOnRow(int row, int flags) {
ui::test::EventGenerator generator(GetRootWindow(widget_.get()));
- generator.set_assume_window_at_origin(false);
generator.set_flags(flags);
generator.set_current_screen_location(GetPointForRow(row));
generator.PressLeftButton();
@@ -736,6 +737,29 @@ TEST_P(TableViewTest, GetVirtualAccessibilityCell) {
}
}
+TEST_P(TableViewTest, ChangingCellFiresAccessibilityEvent) {
+ int text_changed_count = 0;
+ table_->GetViewAccessibility().set_accessibility_events_callback(
+ base::BindLambdaForTesting(
+ [&](const ui::AXPlatformNodeDelegate*, const ax::mojom::Event event) {
+ if (event == ax::mojom::Event::kTextChanged)
+ ++text_changed_count;
+ }));
+
+ // A kTextChanged event is fired when a cell's data is accessed and
+ // its computed accessible text isn't the same as the previously cached
+ // value. Ensure that the cached value is correctly updated so that
+ // retrieving the data multiple times doesn't result in firing additional
+ // kTextChanged events.
+ const AXVirtualView* cell = helper_->GetVirtualAccessibilityCell(0, 0);
+ ASSERT_TRUE(cell);
+ ui::AXNodeData cell_data;
+ for (int i = 0; i < 100; ++i)
+ cell_data = cell->GetData();
+
+ EXPECT_EQ(1, text_changed_count);
+}
+
// Verifies SetColumnVisibility().
TEST_P(TableViewTest, ColumnVisibility) {
// Two columns should be visible.
@@ -1440,7 +1464,7 @@ TEST_P(TableViewTest, SelectionNoSelectOnRemove) {
}
// No touch on desktop Mac. Tracked in http://crbug.com/445520.
-#if !defined(OS_APPLE)
+#if !defined(OS_MAC)
// Verifies selection works by way of a gesture.
TEST_P(TableViewTest, SelectOnTap) {
// Initially no selection.