From 160f0c555e6565f5acb0cc6956e7ffa672c8587b Mon Sep 17 00:00:00 2001 From: Joe Konno Date: Wed, 18 Jul 2012 15:56:40 -0700 Subject: [PATCH] EFL: fileselector tests Signed-off-by: Joe Konno --- src/efl/Makefile.am | 1 + src/efl/test_fileselector.cpp | 216 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 217 insertions(+) create mode 100644 src/efl/test_fileselector.cpp diff --git a/src/efl/Makefile.am b/src/efl/Makefile.am index 8bc2fc5..57bcced 100644 --- a/src/efl/Makefile.am +++ b/src/efl/Makefile.am @@ -42,6 +42,7 @@ wayland_efl_test_SOURCES = \ test_entry.cpp \ test_fileselector_button.cpp \ test_fileselector_entry.cpp \ + test_fileselector.cpp \ test_window.cpp \ ../testmain.cpp diff --git a/src/efl/test_fileselector.cpp b/src/efl/test_fileselector.cpp new file mode 100644 index 0000000..997e3a3 --- /dev/null +++ b/src/efl/test_fileselector.cpp @@ -0,0 +1,216 @@ +#include +#include + +#include + +#include "window.h" +#include "actionslider.h" +#include "evasobject.h" +#include "elmtestharness.h" + +using std::vector; + +// TODO: Fileselector controls all share a lot of commonality, so an +// TODO: aggressive refactor with cpp macros could be leveraged. + +class FileselectorExpandableTest : public ElmTestHarness +{ +public: + + FileselectorExpandableTest() + : ElmTestHarness::ElmTestHarness() + , window_("FileselectorExpandableTest", "Fileselector Expandable Test") + , control_(elm_fileselector_add(window_)) + { + control_.setSize(100, 100); + control_.setPosition(50, 10); + + states_.push_back(EINA_TRUE); + states_.push_back(EINA_FALSE); + states_.push_back(EINA_TRUE); + + return; + } + + void setup() + { + window_.show(); + control_.show(); + + vector::iterator it; + for (it = states_.begin(); it != states_.end(); it++) + { + queueCallback( + ModifyCheckCallback( + boost::bind(elm_fileselector_expandable_set, boost::ref(control_), *it), + boost::bind(&FileselectorExpandableTest::checkExpandable, boost::ref(*this), *it) + ) + ); + } + } + + void checkExpandable(const Eina_Bool expandable) + { + BOOST_CHECK_EQUAL(elm_fileselector_expandable_get(control_), expandable); + } + +private: + Window window_; + EvasObject control_; + vector states_; +}; + +class FileselectorFolderOnlyTest : public ElmTestHarness +{ +public: + + FileselectorFolderOnlyTest() + : ElmTestHarness::ElmTestHarness() + , window_("FileselectorFolderOnlyTest", "Fileselector FolderOnly Test") + , control_(elm_fileselector_add(window_)) + { + control_.setSize(100, 100); + control_.setPosition(50, 10); + + states_.push_back(EINA_TRUE); + states_.push_back(EINA_FALSE); + states_.push_back(EINA_TRUE); + + return; + } + + void setup() + { + window_.show(); + control_.show(); + + vector::iterator it; + for (it = states_.begin(); it != states_.end(); it++) + { + queueCallback( + ModifyCheckCallback( + boost::bind(elm_fileselector_folder_only_set, boost::ref(control_), *it), + boost::bind(&FileselectorFolderOnlyTest::checkFolderOnly, boost::ref(*this), *it) + ) + ); + } + } + + void checkFolderOnly(const Eina_Bool folderonly) + { + BOOST_CHECK_EQUAL(elm_fileselector_folder_only_get(control_), folderonly); + } + +private: + Window window_; + EvasObject control_; + vector states_; +}; + +class FileselectorIsSaveTest : public ElmTestHarness +{ +public: + + FileselectorIsSaveTest() + : ElmTestHarness::ElmTestHarness() + , window_("FileselectorIsSaveTest", "Fileselector IsSave Test") + , control_(elm_fileselector_add(window_)) + { + control_.setSize(100, 100); + control_.setPosition(50, 10); + + states_.push_back(EINA_TRUE); + states_.push_back(EINA_FALSE); + states_.push_back(EINA_TRUE); + + return; + } + + void setup() + { + window_.show(); + control_.show(); + + vector::iterator it; + for (it = states_.begin(); it != states_.end(); it++) + { + queueCallback( + ModifyCheckCallback( + boost::bind(elm_fileselector_is_save_set, boost::ref(control_), *it), + boost::bind(&FileselectorIsSaveTest::checkIsSave, boost::ref(*this), *it) + ) + ); + } + } + + void checkIsSave(const Eina_Bool save) + { + BOOST_CHECK_EQUAL(elm_fileselector_is_save_get(control_), save); + } + +private: + Window window_; + EvasObject control_; + vector states_; +}; + +class FileselectorModeTest : public ElmTestHarness +{ +public: + + FileselectorModeTest() + : ElmTestHarness::ElmTestHarness() + , window_("FileselectorModeTest", "Fileselector Mode Test") + , control_(elm_fileselector_add(window_)) + { + states_.push_back(ELM_FILESELECTOR_LIST); + states_.push_back(ELM_FILESELECTOR_GRID); + states_.push_back(ELM_FILESELECTOR_LIST); + states_.push_back(ELM_FILESELECTOR_GRID); + + return; + } + + void setup() + { + control_.setSize(100, 100); + control_.setPosition(50, 10); + + window_.show(); + control_.show(); + + vector::iterator it; + for (it = states_.begin(); it != states_.end(); it++) + { + queueCallback( + ModifyCheckCallback( + boost::bind(elm_fileselector_mode_set, boost::ref(control_), *it), + boost::bind(&FileselectorModeTest::checkMode, boost::ref(*this), *it) + ) + ); + } + } + + void checkMode(const Eina_Bool inwin) + { + BOOST_CHECK_EQUAL(elm_fileselector_mode_get(control_), inwin); + } + +private: + Window window_; + EvasObject control_; + vector states_; +}; + +BOOST_AUTO_TEST_SUITE(EFL) + + BOOST_AUTO_TEST_SUITE(FileSelector) + + WAYLAND_ELM_HARNESS_TEST_CASE(FileselectorExpandableTest) + WAYLAND_ELM_HARNESS_TEST_CASE(FileselectorFolderOnlyTest) + WAYLAND_ELM_HARNESS_TEST_CASE(FileselectorIsSaveTest) + WAYLAND_ELM_HARNESS_TEST_CASE(FileselectorModeTest) + + BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE_END() -- 2.7.4