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

Unified Diff: ui/views/controls/textfield/native_textfield_views_unittest.cc

Issue 9358049: Implement STYLE_LOWERCASE style for Aura NativeTextfield. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix for comments. Created 8 years, 8 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: ui/views/controls/textfield/native_textfield_views_unittest.cc
diff --git a/ui/views/controls/textfield/native_textfield_views_unittest.cc b/ui/views/controls/textfield/native_textfield_views_unittest.cc
index 7d80c1098e01bf8f8a22ed11cfe035f0407ebb25..e11f29cdda49c950e915e4fa06c3ea283d05de77 100644
--- a/ui/views/controls/textfield/native_textfield_views_unittest.cc
+++ b/ui/views/controls/textfield/native_textfield_views_unittest.cc
@@ -359,6 +359,84 @@ TEST_F(NativeTextfieldViewsTest, ModelChangesTest) {
EXPECT_TRUE(last_contents_.empty());
}
+TEST_F(NativeTextfieldViewsTest, ModelChangesTestLowerCase) {
+ // Check if |model_|'s text is properly lowercased for STYLE_LOWERCASE.
+ InitTextfield(Textfield::STYLE_LOWERCASE);
+ EXPECT_EQ(0U, textfield_->GetCursorPosition());
+
+ last_contents_.clear();
+ textfield_->SetText(ASCIIToUTF16("THIS IS"));
+ EXPECT_EQ(0U, textfield_->GetCursorPosition());
+
+ EXPECT_STR_EQ("this is", model_->GetText());
+ EXPECT_STR_EQ("THIS IS", textfield_->text());
+ EXPECT_TRUE(last_contents_.empty());
+
+ textfield_->AppendText(ASCIIToUTF16(" A TEST"));
+ EXPECT_EQ(0U, textfield_->GetCursorPosition());
+ EXPECT_STR_EQ("this is a test", model_->GetText());
+ EXPECT_STR_EQ("THIS IS A TEST", textfield_->text());
+
+ EXPECT_TRUE(last_contents_.empty());
+}
+
+TEST_F(NativeTextfieldViewsTest, ModelChangesTestLowerCaseI18n) {
+ // Check if lower case conversion works for non-ASCII characters.
+ InitTextfield(Textfield::STYLE_LOWERCASE);
+ EXPECT_EQ(0U, textfield_->GetCursorPosition());
+
+ last_contents_.clear();
+ // Zenkaku Japanese "ABCabc"
+ textfield_->SetText(WideToUTF16(L"\xFF21\xFF22\xFF23\xFF41\xFF42\xFF43"));
+ EXPECT_EQ(0U, textfield_->GetCursorPosition());
+ // Zenkaku Japanese "abcabc"
+ EXPECT_EQ(WideToUTF16(L"\xFF41\xFF42\xFF43\xFF41\xFF42\xFF43"),
+ model_->GetText());
+ // Zenkaku Japanese "ABCabc"
+ EXPECT_EQ(WideToUTF16(L"\xFF21\xFF22\xFF23\xFF41\xFF42\xFF43"),
+ textfield_->text());
+ EXPECT_TRUE(last_contents_.empty());
+
+ // Zenkaku Japanese "XYZxyz"
+ textfield_->AppendText(WideToUTF16(L"\xFF38\xFF39\xFF3A\xFF58\xFF59\xFF5A"));
+ EXPECT_EQ(0U, textfield_->GetCursorPosition());
+ // Zenkaku Japanese "abcabcxyzxyz"
+ EXPECT_EQ(WideToUTF16(L"\xFF41\xFF42\xFF43\xFF41\xFF42\xFF43"
+ L"\xFF58\xFF59\xFF5A\xFF58\xFF59\xFF5A"),
+ model_->GetText());
+ // Zenkaku Japanese "ABCabcXYZxyz"
+ EXPECT_EQ(WideToUTF16(L"\xFF21\xFF22\xFF23\xFF41\xFF42\xFF43"
+ L"\xFF38\xFF39\xFF3A\xFF58\xFF59\xFF5A"),
+ textfield_->text());
+ EXPECT_TRUE(last_contents_.empty());
+}
+
+TEST_F(NativeTextfieldViewsTest, ModelChangesTestLowerCaseWithLocale) {
+ // Check if lower case conversion honors locale properly.
+ std::string locale = l10n_util::GetApplicationLocale("");
+ base::i18n::SetICUDefaultLocale("tr");
+
+ InitTextfield(Textfield::STYLE_LOWERCASE);
+ EXPECT_EQ(0U, textfield_->GetCursorPosition());
+
+ last_contents_.clear();
+ // Turkish 'I' should be converted to dotless 'i' (U+0131).
+ textfield_->SetText(WideToUTF16(L"I"));
+ EXPECT_EQ(0U, textfield_->GetCursorPosition());
+ EXPECT_EQ(WideToUTF16(L"\x0131"), model_->GetText());
+ EXPECT_EQ(WideToUTF16(L"I"), textfield_->text());
+ EXPECT_TRUE(last_contents_.empty());
+
+ base::i18n::SetICUDefaultLocale(locale);
+
+ // On default (en) locale, 'I' should be converted to 'i'.
+ textfield_->SetText(WideToUTF16(L"I"));
+ EXPECT_EQ(0U, textfield_->GetCursorPosition());
+ EXPECT_EQ(WideToUTF16(L"i"), model_->GetText());
+ EXPECT_EQ(WideToUTF16(L"I"), textfield_->text());
+ EXPECT_TRUE(last_contents_.empty());
+}
+
TEST_F(NativeTextfieldViewsTest, KeyTest) {
InitTextfield(Textfield::STYLE_DEFAULT);
SendKeyEvent(ui::VKEY_C, true, false);
« no previous file with comments | « ui/views/controls/textfield/native_textfield_views.cc ('k') | ui/views/controls/textfield/textfield_views_model.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698