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