EFL: Add flip tests
authorJoe Konno <joe.konno@intel.com>
Tue, 24 Jul 2012 01:02:41 +0000 (18:02 -0700)
committerJoe Konno <joe.konno@intel.com>
Tue, 24 Jul 2012 18:25:54 +0000 (11:25 -0700)
src/efl/Makefile.am
src/efl/test_flip.cpp [new file with mode: 0644]

index e20c19f..477c765 100644 (file)
@@ -42,6 +42,7 @@ wayland_efl_test_SOURCES =            \
        test_fileselector_button.cpp    \
        test_fileselector_entry.cpp     \
        test_fileselector.cpp           \
+       test_flip.cpp                   \
        test_window.cpp                 \
        ../testmain.cpp
 
diff --git a/src/efl/test_flip.cpp b/src/efl/test_flip.cpp
new file mode 100644 (file)
index 0000000..ab69387
--- /dev/null
@@ -0,0 +1,114 @@
+#include <boost/filesystem.hpp>
+
+#include <vector>
+
+#include "background.h"
+#include "templates.h"
+
+using boost::filesystem::path;
+using std::vector;
+
+// TODO: Once we instrument events, we can test the _interaction functions
+
+class Flip : public EvasObject
+{
+public:
+       Flip(EvasObject &parent)
+               : EvasObject::EvasObject(elm_flip_add(parent))
+       {
+               return;
+       }
+};
+
+class FlipGoTest : public ElmTestHarness
+{
+public:
+
+       FlipGoTest()
+               : ElmTestHarness::ElmTestHarness()
+               , window_("FlipGoTest", "Flip Go Test")
+               , control_(elm_flip_add(window_))
+               , first_(window_)
+               , second_(window_)
+       {
+               control_.setSize(300, 300);
+               control_.setPosition(50, 10);
+
+               evas_object_size_hint_align_set(first_, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_weight_set(first_, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(second_, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_size_hint_weight_set(second_, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+               elm_object_part_content_set(control_, "front", first_);
+               elm_object_part_content_set(control_, "back", second_);
+               
+               options_.push_back(ELM_FLIP_ROTATE_Y_CENTER_AXIS);
+               options_.push_back(ELM_FLIP_ROTATE_X_CENTER_AXIS);
+               options_.push_back(ELM_FLIP_ROTATE_XZ_CENTER_AXIS);
+               options_.push_back(ELM_FLIP_ROTATE_YZ_CENTER_AXIS);
+               options_.push_back(ELM_FLIP_CUBE_LEFT);
+               options_.push_back(ELM_FLIP_CUBE_RIGHT);
+               options_.push_back(ELM_FLIP_CUBE_UP);
+               options_.push_back(ELM_FLIP_CUBE_DOWN);
+               options_.push_back(ELM_FLIP_PAGE_LEFT);
+               options_.push_back(ELM_FLIP_PAGE_RIGHT);
+               options_.push_back(ELM_FLIP_PAGE_UP);
+               options_.push_back(ELM_FLIP_PAGE_DOWN);
+
+               return;
+       }
+
+       void setup()
+       {
+               control_.show();
+               first_.show();
+               second_.show();
+               window_.show();
+
+               vector<Elm_Flip_Mode>::iterator it;
+               for (it = options_.begin(); it != options_.end(); it++)
+               {
+                       queueCallback(
+                               ModifyCheckCallback(
+                                       boost::bind(elm_flip_go, boost::ref(control_), *it),
+                                       boost::bind(&FlipGoTest::checkFront, boost::ref(*this), EINA_TRUE)
+                               )
+                       );
+
+                       queueCallback(
+                               ModifyCheckCallback(
+                                       boost::bind(elm_flip_go, boost::ref(control_), *it),
+                                       boost::bind(&FlipGoTest::checkFront, boost::ref(*this), EINA_FALSE)
+                               )
+                       );
+               }
+       }
+
+       void checkFront(const Eina_Bool visible)
+       {
+               BOOST_CHECK_EQUAL(elm_flip_front_visible_get(control_), visible);
+       }
+
+private:
+       Window                  window_;
+       EvasObject              control_;
+       Background              first_, second_;
+       vector<Elm_Flip_Mode>   options_;
+};
+
+typedef ResizeObjectTest<Flip> FlipResizeTest;
+typedef PositionObjectTest<Flip> FlipPositionTest;
+typedef VisibleObjectTest<Flip> FlipVisibilityTest;
+
+BOOST_AUTO_TEST_SUITE(EFL)
+
+       BOOST_AUTO_TEST_SUITE(FlipSuite)
+
+               WAYLAND_ELM_HARNESS_TEST_CASE(FlipGoTest)
+               WAYLAND_ELM_HARNESS_TEST_CASE(FlipResizeTest)
+               WAYLAND_ELM_HARNESS_TEST_CASE(FlipPositionTest)
+               WAYLAND_ELM_HARNESS_TEST_CASE(FlipVisibilityTest)
+       
+       BOOST_AUTO_TEST_SUITE_END()
+
+BOOST_AUTO_TEST_SUITE_END()