| 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 fa09efa745fda63c7676143574b4f0622d282434..388c8c3953fb7e8bd6448f72036c251013c2af26 100644
|
| --- a/views/controls/textfield/textfield_views_model_unittest.cc
|
| +++ b/views/controls/textfield/textfield_views_model_unittest.cc
|
| @@ -2,9 +2,15 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/message_loop.h"
|
| +#include "base/scoped_ptr.h"
|
| #include "base/utf_string_conversions.h"
|
| #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_views_model.h"
|
| +#include "views/test/test_views_delegate.h"
|
| +#include "views/views_delegate.h"
|
|
|
| namespace views {
|
|
|
| @@ -282,4 +288,57 @@ TEST(TextfieldViewsModelTest, SetText) {
|
| EXPECT_EQ(0U, model.cursor_pos());
|
| }
|
|
|
| +TEST(TextfieldViewsModelTest, Clipboard) {
|
| + views::ViewsDelegate::views_delegate = new TestViewsDelegate();
|
| + ui::Clipboard* clipboard
|
| + = views::ViewsDelegate::views_delegate->GetClipboard();
|
| + string16 initial_clipboard_text;
|
| + clipboard->ReadText(ui::Clipboard::BUFFER_STANDARD, &initial_clipboard_text);
|
| + string16 clipboard_text;
|
| + TextfieldViewsModel model;
|
| + model.Append(ASCIIToUTF16("HELLO WORLD"));
|
| + model.MoveCursorToEnd(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());
|
| +
|
| + // Test for cut: Non-empty selection.
|
| + model.MoveCursorToPreviousWord(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());
|
| +
|
| + // 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());
|
| +
|
| + // Test for copy: Non-empty selection.
|
| + model.Append(ASCIIToUTF16("HELLO WORLD"));
|
| + model.SelectAll();
|
| + 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(0U, model.cursor_pos());
|
| +
|
| + // Test for paste.
|
| + model.ClearSelection();
|
| + model.MoveCursorToEnd(false);
|
| + model.MoveCursorToPreviousWord(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());
|
| +}
|
| +
|
| } // namespace views
|
|
|