Commit 12236282 authored by Yoshifumi Inoue's avatar Yoshifumi Inoue Committed by Commit Bot

Introduce test cases for PreviousWordPosition()

This patch introduces test cases for |PreviousWordPosition()| to record current
behavior as a preparation of the patch[1].

Note: The patch[2] introduces test case for |NextWordPosition()|.

[1] http://crrev.com/c/737981 Introduce TextOffsetMapping to simplify
word/paragraph selection
[2] http://crrev.com/c/895236 Introduce test cases for NextWordPosition()

Bug: 778507
Change-Id: Ie1b3933336ddd9d6afca246700a9f7e9a588d61d
Reviewed-on: https://chromium-review.googlesource.com/923686
Commit-Queue: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: default avatarXiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537595}
parent d1eeb248
......@@ -148,7 +148,7 @@ EndOfWordPosition(const VisiblePositionInFlatTree&,
EWordSide = kNextWordIfOnBoundary);
CORE_EXPORT VisiblePositionInFlatTree
EndOfWord(const VisiblePositionInFlatTree&, EWordSide = kNextWordIfOnBoundary);
VisiblePosition PreviousWordPosition(const VisiblePosition&);
CORE_EXPORT VisiblePosition PreviousWordPosition(const VisiblePosition&);
CORE_EXPORT VisiblePosition NextWordPosition(const VisiblePosition&);
// sentences
......
......@@ -57,6 +57,16 @@ class VisibleUnitsWordTest : public EditingTestBase {
.DeepEquivalent())
.Build());
}
std::string DoPreviousWord(const std::string& selection_text) {
const Position position = SetSelectionTextToBody(selection_text).Base();
const Position result =
PreviousWordPosition(CreateVisiblePosition(position)).DeepEquivalent();
if (result.IsNull())
return GetSelectionTextFromBody(SelectionInDOMTree());
return GetSelectionTextFromBody(
SelectionInDOMTree::Builder().Collapse(result).Build());
}
};
TEST_F(VisibleUnitsWordTest, StartOfWordBasic) {
......@@ -432,5 +442,24 @@ TEST_F(VisibleUnitsWordTest, NextWordSkipTab) {
EXPECT_EQ("<p><s>\t</s>foo|</p>", DoNextWord("<p><s>\t|</s>foo</p>"));
}
//----
TEST_F(VisibleUnitsWordTest, PreviousWordBasic) {
EXPECT_EQ("<p> |(1) abc def</p>", DoPreviousWord("<p>| (1) abc def</p>"));
EXPECT_EQ("<p> |(1) abc def</p>", DoPreviousWord("<p> |(1) abc def</p>"));
EXPECT_EQ("<p> |(1) abc def</p>", DoPreviousWord("<p> (|1) abc def</p>"));
EXPECT_EQ("<p> (|1) abc def</p>", DoPreviousWord("<p> (1|) abc def</p>"));
EXPECT_EQ("<p> (|1) abc def</p>", DoPreviousWord("<p> (1)| abc def</p>"));
EXPECT_EQ("<p> (|1) abc def</p>", DoPreviousWord("<p> (1) |abc def</p>"));
EXPECT_EQ("<p> (1) |abc def</p>", DoPreviousWord("<p> (1) a|bc def</p>"));
EXPECT_EQ("<p> (1) |abc def</p>", DoPreviousWord("<p> (1) ab|c def</p>"));
EXPECT_EQ("<p> (1) |abc def</p>", DoPreviousWord("<p> (1) abc| def</p>"));
EXPECT_EQ("<p> (1) |abc def</p>", DoPreviousWord("<p> (1) abc |def</p>"));
EXPECT_EQ("<p> (1) abc |def</p>", DoPreviousWord("<p> (1) abc d|ef</p>"));
EXPECT_EQ("<p> (1) abc |def</p>", DoPreviousWord("<p> (1) abc de|f</p>"));
EXPECT_EQ("<p> (1) abc |def</p>", DoPreviousWord("<p> (1) abc def|</p>"));
EXPECT_EQ("<p> (1) abc |def</p>", DoPreviousWord("<p> (1) abc def</p>|"));
}
} // namespace visible_units_word_test
} // namespace blink
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment