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
|
// 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
|