123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- // Copyright (c) 2020 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 <vector>
- #include "ui/gfx/selection_model.h"
- #include "testing/gtest/include/gtest/gtest.h"
- #include "ui/gfx/range/range.h"
- namespace gfx {
- TEST(SelectionModelTest, Construction) {
- {
- SelectionModel selection_model;
- EXPECT_EQ(selection_model.selection(), Range(0));
- EXPECT_EQ(selection_model.caret_pos(), 0u);
- EXPECT_EQ(selection_model.secondary_selections(), std::vector<Range>());
- }
- {
- SelectionModel selection_model{5, CURSOR_FORWARD};
- EXPECT_EQ(selection_model.selection(), Range(5));
- EXPECT_EQ(selection_model.caret_pos(), 5u);
- EXPECT_EQ(selection_model.secondary_selections(), std::vector<Range>());
- }
- {
- SelectionModel selection_model{{3, 2}, CURSOR_BACKWARD};
- EXPECT_EQ(selection_model.selection(), Range(3, 2));
- EXPECT_EQ(selection_model.caret_pos(), 2u);
- EXPECT_EQ(selection_model.secondary_selections(), std::vector<Range>());
- }
- {
- SelectionModel selection_model{{{2, 3}, {5, 5}, {1, 0}}, CURSOR_BACKWARD};
- EXPECT_EQ(selection_model.selection(), Range(2, 3));
- EXPECT_EQ(selection_model.caret_pos(), 3u);
- EXPECT_EQ(selection_model.secondary_selections(),
- std::vector<Range>({{5, 5}, {1, 0}}));
- }
- }
- TEST(SelectionModelTest, AddSecondarySelection) {
- SelectionModel selection_model;
- selection_model.AddSecondarySelection({5, 6});
- selection_model.AddSecondarySelection({7, 6});
- selection_model.AddSecondarySelection({8, 8});
- EXPECT_EQ(selection_model.selection(), Range(0));
- EXPECT_EQ(selection_model.caret_pos(), 0u);
- EXPECT_EQ(selection_model.secondary_selections(),
- std::vector<Range>({{5, 6}, {7, 6}, {8, 8}}));
- }
- TEST(SelectionModelTest, GetAllSelections) {
- SelectionModel selection_model{{3, 2}, CURSOR_BACKWARD};
- selection_model.AddSecondarySelection({5, 6});
- selection_model.AddSecondarySelection({7, 6});
- selection_model.AddSecondarySelection({8, 8});
- EXPECT_EQ(selection_model.GetAllSelections(),
- std::vector<Range>({{3, 2}, {5, 6}, {7, 6}, {8, 8}}));
- }
- TEST(SelectionModelTest, EqualityOperators) {
- SelectionModel selection_model{{3, 2}, CURSOR_BACKWARD};
- selection_model.AddSecondarySelection({5, 6});
- selection_model.AddSecondarySelection({7, 6});
- selection_model.AddSecondarySelection({8, 8});
- // Equal
- EXPECT_EQ(selection_model,
- SelectionModel({{3, 2}, {5, 6}, {7, 6}, {8, 8}}, CURSOR_BACKWARD));
- // Unequal selection
- EXPECT_NE(selection_model,
- SelectionModel({{3, 3}, {5, 6}, {7, 6}, {8, 8}}, CURSOR_BACKWARD));
- // Unequal secondary selections
- EXPECT_NE(selection_model,
- SelectionModel({{3, 2}, {5, 6}, {7, 6}, {9, 8}}, CURSOR_BACKWARD));
- // Unequal cursor affinity
- EXPECT_NE(selection_model,
- SelectionModel({{3, 2}, {5, 6}, {7, 6}, {8, 8}}, CURSOR_FORWARD));
- }
- TEST(SelectionModelTest, ToString) {
- SelectionModel selection_model{{3, 2}, CURSOR_BACKWARD};
- selection_model.AddSecondarySelection({5, 6});
- selection_model.AddSecondarySelection({7, 6});
- selection_model.AddSecondarySelection({8, 8});
- EXPECT_EQ(selection_model.ToString(), "{{3,2},BACKWARD,{5,6},{7,6},8}");
- }
- } // namespace gfx
|