Chromium Code Reviews| 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 b694ff42ccfdac41047f21af00c570c0f53b2458..948d067ef5a030bc2def98b96cf77da49300b62e 100644 |
| --- a/ui/views/controls/textfield/native_textfield_views_unittest.cc |
| +++ b/ui/views/controls/textfield/native_textfield_views_unittest.cc |
| @@ -361,6 +361,71 @@ TEST_F(NativeTextfieldViewsTest, ModelChangesTest) { |
| EXPECT_TRUE(last_contents_.empty()); |
| } |
| +TEST_F(NativeTextfieldViewsTest, ModelChangesTestLowerCase) { |
|
sky
2012/04/12 03:58:33
nit: add descriptions for your tests.
Also, can y
kochi
2012/04/12 05:39:01
Added short descriptions for new tests.
Also adde
|
| + InitTextfield(Textfield::STYLE_LOWERCASE); |
| + |
| + last_contents_.clear(); |
| + textfield_->SetText(ASCIIToUTF16("THIS IS")); |
| + |
| + 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_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) { |
| + InitTextfield(Textfield::STYLE_LOWERCASE); |
| + |
| + last_contents_.clear(); |
| + // Zenkaku Japanese "ABCabc" |
| + textfield_->SetText(WideToUTF16(L"\xFF21\xFF22\xFF23\xFF41\xFF42\xFF43")); |
| + // 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")); |
| + // 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) { |
| + std::string locale = l10n_util::GetApplicationLocale(""); |
| + base::i18n::SetICUDefaultLocale("tr"); |
| + |
| + InitTextfield(Textfield::STYLE_LOWERCASE); |
| + |
| + last_contents_.clear(); |
| + // Turkish 'I' should be converted to dotless 'i' (U+0131). |
| + textfield_->SetText(WideToUTF16(L"I")); |
| + 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(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); |