Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(984)

Unified Diff: views/controls/textfield/textfield_views_model_unittest.cc

Issue 7265011: RenderText API Outline. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix permissions, export RenderText and StyleRange via UI_API. Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: views/controls/textfield/textfield_views_model_unittest.cc
diff --git a/views/controls/textfield/textfield_views_model_unittest.cc b/views/controls/textfield/textfield_views_model_unittest.cc
index 7e2f7e64e8221db8a285d4e5a7eb55467567260d..907e353fab8dfd6e997c3642500de3b957f6c8aa 100644
--- a/views/controls/textfield/textfield_views_model_unittest.cc
+++ b/views/controls/textfield/textfield_views_model_unittest.cc
@@ -10,7 +10,7 @@
#include "ui/base/clipboard/clipboard.h"
#include "ui/base/clipboard/scoped_clipboard_writer.h"
#include "ui/base/range/range.h"
-#include "views/controls/textfield/text_style.h"
+#include "ui/gfx/render_text.h"
#include "views/controls/textfield/textfield.h"
#include "views/controls/textfield/textfield_views_model.h"
#include "views/test/test_views_delegate.h"
@@ -19,8 +19,6 @@
namespace views {
-#include "views/test/views_test_base.h"
-
class TextfieldViewsModelTest : public ViewsTestBase,
public TextfieldViewsModel::Delegate {
public:
@@ -47,57 +45,56 @@ class TextfieldViewsModelTest : public ViewsTestBase,
#define EXPECT_STR_EQ(ascii, utf16) \
EXPECT_EQ(ASCIIToWide(ascii), UTF16ToWide(utf16))
-
TEST_F(TextfieldViewsModelTest, EditString) {
TextfieldViewsModel model(NULL);
// append two strings
model.Append(ASCIIToUTF16("HILL"));
- EXPECT_STR_EQ("HILL", model.text());
+ EXPECT_STR_EQ("HILL", model.GetText());
model.Append(ASCIIToUTF16("WORLD"));
- EXPECT_STR_EQ("HILLWORLD", model.text());
+ EXPECT_STR_EQ("HILLWORLD", model.GetText());
// Insert "E" to make hello
- model.MoveCursorRight(false);
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, false);
model.InsertChar('E');
- EXPECT_STR_EQ("HEILLWORLD", model.text());
+ EXPECT_STR_EQ("HEILLWORLD", model.GetText());
// Replace "I" with "L"
model.ReplaceChar('L');
- EXPECT_STR_EQ("HELLLWORLD", model.text());
+ EXPECT_STR_EQ("HELLLWORLD", model.GetText());
model.ReplaceChar('L');
model.ReplaceChar('O');
- EXPECT_STR_EQ("HELLOWORLD", model.text());
+ EXPECT_STR_EQ("HELLOWORLD", model.GetText());
// Delete 6th char "W", then delete 5th char O"
- EXPECT_EQ(5U, model.cursor_pos());
+ EXPECT_EQ(5U, model.GetCursorPosition());
EXPECT_TRUE(model.Delete());
- EXPECT_STR_EQ("HELLOORLD", model.text());
+ EXPECT_STR_EQ("HELLOORLD", model.GetText());
EXPECT_TRUE(model.Backspace());
- EXPECT_EQ(4U, model.cursor_pos());
- EXPECT_STR_EQ("HELLORLD", model.text());
+ EXPECT_EQ(4U, model.GetCursorPosition());
+ EXPECT_STR_EQ("HELLORLD", model.GetText());
// Move the cursor to start. backspace should fail.
- model.MoveCursorToHome(false);
+ model.MoveCursorLeft(gfx::LINE_BREAK, false);
EXPECT_FALSE(model.Backspace());
- EXPECT_STR_EQ("HELLORLD", model.text());
+ EXPECT_STR_EQ("HELLORLD", model.GetText());
// Move the cursor to the end. delete should fail.
- model.MoveCursorToEnd(false);
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
EXPECT_FALSE(model.Delete());
- EXPECT_STR_EQ("HELLORLD", model.text());
+ EXPECT_STR_EQ("HELLORLD", model.GetText());
// but backspace should work.
EXPECT_TRUE(model.Backspace());
- EXPECT_STR_EQ("HELLORL", model.text());
+ EXPECT_STR_EQ("HELLORL", model.GetText());
}
TEST_F(TextfieldViewsModelTest, EmptyString) {
TextfieldViewsModel model(NULL);
- EXPECT_EQ(string16(), model.text());
+ EXPECT_EQ(string16(), model.GetText());
EXPECT_EQ(string16(), model.GetSelectedText());
EXPECT_EQ(string16(), model.GetVisibleText());
- model.MoveCursorLeft(true);
- EXPECT_EQ(0U, model.cursor_pos());
- model.MoveCursorRight(true);
- EXPECT_EQ(0U, model.cursor_pos());
+ model.MoveCursorLeft(gfx::CHARACTER_BREAK, true);
+ EXPECT_EQ(0U, model.GetCursorPosition());
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, true);
+ EXPECT_EQ(0U, model.GetCursorPosition());
EXPECT_EQ(string16(), model.GetSelectedText());
@@ -108,15 +105,15 @@ TEST_F(TextfieldViewsModelTest, EmptyString) {
TEST_F(TextfieldViewsModelTest, Selection) {
TextfieldViewsModel model(NULL);
model.Append(ASCIIToUTF16("HELLO"));
- model.MoveCursorRight(false);
- model.MoveCursorRight(true);
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, false);
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, true);
EXPECT_STR_EQ("E", model.GetSelectedText());
- model.MoveCursorRight(true);
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, true);
EXPECT_STR_EQ("EL", model.GetSelectedText());
- model.MoveCursorToHome(true);
+ model.MoveCursorLeft(gfx::LINE_BREAK, true);
EXPECT_STR_EQ("H", model.GetSelectedText());
- model.MoveCursorToEnd(true);
+ model.MoveCursorRight(gfx::LINE_BREAK, true);
EXPECT_STR_EQ("ELLO", model.GetSelectedText());
model.ClearSelection();
EXPECT_EQ(string16(), model.GetSelectedText());
@@ -132,49 +129,49 @@ TEST_F(TextfieldViewsModelTest, Selection) {
model.MoveCursorTo(1U, false);
model.MoveCursorTo(3U, true);
EXPECT_STR_EQ("EL", model.GetSelectedText());
- model.MoveCursorLeft(false);
- EXPECT_EQ(1U, model.cursor_pos());
+ model.MoveCursorLeft(gfx::CHARACTER_BREAK, false);
+ EXPECT_EQ(1U, model.GetCursorPosition());
model.MoveCursorTo(1U, false);
model.MoveCursorTo(3U, true);
- model.MoveCursorRight(false);
- EXPECT_EQ(3U, model.cursor_pos());
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, false);
+ EXPECT_EQ(3U, model.GetCursorPosition());
// Select all and move cursor
model.SelectAll();
- model.MoveCursorLeft(false);
- EXPECT_EQ(0U, model.cursor_pos());
+ model.MoveCursorLeft(gfx::CHARACTER_BREAK, false);
+ EXPECT_EQ(0U, model.GetCursorPosition());
model.SelectAll();
- model.MoveCursorRight(false);
- EXPECT_EQ(5U, model.cursor_pos());
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, false);
+ EXPECT_EQ(5U, model.GetCursorPosition());
}
TEST_F(TextfieldViewsModelTest, SelectionAndEdit) {
TextfieldViewsModel model(NULL);
model.Append(ASCIIToUTF16("HELLO"));
- model.MoveCursorRight(false);
- model.MoveCursorRight(true);
- model.MoveCursorRight(true); // select "EL"
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, false);
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, true);
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, true); // select "EL"
EXPECT_TRUE(model.Backspace());
- EXPECT_STR_EQ("HLO", model.text());
+ EXPECT_STR_EQ("HLO", model.GetText());
model.Append(ASCIIToUTF16("ILL"));
- model.MoveCursorRight(true);
- model.MoveCursorRight(true); // select "LO"
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, true);
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, true); // select "LO"
EXPECT_TRUE(model.Delete());
- EXPECT_STR_EQ("HILL", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
- model.MoveCursorRight(true); // select "I"
+ EXPECT_STR_EQ("HILL", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, true); // select "I"
model.InsertChar('E');
- EXPECT_STR_EQ("HELL", model.text());
- model.MoveCursorToHome(false);
- model.MoveCursorRight(true); // select "H"
+ EXPECT_STR_EQ("HELL", model.GetText());
+ model.MoveCursorLeft(gfx::LINE_BREAK, false);
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, true); // select "H"
model.ReplaceChar('B');
- EXPECT_STR_EQ("BELL", model.text());
- model.MoveCursorToEnd(false);
- model.MoveCursorLeft(true);
- model.MoveCursorLeft(true); // select ">LL"
+ EXPECT_STR_EQ("BELL", model.GetText());
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
+ model.MoveCursorLeft(gfx::CHARACTER_BREAK, true);
+ model.MoveCursorLeft(gfx::CHARACTER_BREAK, true); // select "ELL"
model.ReplaceChar('E');
- EXPECT_STR_EQ("BEE", model.text());
+ EXPECT_STR_EQ("BEE", model.GetText());
}
TEST_F(TextfieldViewsModelTest, Password) {
@@ -182,110 +179,88 @@ TEST_F(TextfieldViewsModelTest, Password) {
model.set_is_password(true);
model.Append(ASCIIToUTF16("HELLO"));
EXPECT_STR_EQ("*****", model.GetVisibleText());
- EXPECT_STR_EQ("HELLO", model.text());
+ EXPECT_STR_EQ("HELLO", model.GetText());
EXPECT_TRUE(model.Delete());
EXPECT_STR_EQ("****", model.GetVisibleText());
- EXPECT_STR_EQ("ELLO", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("ELLO", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
model.SelectAll();
EXPECT_STR_EQ("ELLO", model.GetSelectedText());
- EXPECT_EQ(4U, model.cursor_pos());
+ EXPECT_EQ(4U, model.GetCursorPosition());
model.InsertChar('X');
EXPECT_STR_EQ("*", model.GetVisibleText());
- EXPECT_STR_EQ("X", model.text());
+ EXPECT_STR_EQ("X", model.GetText());
}
TEST_F(TextfieldViewsModelTest, Word) {
TextfieldViewsModel model(NULL);
model.Append(
ASCIIToUTF16("The answer to Life, the Universe, and Everything"));
- model.MoveCursorToNextWord(false);
- EXPECT_EQ(3U, model.cursor_pos());
- model.MoveCursorToNextWord(false);
- EXPECT_EQ(10U, model.cursor_pos());
- model.MoveCursorToNextWord(false);
- model.MoveCursorToNextWord(false);
- EXPECT_EQ(18U, model.cursor_pos());
+ model.MoveCursorRight(gfx::WORD_BREAK, false);
+ EXPECT_EQ(3U, model.GetCursorPosition());
+ model.MoveCursorRight(gfx::WORD_BREAK, false);
+ EXPECT_EQ(10U, model.GetCursorPosition());
+ model.MoveCursorRight(gfx::WORD_BREAK, false);
+ model.MoveCursorRight(gfx::WORD_BREAK, false);
+ EXPECT_EQ(18U, model.GetCursorPosition());
// Should passes the non word char ','
- model.MoveCursorToNextWord(true);
- EXPECT_EQ(23U, model.cursor_pos());
+ model.MoveCursorRight(gfx::WORD_BREAK, true);
+ EXPECT_EQ(23U, model.GetCursorPosition());
EXPECT_STR_EQ(", the", model.GetSelectedText());
// Move to the end.
- model.MoveCursorToNextWord(true);
- model.MoveCursorToNextWord(true);
- model.MoveCursorToNextWord(true);
+ model.MoveCursorRight(gfx::WORD_BREAK, true);
+ model.MoveCursorRight(gfx::WORD_BREAK, true);
+ model.MoveCursorRight(gfx::WORD_BREAK, true);
EXPECT_STR_EQ(", the Universe, and Everything", model.GetSelectedText());
// Should be safe to go next word at the end.
- model.MoveCursorToNextWord(true);
+ model.MoveCursorRight(gfx::WORD_BREAK, true);
EXPECT_STR_EQ(", the Universe, and Everything", model.GetSelectedText());
model.InsertChar('2');
- EXPECT_EQ(19U, model.cursor_pos());
+ EXPECT_EQ(19U, model.GetCursorPosition());
// Now backwards.
- model.MoveCursorLeft(false); // leave 2.
- model.MoveCursorToPreviousWord(true);
- EXPECT_EQ(14U, model.cursor_pos());
+ model.MoveCursorLeft(gfx::CHARACTER_BREAK, false); // leave 2.
+ model.MoveCursorLeft(gfx::WORD_BREAK, true);
+ EXPECT_EQ(14U, model.GetCursorPosition());
EXPECT_STR_EQ("Life", model.GetSelectedText());
- model.MoveCursorToPreviousWord(true);
+ model.MoveCursorLeft(gfx::WORD_BREAK, true);
EXPECT_STR_EQ("to Life", model.GetSelectedText());
- model.MoveCursorToPreviousWord(true);
- model.MoveCursorToPreviousWord(true);
- model.MoveCursorToPreviousWord(true); // Select to the begining.
+ model.MoveCursorLeft(gfx::WORD_BREAK, true);
+ model.MoveCursorLeft(gfx::WORD_BREAK, true);
+ model.MoveCursorLeft(gfx::WORD_BREAK, true); // Select to the begining.
EXPECT_STR_EQ("The answer to Life", model.GetSelectedText());
// Should be safe to go pervious word at the begining.
- model.MoveCursorToPreviousWord(true);
+ model.MoveCursorLeft(gfx::WORD_BREAK, true);
EXPECT_STR_EQ("The answer to Life", model.GetSelectedText());
model.ReplaceChar('4');
EXPECT_EQ(string16(), model.GetSelectedText());
EXPECT_STR_EQ("42", model.GetVisibleText());
}
-TEST_F(TextfieldViewsModelTest, TextFragment) {
- TextfieldViewsModel model(NULL);
- TextfieldViewsModel::TextFragments fragments;
- // Empty string has no fragment.
- model.GetFragments(&fragments);
- EXPECT_EQ(0U, fragments.size());
-
- // Some string
- model.Append(ASCIIToUTF16("Hello world"));
- model.GetFragments(&fragments);
- EXPECT_EQ(1U, fragments.size());
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(11U, fragments[0].range.end());
-
- // Selection won't change fragment.
- model.MoveCursorToNextWord(true);
- model.GetFragments(&fragments);
- EXPECT_EQ(1U, fragments.size());
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(11U, fragments[0].range.end());
-}
-
TEST_F(TextfieldViewsModelTest, SetText) {
TextfieldViewsModel model(NULL);
model.Append(ASCIIToUTF16("HELLO"));
- model.MoveCursorToEnd(false);
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
model.SetText(ASCIIToUTF16("GOODBYE"));
- EXPECT_STR_EQ("GOODBYE", model.text());
+ EXPECT_STR_EQ("GOODBYE", model.GetText());
// SetText won't reset the cursor posistion.
- EXPECT_EQ(5U, model.cursor_pos());
+ EXPECT_EQ(5U, model.GetCursorPosition());
model.SelectAll();
EXPECT_STR_EQ("GOODBYE", model.GetSelectedText());
- model.MoveCursorToEnd(false);
- EXPECT_EQ(7U, model.cursor_pos());
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
+ EXPECT_EQ(7U, model.GetCursorPosition());
model.SetText(ASCIIToUTF16("BYE"));
// Setting shorter string moves the cursor to the end of the new string.
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_EQ(3U, model.GetCursorPosition());
EXPECT_EQ(string16(), model.GetSelectedText());
model.SetText(ASCIIToUTF16(""));
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_EQ(0U, model.GetCursorPosition());
}
TEST_F(TextfieldViewsModelTest, Clipboard) {
@@ -296,29 +271,29 @@ TEST_F(TextfieldViewsModelTest, Clipboard) {
string16 clipboard_text;
TextfieldViewsModel model(NULL);
model.Append(ASCIIToUTF16("HELLO WORLD"));
- model.MoveCursorToEnd(false);
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
// Test for cut: Empty selection.
EXPECT_FALSE(model.Cut());
clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text);
EXPECT_STR_EQ(UTF16ToUTF8(initial_clipboard_text), clipboard_text);
- EXPECT_STR_EQ("HELLO WORLD", model.text());
- EXPECT_EQ(11U, model.cursor_pos());
+ EXPECT_STR_EQ("HELLO WORLD", model.GetText());
+ EXPECT_EQ(11U, model.GetCursorPosition());
// Test for cut: Non-empty selection.
- model.MoveCursorToPreviousWord(true);
+ model.MoveCursorLeft(gfx::WORD_BREAK, true);
EXPECT_TRUE(model.Cut());
clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text);
EXPECT_STR_EQ("WORLD", clipboard_text);
- EXPECT_STR_EQ("HELLO ", model.text());
- EXPECT_EQ(6U, model.cursor_pos());
+ EXPECT_STR_EQ("HELLO ", model.GetText());
+ EXPECT_EQ(6U, model.GetCursorPosition());
// Test for copy: Empty selection.
model.Copy();
clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text);
EXPECT_STR_EQ("WORLD", clipboard_text);
- EXPECT_STR_EQ("HELLO ", model.text());
- EXPECT_EQ(6U, model.cursor_pos());
+ EXPECT_STR_EQ("HELLO ", model.GetText());
+ EXPECT_EQ(6U, model.GetCursorPosition());
// Test for copy: Non-empty selection.
model.Append(ASCIIToUTF16("HELLO WORLD"));
@@ -326,24 +301,24 @@ TEST_F(TextfieldViewsModelTest, Clipboard) {
model.Copy();
clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text);
EXPECT_STR_EQ("HELLO HELLO WORLD", clipboard_text);
- EXPECT_STR_EQ("HELLO HELLO WORLD", model.text());
- EXPECT_EQ(17U, model.cursor_pos());
+ EXPECT_STR_EQ("HELLO HELLO WORLD", model.GetText());
+ EXPECT_EQ(17U, model.GetCursorPosition());
// Test for paste.
model.ClearSelection();
- model.MoveCursorToEnd(false);
- model.MoveCursorToPreviousWord(true);
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
+ model.MoveCursorLeft(gfx::WORD_BREAK, true);
EXPECT_TRUE(model.Paste());
clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &clipboard_text);
EXPECT_STR_EQ("HELLO HELLO WORLD", clipboard_text);
- EXPECT_STR_EQ("HELLO HELLO HELLO HELLO WORLD", model.text());
- EXPECT_EQ(29U, model.cursor_pos());
+ EXPECT_STR_EQ("HELLO HELLO HELLO HELLO WORLD", model.GetText());
+ EXPECT_EQ(29U, model.GetCursorPosition());
}
void SelectWordTestVerifier(TextfieldViewsModel &model,
const std::string &expected_selected_string, size_t expected_cursor_pos) {
EXPECT_STR_EQ(expected_selected_string, model.GetSelectedText());
- EXPECT_EQ(expected_cursor_pos, model.cursor_pos());
+ EXPECT_EQ(expected_cursor_pos, model.GetCursorPosition());
}
TEST_F(TextfieldViewsModelTest, SelectWordTest) {
@@ -351,7 +326,7 @@ TEST_F(TextfieldViewsModelTest, SelectWordTest) {
model.Append(ASCIIToUTF16(" HELLO !! WO RLD "));
// Test when cursor is at the beginning.
- model.MoveCursorToHome(false);
+ model.MoveCursorLeft(gfx::LINE_BREAK, false);
model.SelectWord();
SelectWordTestVerifier(model, " ", 2U);
@@ -378,7 +353,7 @@ TEST_F(TextfieldViewsModelTest, SelectWordTest) {
SelectWordTestVerifier(model, " ", 20U);
// Test when cursor is at the end.
- model.MoveCursorToEnd(false);
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
model.SelectWord();
SelectWordTestVerifier(model, " ", 24U);
}
@@ -386,61 +361,61 @@ TEST_F(TextfieldViewsModelTest, SelectWordTest) {
TEST_F(TextfieldViewsModelTest, RangeTest) {
TextfieldViewsModel model(NULL);
model.Append(ASCIIToUTF16("HELLO WORLD"));
- model.MoveCursorToHome(false);
+ model.MoveCursorLeft(gfx::LINE_BREAK, false);
ui::Range range;
model.GetSelectedRange(&range);
EXPECT_TRUE(range.is_empty());
EXPECT_EQ(0U, range.start());
EXPECT_EQ(0U, range.end());
- model.MoveCursorToNextWord(true);
+ model.MoveCursorRight(gfx::WORD_BREAK, true);
model.GetSelectedRange(&range);
EXPECT_FALSE(range.is_empty());
EXPECT_FALSE(range.is_reversed());
EXPECT_EQ(0U, range.start());
EXPECT_EQ(5U, range.end());
- model.MoveCursorLeft(true);
+ model.MoveCursorLeft(gfx::CHARACTER_BREAK, true);
model.GetSelectedRange(&range);
EXPECT_FALSE(range.is_empty());
EXPECT_EQ(0U, range.start());
EXPECT_EQ(4U, range.end());
- model.MoveCursorToPreviousWord(true);
+ model.MoveCursorLeft(gfx::WORD_BREAK, true);
model.GetSelectedRange(&range);
EXPECT_TRUE(range.is_empty());
EXPECT_EQ(0U, range.start());
EXPECT_EQ(0U, range.end());
// now from the end.
- model.MoveCursorToEnd(false);
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
model.GetSelectedRange(&range);
EXPECT_TRUE(range.is_empty());
EXPECT_EQ(11U, range.start());
EXPECT_EQ(11U, range.end());
- model.MoveCursorToPreviousWord(true);
+ model.MoveCursorLeft(gfx::WORD_BREAK, true);
model.GetSelectedRange(&range);
EXPECT_FALSE(range.is_empty());
EXPECT_TRUE(range.is_reversed());
EXPECT_EQ(11U, range.start());
EXPECT_EQ(6U, range.end());
- model.MoveCursorRight(true);
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, true);
model.GetSelectedRange(&range);
EXPECT_FALSE(range.is_empty());
EXPECT_TRUE(range.is_reversed());
EXPECT_EQ(11U, range.start());
EXPECT_EQ(7U, range.end());
- model.MoveCursorToNextWord(true);
+ model.MoveCursorRight(gfx::WORD_BREAK, true);
model.GetSelectedRange(&range);
EXPECT_TRUE(range.is_empty());
EXPECT_EQ(11U, range.start());
EXPECT_EQ(11U, range.end());
// Select All
- model.MoveCursorToHome(true);
+ model.MoveCursorLeft(gfx::LINE_BREAK, true);
model.GetSelectedRange(&range);
EXPECT_FALSE(range.is_empty());
EXPECT_TRUE(range.is_reversed());
@@ -497,7 +472,7 @@ TEST_F(TextfieldViewsModelTest, CompositionTextTest) {
model.Append(ASCIIToUTF16("1234590"));
model.SelectRange(ui::Range(5, 5));
EXPECT_FALSE(model.HasSelection());
- EXPECT_EQ(5U, model.cursor_pos());
+ EXPECT_EQ(5U, model.GetCursorPosition());
ui::Range range;
model.GetTextRange(&range);
@@ -514,7 +489,7 @@ TEST_F(TextfieldViewsModelTest, CompositionTextTest) {
model.GetTextRange(&range);
EXPECT_EQ(10U, range.end());
- EXPECT_STR_EQ("1234567890", model.text());
+ EXPECT_STR_EQ("1234567890", model.GetText());
model.GetCompositionTextRange(&range);
EXPECT_EQ(5U, range.start());
@@ -527,55 +502,40 @@ TEST_F(TextfieldViewsModelTest, CompositionTextTest) {
EXPECT_EQ(8U, range.end());
EXPECT_STR_EQ("8", model.GetSelectedText());
- TextfieldViewsModel::TextFragments fragments;
- model.GetFragments(&fragments);
- EXPECT_EQ(3U, fragments.size());
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(5U, fragments[0].range.end());
- EXPECT_FALSE(fragments[0].style->underline());
-
- EXPECT_EQ(5U, fragments[1].range.start());
- EXPECT_EQ(8U, fragments[1].range.end());
- EXPECT_TRUE(fragments[1].style->underline());
-
- EXPECT_EQ(8U, fragments[2].range.start());
- EXPECT_EQ(10U, fragments[2].range.end());
- EXPECT_FALSE(fragments[2].style->underline());
-
EXPECT_FALSE(composition_text_confirmed_or_cleared_);
model.CancelCompositionText();
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
EXPECT_FALSE(model.HasCompositionText());
EXPECT_FALSE(model.HasSelection());
- EXPECT_EQ(5U, model.cursor_pos());
+ EXPECT_EQ(5U, model.GetCursorPosition());
model.SetCompositionText(composition);
- EXPECT_STR_EQ("1234567890", model.text());
+ EXPECT_STR_EQ("1234567890", model.GetText());
EXPECT_TRUE(model.SetText(ASCIIToUTF16("1234567890")));
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- model.MoveCursorToEnd(false);
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
model.SetCompositionText(composition);
- EXPECT_STR_EQ("1234567890678", model.text());
+ EXPECT_STR_EQ("1234567890678", model.GetText());
model.InsertText(UTF8ToUTF16("-"));
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("1234567890-", model.text());
+ EXPECT_STR_EQ("1234567890-", model.GetText());
EXPECT_FALSE(model.HasCompositionText());
EXPECT_FALSE(model.HasSelection());
- model.MoveCursorLeft(true);
+ model.MoveCursorLeft(gfx::CHARACTER_BREAK, true);
EXPECT_STR_EQ("-", model.GetSelectedText());
model.SetCompositionText(composition);
- EXPECT_STR_EQ("1234567890678", model.text());
+ EXPECT_STR_EQ("1234567890678", model.GetText());
model.ReplaceText(UTF8ToUTF16("-"));
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("1234567890-", model.text());
+ EXPECT_STR_EQ("1234567890-", model.GetText());
EXPECT_FALSE(model.HasCompositionText());
EXPECT_FALSE(model.HasSelection());
@@ -583,82 +543,82 @@ TEST_F(TextfieldViewsModelTest, CompositionTextTest) {
model.Append(UTF8ToUTF16("-"));
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("1234567890-678-", model.text());
+ EXPECT_STR_EQ("1234567890-678-", model.GetText());
model.SetCompositionText(composition);
model.Delete();
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("1234567890-678-", model.text());
+ EXPECT_STR_EQ("1234567890-678-", model.GetText());
model.SetCompositionText(composition);
model.Backspace();
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("1234567890-678-", model.text());
+ EXPECT_STR_EQ("1234567890-678-", model.GetText());
model.SetText(string16());
model.SetCompositionText(composition);
- model.MoveCursorLeft(false);
+ model.MoveCursorLeft(gfx::CHARACTER_BREAK, false);
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("678", model.text());
- EXPECT_EQ(2U, model.cursor_pos());
+ EXPECT_STR_EQ("678", model.GetText());
+ EXPECT_EQ(2U, model.GetCursorPosition());
model.SetCompositionText(composition);
- model.MoveCursorRight(false);
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, false);
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("676788", model.text());
- EXPECT_EQ(6U, model.cursor_pos());
+ EXPECT_STR_EQ("676788", model.GetText());
+ EXPECT_EQ(6U, model.GetCursorPosition());
model.SetCompositionText(composition);
- model.MoveCursorToPreviousWord(false);
+ model.MoveCursorLeft(gfx::WORD_BREAK, false);
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("676788678", model.text());
+ EXPECT_STR_EQ("676788678", model.GetText());
model.SetText(string16());
model.SetCompositionText(composition);
- model.MoveCursorToNextWord(false);
+ model.MoveCursorRight(gfx::WORD_BREAK, false);
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
model.SetCompositionText(composition);
- model.MoveCursorToHome(true);
+ model.MoveCursorLeft(gfx::LINE_BREAK, true);
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("678678", model.text());
+ EXPECT_STR_EQ("678678", model.GetText());
model.SetCompositionText(composition);
- model.MoveCursorToEnd(false);
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("678", model.text());
+ EXPECT_STR_EQ("678", model.GetText());
model.SetCompositionText(composition);
model.MoveCursorTo(0, true);
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("678678", model.text());
+ EXPECT_STR_EQ("678678", model.GetText());
model.SetCompositionText(composition);
model.SelectRange(ui::Range(0, 3));
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("678", model.text());
+ EXPECT_STR_EQ("678", model.GetText());
model.SetCompositionText(composition);
model.SelectAll();
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("678", model.text());
+ EXPECT_STR_EQ("678", model.GetText());
model.SetCompositionText(composition);
model.SelectWord();
EXPECT_TRUE(composition_text_confirmed_or_cleared_);
composition_text_confirmed_or_cleared_ = false;
- EXPECT_STR_EQ("678", model.text());
+ EXPECT_STR_EQ("678", model.GetText());
model.SetCompositionText(composition);
model.ClearSelection();
@@ -675,157 +635,157 @@ TEST_F(TextfieldViewsModelTest, UndoRedo_BasicTest) {
model.InsertChar('a');
EXPECT_FALSE(model.Redo()); // nothing to redo
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("", model.text());
+ EXPECT_STR_EQ("", model.GetText());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("a", model.text());
+ EXPECT_STR_EQ("a", model.GetText());
// Continuous inserts are treated as one edit.
model.InsertChar('b');
model.InsertChar('c');
- EXPECT_STR_EQ("abc", model.text());
+ EXPECT_STR_EQ("abc", model.GetText());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("a", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
+ EXPECT_STR_EQ("a", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
// Undoing further shouldn't change the text.
EXPECT_FALSE(model.Undo());
- EXPECT_STR_EQ("", model.text());
+ EXPECT_STR_EQ("", model.GetText());
EXPECT_FALSE(model.Undo());
- EXPECT_STR_EQ("", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
// Redoing to the latest text.
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("a", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
+ EXPECT_STR_EQ("a", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("abc", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("abc", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
// Backspace ===============================
EXPECT_TRUE(model.Backspace());
- EXPECT_STR_EQ("ab", model.text());
+ EXPECT_STR_EQ("ab", model.GetText());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("abc", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("abc", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ab", model.text());
- EXPECT_EQ(2U, model.cursor_pos());
+ EXPECT_STR_EQ("ab", model.GetText());
+ EXPECT_EQ(2U, model.GetCursorPosition());
// Continous backspaces are treated as one edit.
EXPECT_TRUE(model.Backspace());
EXPECT_TRUE(model.Backspace());
- EXPECT_STR_EQ("", model.text());
+ EXPECT_STR_EQ("", model.GetText());
// Extra backspace shouldn't affect the history.
EXPECT_FALSE(model.Backspace());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ab", model.text());
- EXPECT_EQ(2U, model.cursor_pos());
+ EXPECT_STR_EQ("ab", model.GetText());
+ EXPECT_EQ(2U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("abc", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("abc", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("a", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
+ EXPECT_STR_EQ("a", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
// Clear history
model.ClearEditHistory();
EXPECT_FALSE(model.Undo());
EXPECT_FALSE(model.Redo());
- EXPECT_STR_EQ("a", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
+ EXPECT_STR_EQ("a", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
// Delete ===============================
model.SetText(ASCIIToUTF16("ABCDE"));
model.ClearEditHistory();
model.MoveCursorTo(2, false);
EXPECT_TRUE(model.Delete());
- EXPECT_STR_EQ("ABDE", model.text());
- model.MoveCursorToHome(false);
+ EXPECT_STR_EQ("ABDE", model.GetText());
+ model.MoveCursorLeft(gfx::LINE_BREAK, false);
EXPECT_TRUE(model.Delete());
- EXPECT_STR_EQ("BDE", model.text());
+ EXPECT_STR_EQ("BDE", model.GetText());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABDE", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("ABDE", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABCDE", model.text());
- EXPECT_EQ(2U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCDE", model.GetText());
+ EXPECT_EQ(2U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ABDE", model.text());
- EXPECT_EQ(2U, model.cursor_pos());
+ EXPECT_STR_EQ("ABDE", model.GetText());
+ EXPECT_EQ(2U, model.GetCursorPosition());
// Continous deletes are treated as one edit.
EXPECT_TRUE(model.Delete());
EXPECT_TRUE(model.Delete());
- EXPECT_STR_EQ("AB", model.text());
+ EXPECT_STR_EQ("AB", model.GetText());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABDE", model.text());
- EXPECT_EQ(2U, model.cursor_pos());
+ EXPECT_STR_EQ("ABDE", model.GetText());
+ EXPECT_EQ(2U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("AB", model.text());
- EXPECT_EQ(2U, model.cursor_pos());
+ EXPECT_STR_EQ("AB", model.GetText());
+ EXPECT_EQ(2U, model.GetCursorPosition());
}
TEST_F(TextfieldViewsModelTest, UndoRedo_SetText) {
// This is to test the undo/redo behavior of omnibox.
TextfieldViewsModel model(NULL);
model.InsertChar('w');
- EXPECT_STR_EQ("w", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
+ EXPECT_STR_EQ("w", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
model.SetText(ASCIIToUTF16("www.google.com"));
- EXPECT_EQ(1U, model.cursor_pos());
- EXPECT_STR_EQ("www.google.com", model.text());
+ EXPECT_EQ(1U, model.GetCursorPosition());
+ EXPECT_STR_EQ("www.google.com", model.GetText());
model.SelectRange(ui::Range(14, 1));
model.InsertChar('w');
- EXPECT_STR_EQ("ww", model.text());
+ EXPECT_STR_EQ("ww", model.GetText());
model.SetText(ASCIIToUTF16("www.google.com"));
model.SelectRange(ui::Range(14, 2));
model.InsertChar('w');
- EXPECT_STR_EQ("www", model.text());
+ EXPECT_STR_EQ("www", model.GetText());
model.SetText(ASCIIToUTF16("www.google.com"));
model.SelectRange(ui::Range(14, 3));
model.InsertChar('.');
- EXPECT_STR_EQ("www.", model.text());
+ EXPECT_STR_EQ("www.", model.GetText());
model.SetText(ASCIIToUTF16("www.google.com"));
model.SelectRange(ui::Range(14, 4));
model.InsertChar('y');
- EXPECT_STR_EQ("www.y", model.text());
+ EXPECT_STR_EQ("www.y", model.GetText());
model.SetText(ASCIIToUTF16("www.youtube.com"));
- EXPECT_STR_EQ("www.youtube.com", model.text());
- EXPECT_EQ(5U, model.cursor_pos());
+ EXPECT_STR_EQ("www.youtube.com", model.GetText());
+ EXPECT_EQ(5U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("www.google.com", model.text());
- EXPECT_EQ(4U, model.cursor_pos());
+ EXPECT_STR_EQ("www.google.com", model.GetText());
+ EXPECT_EQ(4U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("www.google.com", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("www.google.com", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("www.google.com", model.text());
- EXPECT_EQ(2U, model.cursor_pos());
+ EXPECT_STR_EQ("www.google.com", model.GetText());
+ EXPECT_EQ(2U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("www.google.com", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
+ EXPECT_STR_EQ("www.google.com", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
EXPECT_FALSE(model.Undo());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("www.google.com", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
+ EXPECT_STR_EQ("www.google.com", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("www.google.com", model.text());
- EXPECT_EQ(2U, model.cursor_pos());
+ EXPECT_STR_EQ("www.google.com", model.GetText());
+ EXPECT_EQ(2U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("www.google.com", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("www.google.com", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("www.google.com", model.text());
- EXPECT_EQ(4U, model.cursor_pos());
+ EXPECT_STR_EQ("www.google.com", model.GetText());
+ EXPECT_EQ(4U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("www.youtube.com", model.text());
- EXPECT_EQ(5U, model.cursor_pos());
+ EXPECT_STR_EQ("www.youtube.com", model.GetText());
+ EXPECT_EQ(5U, model.GetCursorPosition());
EXPECT_FALSE(model.Redo());
}
@@ -837,153 +797,153 @@ TEST_F(TextfieldViewsModelTest, UndoRedo_CutCopyPasteTest) {
model.MoveCursorTo(1, false);
model.MoveCursorTo(3, true);
model.Cut();
- EXPECT_STR_EQ("ADE", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
+ EXPECT_STR_EQ("ADE", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABCDE", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCDE", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
EXPECT_FALSE(model.Undo()); // no more undo
- EXPECT_STR_EQ("", model.text());
+ EXPECT_STR_EQ("", model.GetText());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ABCDE", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCDE", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ADE", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
+ EXPECT_STR_EQ("ADE", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
EXPECT_FALSE(model.Redo()); // no more redo
- EXPECT_STR_EQ("ADE", model.text());
+ EXPECT_STR_EQ("ADE", model.GetText());
model.Paste();
model.Paste();
model.Paste();
- EXPECT_STR_EQ("ABCBCBCDE", model.text());
- EXPECT_EQ(7U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCBCBCDE", model.GetText());
+ EXPECT_EQ(7U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABCBCDE", model.text());
- EXPECT_EQ(5U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCBCDE", model.GetText());
+ EXPECT_EQ(5U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABCDE", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCDE", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ADE", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
+ EXPECT_STR_EQ("ADE", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABCDE", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCDE", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
EXPECT_FALSE(model.Undo());
- EXPECT_STR_EQ("", model.text());
+ EXPECT_STR_EQ("", model.GetText());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ABCDE", model.text()); // Redoing SetText
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCDE", model.GetText()); // Redoing SetText
+ EXPECT_EQ(0U, model.GetCursorPosition());
// Redo
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ADE", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
+ EXPECT_STR_EQ("ADE", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ABCDE", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCDE", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ABCBCDE", model.text());
- EXPECT_EQ(5U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCBCDE", model.GetText());
+ EXPECT_EQ(5U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ABCBCBCDE", model.text());
- EXPECT_EQ(7U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCBCBCDE", model.GetText());
+ EXPECT_EQ(7U, model.GetCursorPosition());
EXPECT_FALSE(model.Redo());
// with SelectRange
model.SelectRange(ui::Range(1, 3));
EXPECT_TRUE(model.Cut());
- EXPECT_STR_EQ("ABCBCDE", model.text());
- EXPECT_EQ(1U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCBCDE", model.GetText());
+ EXPECT_EQ(1U, model.GetCursorPosition());
model.SelectRange(ui::Range(1, 1));
EXPECT_FALSE(model.Cut());
- model.MoveCursorToEnd(false);
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
EXPECT_TRUE(model.Paste());
- EXPECT_STR_EQ("ABCBCDEBC", model.text());
- EXPECT_EQ(9U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCBCDEBC", model.GetText());
+ EXPECT_EQ(9U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABCBCDE", model.text());
- EXPECT_EQ(7U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCBCDE", model.GetText());
+ EXPECT_EQ(7U, model.GetCursorPosition());
// empty cut shouldn't create an edit.
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABCBCBCDE", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("ABCBCBCDE", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
// Copy
ResetModel(&model);
model.SetText(ASCIIToUTF16("12345"));
- EXPECT_STR_EQ("12345", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("12345", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
model.MoveCursorTo(1, false);
model.MoveCursorTo(3, true);
model.Copy(); // Copy "23"
- EXPECT_STR_EQ("12345", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("12345", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
model.Paste(); // Paste "23" into "23".
- EXPECT_STR_EQ("12345", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("12345", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
model.Paste();
- EXPECT_STR_EQ("1232345", model.text());
- EXPECT_EQ(5U, model.cursor_pos());
+ EXPECT_STR_EQ("1232345", model.GetText());
+ EXPECT_EQ(5U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("12345", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("12345", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
// TODO(oshima): We need to change the return type from bool to enum.
EXPECT_FALSE(model.Undo()); // No text change.
- EXPECT_STR_EQ("12345", model.text());
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("12345", model.GetText());
+ EXPECT_EQ(3U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("", model.text());
+ EXPECT_STR_EQ("", model.GetText());
EXPECT_FALSE(model.Undo());
// Redo
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("12345", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("12345", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("12345", model.text()); // For 1st paste
- EXPECT_EQ(3U, model.cursor_pos());
+ EXPECT_STR_EQ("12345", model.GetText()); // For 1st paste
+ EXPECT_EQ(3U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("1232345", model.text());
- EXPECT_EQ(5U, model.cursor_pos());
+ EXPECT_STR_EQ("1232345", model.GetText());
+ EXPECT_EQ(5U, model.GetCursorPosition());
EXPECT_FALSE(model.Redo());
- EXPECT_STR_EQ("1232345", model.text());
+ EXPECT_STR_EQ("1232345", model.GetText());
- // with SelectRange
+ // Test using SelectRange
model.SelectRange(ui::Range(1, 3));
model.Copy();
- EXPECT_STR_EQ("1232345", model.text());
- model.MoveCursorToEnd(false);
+ EXPECT_STR_EQ("1232345", model.GetText());
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
EXPECT_TRUE(model.Paste());
- EXPECT_STR_EQ("123234523", model.text());
- EXPECT_EQ(9U, model.cursor_pos());
+ EXPECT_STR_EQ("123234523", model.GetText());
+ EXPECT_EQ(9U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("1232345", model.text());
- EXPECT_EQ(7U, model.cursor_pos());
+ EXPECT_STR_EQ("1232345", model.GetText());
+ EXPECT_EQ(7U, model.GetCursorPosition());
}
TEST_F(TextfieldViewsModelTest, UndoRedo_CursorTest) {
TextfieldViewsModel model(NULL);
model.InsertChar('a');
- model.MoveCursorLeft(false);
- model.MoveCursorRight(false);
+ model.MoveCursorLeft(gfx::CHARACTER_BREAK, false);
+ model.MoveCursorRight(gfx::CHARACTER_BREAK, false);
model.InsertChar('b');
- // Moving cursor shoudln't create a new edit.
- EXPECT_STR_EQ("ab", model.text());
+ // Moving the cursor shouldn't create a new edit.
+ EXPECT_STR_EQ("ab", model.GetText());
EXPECT_FALSE(model.Redo());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("", model.text());
+ EXPECT_STR_EQ("", model.GetText());
EXPECT_FALSE(model.Undo());
- EXPECT_STR_EQ("", model.text());
+ EXPECT_STR_EQ("", model.GetText());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ab", model.text());
- EXPECT_EQ(2U, model.cursor_pos());
+ EXPECT_STR_EQ("ab", model.GetText());
+ EXPECT_EQ(2U, model.GetCursorPosition());
EXPECT_FALSE(model.Redo());
}
@@ -995,21 +955,21 @@ void RunInsertReplaceTest(TextfieldViewsModel& model) {
model.InsertChar('1');
model.InsertChar('2');
model.InsertChar('3');
- EXPECT_STR_EQ("a123d", model.text());
- EXPECT_EQ(4U, model.cursor_pos());
+ EXPECT_STR_EQ("a123d", model.GetText());
+ EXPECT_EQ(4U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("abcd", model.text());
- EXPECT_EQ(reverse ? 1U : 3U, model.cursor_pos());
+ EXPECT_STR_EQ("abcd", model.GetText());
+ EXPECT_EQ(reverse ? 1U : 3U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
EXPECT_FALSE(model.Undo());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("abcd", model.text());
- EXPECT_EQ(0U, model.cursor_pos()); // By SetText
+ EXPECT_STR_EQ("abcd", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition()); // By SetText
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("a123d", model.text());
- EXPECT_EQ(4U, model.cursor_pos());
+ EXPECT_STR_EQ("a123d", model.GetText());
+ EXPECT_EQ(4U, model.GetCursorPosition());
EXPECT_FALSE(model.Redo());
}
@@ -1022,21 +982,21 @@ void RunOverwriteReplaceTest(TextfieldViewsModel& model) {
model.ReplaceChar('2');
model.ReplaceChar('3');
model.ReplaceChar('4');
- EXPECT_STR_EQ("a1234", model.text());
- EXPECT_EQ(5U, model.cursor_pos());
+ EXPECT_STR_EQ("a1234", model.GetText());
+ EXPECT_EQ(5U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("abcd", model.text());
- EXPECT_EQ(reverse ? 1U : 3U, model.cursor_pos());
+ EXPECT_STR_EQ("abcd", model.GetText());
+ EXPECT_EQ(reverse ? 1U : 3U, model.GetCursorPosition());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
EXPECT_FALSE(model.Undo());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("abcd", model.text());
- EXPECT_EQ(0U, model.cursor_pos());
+ EXPECT_STR_EQ("abcd", model.GetText());
+ EXPECT_EQ(0U, model.GetCursorPosition());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("a1234", model.text());
- EXPECT_EQ(5U, model.cursor_pos());
+ EXPECT_STR_EQ("a1234", model.GetText());
+ EXPECT_EQ(5U, model.GetCursorPosition());
EXPECT_FALSE(model.Redo());
}
@@ -1114,282 +1074,72 @@ TEST_F(TextfieldViewsModelTest, UndoRedo_CompositionText) {
composition.selection = ui::Range(2, 3);
model.SetText(ASCIIToUTF16("ABCDE"));
- model.MoveCursorToEnd(false);
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
model.InsertChar('x');
- EXPECT_STR_EQ("ABCDEx", model.text());
+ EXPECT_STR_EQ("ABCDEx", model.GetText());
EXPECT_TRUE(model.Undo()); // set composition should forget undone edit.
model.SetCompositionText(composition);
EXPECT_TRUE(model.HasCompositionText());
EXPECT_TRUE(model.HasSelection());
- EXPECT_STR_EQ("ABCDEabc", model.text());
+ EXPECT_STR_EQ("ABCDEabc", model.GetText());
// Accepting composition
model.ConfirmCompositionText();
- EXPECT_STR_EQ("ABCDEabc", model.text());
+ EXPECT_STR_EQ("ABCDEabc", model.GetText());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABCDE", model.text());
+ EXPECT_STR_EQ("ABCDE", model.GetText());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("", model.text());
+ EXPECT_STR_EQ("", model.GetText());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ABCDE", model.text());
+ EXPECT_STR_EQ("ABCDE", model.GetText());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ABCDEabc", model.text());
+ EXPECT_STR_EQ("ABCDEabc", model.GetText());
EXPECT_FALSE(model.Redo());
// Canceling composition
- model.MoveCursorToHome(false);
+ model.MoveCursorLeft(gfx::LINE_BREAK, false);
model.SetCompositionText(composition);
- EXPECT_STR_EQ("abcABCDEabc", model.text());
+ EXPECT_STR_EQ("abcABCDEabc", model.GetText());
model.CancelCompositionText();
- EXPECT_STR_EQ("ABCDEabc", model.text());
+ EXPECT_STR_EQ("ABCDEabc", model.GetText());
EXPECT_FALSE(model.Redo());
- EXPECT_STR_EQ("ABCDEabc", model.text());
+ EXPECT_STR_EQ("ABCDEabc", model.GetText());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABCDE", model.text());
+ EXPECT_STR_EQ("ABCDE", model.GetText());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ABCDEabc", model.text());
+ EXPECT_STR_EQ("ABCDEabc", model.GetText());
EXPECT_FALSE(model.Redo());
// SetText with the same text as the result.
ResetModel(&model);
model.SetText(ASCIIToUTF16("ABCDE"));
- model.MoveCursorToEnd(false);
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
model.SetCompositionText(composition);
- EXPECT_STR_EQ("ABCDEabc", model.text());
+ EXPECT_STR_EQ("ABCDEabc", model.GetText());
model.SetText(ASCIIToUTF16("ABCDEabc"));
- EXPECT_STR_EQ("ABCDEabc", model.text());
+ EXPECT_STR_EQ("ABCDEabc", model.GetText());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABCDE", model.text());
+ EXPECT_STR_EQ("ABCDE", model.GetText());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("ABCDEabc", model.text());
+ EXPECT_STR_EQ("ABCDEabc", model.GetText());
EXPECT_FALSE(model.Redo());
// SetText with the different text than the result should not
// remember composition text.
ResetModel(&model);
model.SetText(ASCIIToUTF16("ABCDE"));
- model.MoveCursorToEnd(false);
+ model.MoveCursorRight(gfx::LINE_BREAK, false);
model.SetCompositionText(composition);
- EXPECT_STR_EQ("ABCDEabc", model.text());
+ EXPECT_STR_EQ("ABCDEabc", model.GetText());
model.SetText(ASCIIToUTF16("1234"));
- EXPECT_STR_EQ("1234", model.text());
+ EXPECT_STR_EQ("1234", model.GetText());
EXPECT_TRUE(model.Undo());
- EXPECT_STR_EQ("ABCDE", model.text());
+ EXPECT_STR_EQ("ABCDE", model.GetText());
EXPECT_TRUE(model.Redo());
- EXPECT_STR_EQ("1234", model.text());
+ EXPECT_STR_EQ("1234", model.GetText());
EXPECT_FALSE(model.Redo());
// TODO(oshima): We need MockInputMethod to test the behavior with IME.
}
-TEST_F(TextfieldViewsModelTest, TextStyleTest) {
- const SkColor black = 0xFF000000; // black is default text color.
- const SkColor white = 0xFFFFFFFF;
- TextfieldViewsModel model(NULL);
- TextStyle* color = model.CreateTextStyle();
- color->set_foreground(white);
- TextStyle* underline = model.CreateTextStyle();
- underline->set_underline(true);
- underline->set_foreground(white);
- TextStyle* strike = model.CreateTextStyle();
- strike->set_strike(true);
- strike->set_foreground(white);
-
- // Case 1: No overlaps
- model.ApplyTextStyle(color, ui::Range(1, 3));
- model.ApplyTextStyle(underline, ui::Range(5, 6));
-
- TextfieldViewsModel::TextFragments fragments;
- model.GetFragments(&fragments);
- // Styles with empty string simply returns an empty fragments.
- EXPECT_EQ(0U, fragments.size());
-
- // 1st style only.
- model.SetText(ASCIIToUTF16("01234")); // SetText doesn't change styles.
- model.GetFragments(&fragments);
- EXPECT_EQ(3U, fragments.size());
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(1U, fragments[0].range.end());
- EXPECT_EQ(black, fragments[0].style->foreground());
-
- EXPECT_EQ(1U, fragments[1].range.start());
- EXPECT_EQ(3U, fragments[1].range.end());
- EXPECT_EQ(color, fragments[1].style);
-
- EXPECT_EQ(3U, fragments[2].range.start());
- EXPECT_EQ(5U, fragments[2].range.end());
- EXPECT_EQ(black, fragments[2].style->foreground());
-
- // Clear styles
- model.ClearAllTextStyles();
- model.GetFragments(&fragments);
- EXPECT_EQ(1U, fragments.size());
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(5U, fragments[0].range.end());
- EXPECT_EQ(black, fragments[0].style->foreground());
-
- // Case 2: Overlaps on left and on right
- model.ApplyTextStyle(color, ui::Range(1, 3));
- model.ApplyTextStyle(strike, ui::Range(6, 8));
- model.ApplyTextStyle(underline, ui::Range(2, 7));
-
- // With short string
- model.SetText(ASCIIToUTF16("0"));
- model.GetFragments(&fragments);
- EXPECT_EQ(1U, fragments.size());
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(1U, fragments[0].range.end());
- EXPECT_EQ(black, fragments[0].style->foreground());
-
- // With mid-length string
- model.SetText(ASCIIToUTF16("0123"));
- model.GetFragments(&fragments);
- EXPECT_EQ(3U, fragments.size());
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(1U, fragments[0].range.end());
- EXPECT_EQ(black, fragments[0].style->foreground());
-
- EXPECT_EQ(1U, fragments[1].range.start());
- EXPECT_EQ(2U, fragments[1].range.end());
- EXPECT_EQ(color, fragments[1].style);
-
- EXPECT_EQ(2U, fragments[2].range.start());
- EXPECT_EQ(4U, fragments[2].range.end());
- EXPECT_EQ(underline, fragments[2].style);
-
- // With long (longer than styles) string
- model.SetText(ASCIIToUTF16("0123456789"));
- model.GetFragments(&fragments);
- EXPECT_EQ(5U, fragments.size());
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(1U, fragments[0].range.end());
- EXPECT_EQ(black, fragments[0].style->foreground());
-
- EXPECT_EQ(1U, fragments[1].range.start());
- EXPECT_EQ(2U, fragments[1].range.end());
- EXPECT_EQ(color, fragments[1].style);
-
- EXPECT_EQ(2U, fragments[2].range.start());
- EXPECT_EQ(7U, fragments[2].range.end());
- EXPECT_EQ(underline, fragments[2].style);
-
- EXPECT_EQ(7U, fragments[3].range.start());
- EXPECT_EQ(8U, fragments[3].range.end());
- EXPECT_EQ(strike, fragments[3].style);
-
- EXPECT_EQ(8U, fragments[4].range.start());
- EXPECT_EQ(10U, fragments[4].range.end());
- EXPECT_EQ(black, fragments[4].style->foreground());
-
- model.ClearAllTextStyles();
-
- // Case 3: The underline style splits the color style underneath.
- model.ApplyTextStyle(color, ui::Range(0, 15));
- model.ApplyTextStyle(underline, ui::Range(5, 6));
- model.GetFragments(&fragments);
- EXPECT_EQ(3U, fragments.size());
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(5U, fragments[0].range.end());
- EXPECT_EQ(color, fragments[0].style);
-
- EXPECT_EQ(5U, fragments[1].range.start());
- EXPECT_EQ(6U, fragments[1].range.end());
- EXPECT_EQ(underline, fragments[1].style);
-
- EXPECT_EQ(6U, fragments[2].range.start());
- EXPECT_EQ(10U, fragments[2].range.end());
- EXPECT_EQ(color, fragments[2].style);
-
- model.ClearAllTextStyles();
-
- // Case 4: The underline style moves the color style underneath.
- model.ApplyTextStyle(color, ui::Range(0, 15));
- model.ApplyTextStyle(underline, ui::Range(0, 6));
- model.GetFragments(&fragments);
- EXPECT_EQ(2U, fragments.size());
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(6U, fragments[0].range.end());
- EXPECT_EQ(underline, fragments[0].style);
-
- EXPECT_EQ(6U, fragments[1].range.start());
- EXPECT_EQ(10U, fragments[1].range.end());
- EXPECT_EQ(color, fragments[1].style);
-
- model.ClearAllTextStyles();
-
- model.ApplyTextStyle(color, ui::Range(0, 10));
- model.ApplyTextStyle(underline, ui::Range(6, 10));
- model.GetFragments(&fragments);
- EXPECT_EQ(2U, fragments.size());
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(6U, fragments[0].range.end());
- EXPECT_EQ(color, fragments[0].style);
-
- EXPECT_EQ(6U, fragments[1].range.start());
- EXPECT_EQ(10U, fragments[1].range.end());
- EXPECT_EQ(underline, fragments[1].style);
-
- model.ClearAllTextStyles();
- // Case 5: The strike style hides the unerline style underneath.
- model.ApplyTextStyle(color, ui::Range(0, 15));
- model.ApplyTextStyle(underline, ui::Range(0, 6));
- model.ApplyTextStyle(strike, ui::Range(4, 7));
- model.GetFragments(&fragments);
- EXPECT_EQ(3U, fragments.size());
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(4U, fragments[0].range.end());
- EXPECT_EQ(underline, fragments[0].style);
-
- EXPECT_EQ(4U, fragments[1].range.start());
- EXPECT_EQ(7U, fragments[1].range.end());
- EXPECT_EQ(strike, fragments[1].style);
-
- EXPECT_EQ(7U, fragments[2].range.start());
- EXPECT_EQ(10U, fragments[2].range.end());
- EXPECT_EQ(color, fragments[2].style);
-
- // Case 6: Reversed range.
- model.ClearAllTextStyles();
- model.ApplyTextStyle(color, ui::Range(3, 1));
- model.ApplyTextStyle(underline, ui::Range(6, 4));
- model.ApplyTextStyle(strike, ui::Range(5, 2));
- model.GetFragments(&fragments);
- EXPECT_EQ(5U, fragments.size());
-
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(1U, fragments[0].range.end());
- EXPECT_EQ(black, fragments[0].style->foreground());
-
- EXPECT_EQ(1U, fragments[1].range.start());
- EXPECT_EQ(2U, fragments[1].range.end());
- EXPECT_EQ(color, fragments[1].style);
-
- EXPECT_EQ(2U, fragments[2].range.start());
- EXPECT_EQ(5U, fragments[2].range.end());
- EXPECT_EQ(strike, fragments[2].style);
-
- EXPECT_EQ(5U, fragments[3].range.start());
- EXPECT_EQ(6U, fragments[3].range.end());
- EXPECT_EQ(underline, fragments[3].style);
-
- EXPECT_EQ(6U, fragments[4].range.start());
- EXPECT_EQ(10U, fragments[4].range.end());
- EXPECT_EQ(black, fragments[4].style->foreground());
-
- // Case 7: empty / invald range
- model.ClearAllTextStyles();
- model.ApplyTextStyle(color, ui::Range(0, 0));
- model.ApplyTextStyle(underline, ui::Range(4, 4));
- ui::Range invalid = ui::Range(0, 2).Intersect(ui::Range(3, 4));
- ASSERT_FALSE(invalid.IsValid());
-
- model.ApplyTextStyle(strike, invalid);
- model.GetFragments(&fragments);
- EXPECT_EQ(1U, fragments.size());
-
- EXPECT_EQ(0U, fragments[0].range.start());
- EXPECT_EQ(10U, fragments[0].range.end());
- EXPECT_EQ(black, fragments[0].style->foreground());
-}
-
} // namespace views

Powered by Google App Engine
This is Rietveld 408576698