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

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

Issue 6318004: Add TextRange and related methods to Textfield Views. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 9 years, 11 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
« no previous file with comments | « views/controls/textfield/textfield_views_model.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 c8580b435d32fd01e48177646e77c324ba44acdf..f7018b835a243e4e1b0e778da54d2575c266804e 100644
--- a/views/controls/textfield/textfield_views_model_unittest.cc
+++ b/views/controls/textfield/textfield_views_model_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -9,16 +9,28 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/clipboard/clipboard.h"
#include "ui/base/clipboard/scoped_clipboard_writer.h"
+#include "views/controls/textfield/textfield.h"
#include "views/controls/textfield/textfield_views_model.h"
#include "views/test/test_views_delegate.h"
+#include "views/test/views_test_base.h"
#include "views/views_delegate.h"
namespace views {
+#include "views/test/views_test_base.h"
+
+class TextfieldViewsModelTest : public ViewsTestBase {
+ public:
+ TextfieldViewsModelTest() : ViewsTestBase() {}
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TextfieldViewsModelTest);
+};
+
#define EXPECT_STR_EQ(ascii, utf16) \
EXPECT_EQ(ASCIIToWide(ascii), UTF16ToWide(utf16))
-TEST(TextfieldViewsModelTest, EditString) {
+TEST_F(TextfieldViewsModelTest, EditString) {
TextfieldViewsModel model;
// append two strings
model.Append(ASCIIToUTF16("HILL"));
@@ -58,7 +70,7 @@ TEST(TextfieldViewsModelTest, EditString) {
EXPECT_STR_EQ("HELLORL", model.text());
}
-TEST(TextfieldViewsModelTest, EmptyString) {
+TEST_F(TextfieldViewsModelTest, EmptyString) {
TextfieldViewsModel model;
EXPECT_EQ(string16(), model.text());
EXPECT_EQ(string16(), model.GetSelectedText());
@@ -75,7 +87,7 @@ TEST(TextfieldViewsModelTest, EmptyString) {
EXPECT_FALSE(model.Backspace());
}
-TEST(TextfieldViewsModelTest, Selection) {
+TEST_F(TextfieldViewsModelTest, Selection) {
TextfieldViewsModel model;
model.Append(ASCIIToUTF16("HELLO"));
model.MoveCursorRight(false);
@@ -113,7 +125,7 @@ TEST(TextfieldViewsModelTest, Selection) {
EXPECT_EQ(5U, model.cursor_pos());
}
-TEST(TextfieldViewsModelTest, SelectionAndEdit) {
+TEST_F(TextfieldViewsModelTest, SelectionAndEdit) {
TextfieldViewsModel model;
model.Append(ASCIIToUTF16("HELLO"));
model.MoveCursorRight(false);
@@ -142,7 +154,7 @@ TEST(TextfieldViewsModelTest, SelectionAndEdit) {
EXPECT_STR_EQ("BEE", model.text());
}
-TEST(TextfieldViewsModelTest, Password) {
+TEST_F(TextfieldViewsModelTest, Password) {
TextfieldViewsModel model;
model.set_is_password(true);
model.Append(ASCIIToUTF16("HELLO"));
@@ -163,7 +175,7 @@ TEST(TextfieldViewsModelTest, Password) {
EXPECT_STR_EQ("X", model.text());
}
-TEST(TextfieldViewsModelTest, Word) {
+TEST_F(TextfieldViewsModelTest, Word) {
TextfieldViewsModel model;
model.Append(
ASCIIToUTF16("The answer to Life, the Universe, and Everything"));
@@ -210,7 +222,7 @@ TEST(TextfieldViewsModelTest, Word) {
EXPECT_STR_EQ("42", model.GetVisibleText());
}
-TEST(TextfieldViewsModelTest, TextFragment) {
+TEST_F(TextfieldViewsModelTest, TextFragment) {
TextfieldViewsModel model;
TextfieldViewsModel::TextFragments fragments;
// Empty string
@@ -267,7 +279,7 @@ TEST(TextfieldViewsModelTest, TextFragment) {
EXPECT_TRUE(fragments[1].selected);
}
-TEST(TextfieldViewsModelTest, SetText) {
+TEST_F(TextfieldViewsModelTest, SetText) {
TextfieldViewsModel model;
model.Append(ASCIIToUTF16("HELLO"));
model.MoveCursorToEnd(false);
@@ -288,12 +300,7 @@ TEST(TextfieldViewsModelTest, SetText) {
EXPECT_EQ(0U, model.cursor_pos());
}
-#if defined(OS_WIN)
-#define MAYBE_Clipboard DISABLED_Clipboard
-#else
-#define MAYBE_Clipboard Clipboard
-#endif
-TEST(TextfieldViewsModelTest, MAYBE_Clipboard) {
+TEST_F(TextfieldViewsModelTest, Clipboard) {
scoped_ptr<TestViewsDelegate> test_views_delegate(new TestViewsDelegate());
AutoReset<views::ViewsDelegate*> auto_reset(
&views::ViewsDelegate::views_delegate, test_views_delegate.get());
@@ -348,4 +355,113 @@ TEST(TextfieldViewsModelTest, MAYBE_Clipboard) {
EXPECT_EQ(29U, model.cursor_pos());
}
+TEST_F(TextfieldViewsModelTest, RangeTest) {
+ TextfieldViewsModel model;
+ model.Append(ASCIIToUTF16("HELLO WORLD"));
+ model.MoveCursorToStart(false);
+ TextRange range;
+ model.GetSelectedRange(&range);
+ EXPECT_TRUE(range.is_empty());
+ EXPECT_EQ(0U, range.start());
+ EXPECT_EQ(0U, range.end());
+
+ model.MoveCursorToNextWord(true);
+ model.GetSelectedRange(&range);
+ EXPECT_FALSE(range.is_empty());
+ EXPECT_FALSE(range.is_reverse());
+ EXPECT_EQ(0U, range.start());
+ EXPECT_EQ(5U, range.end());
+
+ model.MoveCursorLeft(true);
+ model.GetSelectedRange(&range);
+ EXPECT_FALSE(range.is_empty());
+ EXPECT_EQ(0U, range.start());
+ EXPECT_EQ(4U, range.end());
+
+ model.MoveCursorToPreviousWord(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.GetSelectedRange(&range);
+ EXPECT_TRUE(range.is_empty());
+ EXPECT_EQ(11U, range.start());
+ EXPECT_EQ(11U, range.end());
+
+ model.MoveCursorToPreviousWord(true);
+ model.GetSelectedRange(&range);
+ EXPECT_FALSE(range.is_empty());
+ EXPECT_TRUE(range.is_reverse());
+ EXPECT_EQ(11U, range.start());
+ EXPECT_EQ(6U, range.end());
+
+ model.MoveCursorRight(true);
+ model.GetSelectedRange(&range);
+ EXPECT_FALSE(range.is_empty());
+ EXPECT_TRUE(range.is_reverse());
+ EXPECT_EQ(11U, range.start());
+ EXPECT_EQ(7U, range.end());
+
+ model.MoveCursorToNextWord(true);
+ model.GetSelectedRange(&range);
+ EXPECT_TRUE(range.is_empty());
+ EXPECT_EQ(11U, range.start());
+ EXPECT_EQ(11U, range.end());
+
+ // Select All
+ model.MoveCursorToStart(true);
+ model.GetSelectedRange(&range);
+ EXPECT_FALSE(range.is_empty());
+ EXPECT_TRUE(range.is_reverse());
+ EXPECT_EQ(11U, range.start());
+ EXPECT_EQ(0U, range.end());
+}
+
+TEST_F(TextfieldViewsModelTest, SelectRangeTest) {
+ TextfieldViewsModel model;
+ model.Append(ASCIIToUTF16("HELLO WORLD"));
+ TextRange range(0, 6);
+ EXPECT_FALSE(range.is_reverse());
+ model.SelectRange(range);
+ EXPECT_STR_EQ("HELLO ", model.GetSelectedText());
+
+ range.SetRange(6, 1);
+ EXPECT_TRUE(range.is_reverse());
+ model.SelectRange(range);
+ EXPECT_STR_EQ("ELLO ", model.GetSelectedText());
+
+ range.SetRange(2, 1000);
+ EXPECT_FALSE(range.is_reverse());
+ model.SelectRange(range);
+ EXPECT_STR_EQ("LLO WORLD", model.GetSelectedText());
+
+ range.SetRange(1000, 3);
+ EXPECT_TRUE(range.is_reverse());
+ model.SelectRange(range);
+ EXPECT_STR_EQ("LO WORLD", model.GetSelectedText());
+
+ range.SetRange(0, 0);
+ EXPECT_TRUE(range.is_empty());
+ model.SelectRange(range);
+ EXPECT_TRUE(model.GetSelectedText().empty());
+
+ range.SetRange(3, 3);
+ EXPECT_TRUE(range.is_empty());
+ model.SelectRange(range);
+ EXPECT_TRUE(model.GetSelectedText().empty());
+
+ range.SetRange(1000, 100);
+ EXPECT_FALSE(range.is_empty());
+ model.SelectRange(range);
+ EXPECT_TRUE(model.GetSelectedText().empty());
+
+ range.SetRange(1000, 1000);
+ EXPECT_TRUE(range.is_empty());
+ model.SelectRange(range);
+ EXPECT_TRUE(model.GetSelectedText().empty());
+}
+
} // namespace views
« no previous file with comments | « views/controls/textfield/textfield_views_model.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698