#include "ui/views/controls/table/table_view.h"
#include <stddef.h>
#include <algorithm>
#include <string>
#include <tuple>
#include <utility>
#include "base/i18n/rtl.h"
#include "base/memory/raw_ptr.h"
#include "base/scoped_observation.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 "third_party/skia/include/core/SkCanvas.h"
#include "ui/accessibility/ax_enums.mojom.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/events/event_utils.h"
#include "ui/events/test/event_generator.h"
#include "ui/gfx/text_utils.h"
#include "ui/views/accessibility/ax_virtual_view.h"
#include "ui/views/accessibility/view_accessibility.h"
#include "ui/views/controls/scroll_view.h"
#include "ui/views/controls/table/table_grouper.h"
#include "ui/views/controls/table/table_header.h"
#include "ui/views/controls/table/table_view_observer.h"
#include "ui/views/style/platform_style.h"
#include "ui/views/test/focus_manager_test.h"
#include "ui/views/test/views_test_base.h"
#include "ui/views/test/views_test_utils.h"
#include "ui/views/widget/unique_widget_ptr.h"
#include "ui/views/widget/widget.h"
#include "ui/views/widget/widget_delegate.h"
#include "ui/views/widget/widget_utils.h"
namespace views {
constexpr int kGroupingIndicatorSize = …;
class TableViewTestHelper { … };
namespace {
class TestTableModel2 : public ui::TableModel { … };
TestTableModel2::TestTableModel2() { … }
void TestTableModel2::Clear() { … }
void TestTableModel2::AddRow(size_t row, int c1_value, int c2_value) { … }
void TestTableModel2::AddRows(size_t row, size_t length, int value_multiplier) { … }
void TestTableModel2::RemoveRow(size_t row) { … }
void TestTableModel2::RemoveRows(size_t row, size_t length) { … }
void TestTableModel2::ChangeRow(size_t row, int c1_value, int c2_value) { … }
void TestTableModel2::MoveRows(size_t row_from, size_t length, size_t row_to) { … }
void TestTableModel2::SetTooltip(const std::u16string& tooltip) { … }
size_t TestTableModel2::RowCount() { … }
std::u16string TestTableModel2::GetText(size_t row, int column_id) { … }
std::u16string TestTableModel2::GetTooltip(size_t row) { … }
void TestTableModel2::SetObserver(ui::TableModelObserver* observer) { … }
int TestTableModel2::CompareValues(size_t row1, size_t row2, int column_id) { … }
std::string GetViewToModelAsString(TableView* table) { … }
std::string GetModelToViewAsString(TableView* table) { … }
std::string GetRowsInViewOrderAsString(TableView* table) { … }
std::string GetRowsInVirtualViewAsString(TableView* table) { … }
std::string GetHeaderRowAsString(TableView* table) { … }
bool PressLeftMouseAt(views::View* target, const gfx::Point& point) { … }
void ReleaseLeftMouseAt(views::View* target, const gfx::Point& point) { … }
bool DragLeftMouseTo(views::View* target, const gfx::Point& point) { … }
}
class TableViewTest : public ViewsTestBase,
public ::testing::WithParamInterface<
std::tuple<bool,
bool>> { … };
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(TableViewTest, SelectedIndexWithNoRows) { … }
TEST_P(TableViewTest, GetPaintRegion) { … }
TEST_P(TableViewTest, RebuildVirtualAccessibilityChildren) { … }
TEST_P(TableViewTest, UpdateVirtualAccessibilityChildrenBounds) { … }
TEST_P(TableViewTest, UpdateVirtualAccessibilityChildrenBoundsWithResize) { … }
TEST_P(TableViewTest, UpdateVirtualAccessibilityChildrenBoundsHideColumn) { … }
TEST_P(TableViewTest, GetVirtualAccessibilityBodyRow) { … }
TEST_P(TableViewTest, GetVirtualAccessibilityCell) { … }
TEST_P(TableViewTest, ChangingCellFiresAccessibilityEvent) { … }
TEST_P(TableViewTest, ColumnVisibility) { … }
TEST_P(TableViewTest, NoCrashesWithAllColumnsHidden) { … }
TEST_P(TableViewTest, Resize) { … }
TEST_P(TableViewTest, ResizeViaGesture) { … }
TEST_P(TableViewTest, ResizeViaKeyboard) { … }
TEST_P(TableViewTest, ResizeHonorsMinimum) { … }
TEST_P(TableViewTest, Sort) { … }
TEST_P(TableViewTest, SortOnMouse) { … }
TEST_P(TableViewTest, SortOnSpaceBar) { … }
TEST_P(TableViewTest, ActiveCellBoundsFollowColumnSorting) { … }
TEST_P(TableViewTest, Tooltip) { … }
namespace {
class TableGrouperImpl : public TableGrouper { … };
}
TEST_P(TableViewTest, Grouping) { … }
TEST_P(TableViewTest, VirtualAccessibilitySetSelectionAll) { … }
TEST_P(TableViewTest, VirtualAccessibilitySetSelectionRowsInRange) { … }
TEST_P(TableViewTest, VirtualAccessibilitySelectOnRemove) { … }
namespace {
class TableViewObserverImpl : public TableViewObserver { … };
}
TEST_P(TableViewTest, Selection) { … }
TEST_P(TableViewTest, SelectAll) { … }
TEST_P(TableViewTest, RemoveUnselectedRows) { … }
TEST_P(TableViewTest, AddingRemovingMultipleRows) { … }
TEST_P(TableViewTest, SelectionNoSelectOnRemove) { … }
#if !BUILDFLAG(IS_MAC)
TEST_P(TableViewTest, SelectOnTap) { … }
#endif
TEST_P(TableViewTest, KeyUpDown) { … }
TEST_P(TableViewTest, KeyLeftRight) { … }
TEST_P(TableViewTest, KeyLeftRightScrollRectToVisibleInTableView) { … }
TEST_P(TableViewTest, KeyLeftRightScrollRectToVisibleInTableHeader) { … }
TEST_P(TableViewTest, KeyUpDownHorizontalScrollbarStability) { … }
TEST_P(TableViewTest, ClickRowHorizontalScrollbarStability) { … }
TEST_P(TableViewTest, HomeEnd) { … }
TEST_P(TableViewTest, Multiselection) { … }
TEST_P(TableViewTest, MultiselectionWithSort) { … }
TEST_P(TableViewTest, MoveRowsWithMultipleSelection) { … }
TEST_P(TableViewTest, MoveRowsWithMultipleSelectionAndSort) { … }
TEST_P(TableViewTest, FocusAfterRemovingAnchor) { … }
TEST_P(TableViewTest, RemovingSortedRowsDoesNotCauseOverflow) { … }
TEST_P(TableViewTest, TableHeaderRowAccessibleViewFocusable) { … }
TEST_P(TableViewTest, TableHeaderColumnAccessibleViewsFocusable) { … }
class TableViewFocusTest : public TableViewTest { … };
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(TableViewFocusTest, FocusClearedDuringWidgetDestruction) { … }
class TableViewDefaultConstructabilityTest : public ViewsTestBase { … };
TEST_F(TableViewDefaultConstructabilityTest, TestFunctionalWithoutModel) { … }
class TestTableModel3 : public TestTableModel2 { … };
class TableViewPaintIconBoundsTest : public ViewsTestBase { … };
TEST_F(TableViewPaintIconBoundsTest, TestPaintIconBoundsForNormally) { … }
TEST_F(TableViewPaintIconBoundsTest, TestPaintIconBoundsForClipped) { … }
TEST_F(TableViewPaintIconBoundsTest, TestPaintIconBoundsNotNeedDisplay) { … }
}