diff options
| author | Thomi Richards <thomi.richards@canonical.com> | 2012-11-23 11:26:51 +1300 |
|---|---|---|
| committer | Thomi Richards <thomi.richards@canonical.com> | 2012-11-23 11:26:51 +1300 |
| commit | b9d0dca7985b330370998c1d39d55500cb73109d (patch) | |
| tree | 77ef926064ee8857065365727510acccef039c2c /tests | |
| parent | 7c8cbb3cd670b78bb7908b9ee01f2e7949fa192c (diff) | |
| parent | c71ac9d8174a75ca7e0312e898c43eabad8729b4 (diff) | |
Merged trunk.
(bzr r2895.1.16)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | tests/test_text_input.cpp | 116 |
2 files changed, 117 insertions, 0 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 26e80dd29..71f55b6fc 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -243,6 +243,7 @@ if (ENABLE_X_SUPPORT) test_switcher_controller.cpp test_switcher_model.cpp test_texture_cache.cpp + test_text_input.cpp test_thumbnail_generator.cpp test_trash_launcher_icon.cpp test_launcher_minimize_speed.cpp diff --git a/tests/test_text_input.cpp b/tests/test_text_input.cpp new file mode 100644 index 000000000..017aecf42 --- /dev/null +++ b/tests/test_text_input.cpp @@ -0,0 +1,116 @@ +/* + * Copyright 2012 Canonical Ltd. + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License version 3, as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranties of + * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the applicable version of the GNU Lesser General Public + * License for more details. + * + * You should have received a copy of both the GNU Lesser General Public + * License version 3 along with this program. If not, see + * <http://www.gnu.org/licenses/> + * + * Authored by: Manuel de la Pena <manuel.delapena@canonical.com> + * + */ + + +#include <gtest/gtest.h> + +#include "unity-shared/TextInput.h" +#include "test_utils.h" + +using namespace nux; + +namespace unity +{ + +class TextInputMock : public TextInput +{ + public: + using TextInput::Init; + using TextInput::OnInputHintChanged; + using TextInput::OnMouseButtonDown; + using TextInput::OnEndKeyFocus; + using TextInput::get_input_string; + + + nux::StaticCairoText* GetHint() const { return hint_; } + IMTextEntry* GetPangoEntry() const { return pango_entry_; } +}; + +class TestTextInput : public ::testing::Test +{ + protected: + TestTextInput() + { + entry = new TextInputMock(); + entry->Init(); + hint = entry->GetHint(); + pango_entry = entry->GetPangoEntry(); + } + + nux::ObjectPtr<TextInputMock> entry; + nux::StaticCairoText* hint; + IMTextEntry* pango_entry; +}; + +TEST_F(TestTextInput, HintCorrectInit) +{ + nux::Color color = hint->GetTextColor(); + + EXPECT_EQ(color.red, 1.0f); + EXPECT_EQ(color.green, 1.0f); + EXPECT_EQ(color.blue, 1.0f); + EXPECT_EQ(color.alpha, 0.5f); +} + +TEST_F(TestTextInput, InputStringCorrectSetter) +{ + // set the string and test that we do indeed set the internal va + std::string new_input = "foo"; + entry->input_string.Set(new_input); + EXPECT_EQ(entry->input_string.Get(), new_input); +} + +TEST_F(TestTextInput, HintClearedOnInputHintChanged) +{ + // change the hint and assert that the internal value is correct + hint->SetText("foo"); + entry->OnInputHintChanged(); + EXPECT_EQ(entry->get_input_string(), ""); +} + +TEST_F(TestTextInput, HintHideOnMouseButtonDown) +{ + hint->SetVisible(true); + entry->OnMouseButtonDown(entry->GetBaseWidth()/2, + entry->GetBaseHeight()/2 , 0, 0); + EXPECT_FALSE(hint->IsVisible()); +} + +TEST_F(TestTextInput, HintVisibleOnEndKeyFocus) +{ + // set the text and ensure that later is cleared + pango_entry->SetText("user input"); + entry->OnEndKeyFocus(); + + EXPECT_FALSE(hint->IsVisible()); + +} + +TEST_F(TestTextInput, HintHiddenOnEndKeyFocus) +{ + + pango_entry->SetText(""); + entry->OnEndKeyFocus(); + + EXPECT_TRUE(hint->IsVisible()); +} + +} // unity |
