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 |