elm_run();
}
-// void ElmTestHarness::modify()
-// {
-// if (haveMore())
-// {
-// // TODO: wrap this with try-catch
-// callbacks_.front().first();
-// }
-// }
-//
-// void ElmTestHarness::check()
-// {
-// if (haveMore())
-// {
-// // TODO: wrap this with try-catch
-// callbacks_.front().second();
-// callbacks_.pop_front();
-// }
-// }
-
/*static*/
Eina_Bool ElmTestHarness::idleSetup(void* data)
{
return ECORE_CALLBACK_DONE;
}
-// /*static*/
-// Eina_Bool ElmTestHarness::idleModify(void* data)
-// {
-// ElmTestHarness* harness = static_cast<ElmTestHarness*>(data);
-//
-// harness->handler_ = ecore_event_handler_add(
-// harness->eventType_,
-// doTestModify,
-// data
-// );
-// ecore_event_add(harness->eventType_, NULL, NULL, NULL);
-//
-// return ECORE_CALLBACK_CANCEL;
-// }
-//
-// /*static*/
-// Eina_Bool ElmTestHarness::doTestModify(void* data, int, void*)
-// {
-// ElmTestHarness* harness = static_cast<ElmTestHarness*>(data);
-//
-// ecore_event_handler_del(harness->handler_);
-//
-// harness->modify();
-//
-// Application::yield();
-//
-// ecore_idler_add(idleCheck, data);
-//
-// return ECORE_CALLBACK_DONE;
-// }
-
/*static*/
Eina_Bool ElmTestHarness::idleStep(void* data)
{
Ecore_Event_Handler* handler_;
};
-#define WAYLAND_ELM_HARNESS_TEST_CASE(Harness, suite) \
-\
-TEST(Harness##_shm_engine, "EFL/" suite) \
-{ \
- Application app; \
- app.setEngine(Application::ENGINE_SHM); \
- Harness().run(); \
-} \
-\
-TEST(Harness##_egl_engine, "EFL/" suite) \
-{ \
- Application app; \
- app.setEngine(Application::ENGINE_EGL); \
- Harness().run(); \
-} \
-
#define WAYLAND_ELM_HARNESS_EGL_TEST_CASE(Harness, suite) \
-TEST(Harness##_egl_engine, "EFL/" suite) \
+TEST(Harness, "EFL/EGL/" suite) \
{ \
Application app; \
app.setEngine(Application::ENGINE_EGL); \
Harness().run(); \
-} \
+}
#define WAYLAND_ELM_HARNESS_SHM_TEST_CASE(Harness, suite) \
-TEST(Harness##_shm_engine, "EFL/" suite) \
+TEST(Harness##_shm_engine, "EFL/SHM/" suite) \
{ \
Application app; \
app.setEngine(Application::ENGINE_SHM); \
Harness().run(); \
-} \
+}
+
+#define WAYLAND_ELM_HARNESS_TEST_CASE(Harness, suite) \
+ WAYLAND_ELM_HARNESS_SHM_TEST_CASE(Harness, suite) \
+ WAYLAND_ELM_HARNESS_EGL_TEST_CASE(Harness, suite)
#endif
EvasObject check_;
};
-class CheckTextTest : public ElmTestHarness
+template <const std::string& part, const std::string& text>
+class CheckPartTextTest : public ElmTestHarness
{
public:
-
- CheckTextTest()
+ CheckPartTextTest()
: ElmTestHarness::ElmTestHarness()
, window_("CheckTextTest", "Check Text Test")
, check_(elm_check_add(window_))
check_.show();
window_.show();
- queueStep(boost::bind(elm_object_part_text_set, boost::ref(check_), "default", "DEFAULT"));
- queueStep(boost::bind(&CheckTextTest::checkText, boost::ref(*this), "default", "DEFAULT"));
-
- /* TODO: Why don't these work?
- queueCallback(
- ModifyCheckCallback(
- boost::bind(elm_object_part_text_set, boost::ref(check_), "on", "ON"),
- boost::bind(&CheckTextTest::checkText, boost::ref(*this), "on", "ON")
- )
- );
-
- queueCallback(
- ModifyCheckCallback(
- boost::bind(elm_object_part_text_set, boost::ref(check_), "off", "OFF"),
- boost::bind(&CheckTextTest::checkText, boost::ref(*this), "off", "OFF")
- )
- );
- */
+ queueStep(boost::bind(elm_object_part_text_set, boost::ref(check_), part.c_str(), text.c_str()));
+ queueStep(boost::bind(&CheckPartTextTest::checkPartText, boost::ref(*this)));
}
- void checkText(const char* part, const char* expected)
+ void checkPartText()
{
- const char* actual = elm_object_part_text_get(check_, part);
+ const char* actual = elm_object_part_text_get(check_, part.c_str());
std::string actual_text(actual == NULL ? "" : actual);
- std::string expected_text(expected == NULL ? "" : expected);
- FAIL_UNLESS_EQUAL(actual_text, expected_text);
+ std::cout << actual_text << " " << text << std::endl;
+ FAIL_UNLESS_EQUAL(actual_text, text);
}
private:
EvasObject check_;
};
+std::string defaultPart("default"), defaultText("DEFAULT");
+std::string onPart("on"), onText("ON");
+std::string offPart("off"), offText("OFF");
+
+typedef CheckPartTextTest<defaultPart, defaultText> CheckPartTextDefaultTest;
+typedef CheckPartTextTest<onPart, onText> CheckPartTextOnTest;
+typedef CheckPartTextTest<offPart, offText> CheckPartTextOffTest;
typedef ResizeObjectTest<Check> CheckResizeTest;
typedef PositionObjectTest<Check> CheckPositionTest;
typedef VisibleObjectTest<Check> CheckVisibilityTest;
WAYLAND_ELM_HARNESS_TEST_CASE(CheckPositionTest, "Check")
WAYLAND_ELM_HARNESS_TEST_CASE(CheckVisibilityTest, "Check")
WAYLAND_ELM_HARNESS_TEST_CASE(CheckStateTest, "Check")
-WAYLAND_ELM_HARNESS_TEST_CASE(CheckTextTest, "Check")
+WAYLAND_ELM_HARNESS_TEST_CASE(CheckPartTextDefaultTest, "Check")
+WAYLAND_ELM_HARNESS_TEST_CASE(CheckPartTextOnTest, "Check")
+WAYLAND_ELM_HARNESS_TEST_CASE(CheckPartTextOffTest, "Check")
WAYLAND_ELM_HARNESS_TEST_CASE(EntryPositionTest, "Entry")
WAYLAND_ELM_HARNESS_TEST_CASE(EntryVisibilityTest, "Entry")
WAYLAND_ELM_HARNESS_TEST_CASE(EntryEmoticonTest, "Entry")
-//WAYLAND_ELM_HARNESS_TEST_CASE(EntryCutTest, "Entry")
-//WAYLAND_ELM_HARNESS_TEST_CASE(EntryCopyTest, "Entry")
-//WAYLAND_ELM_HARNESS_TEST_CASE(EntryPasteTest, "Entry")
+WAYLAND_ELM_HARNESS_TEST_CASE(EntryCutTest, "Entry")
+WAYLAND_ELM_HARNESS_TEST_CASE(EntryCopyTest, "Entry")
+WAYLAND_ELM_HARNESS_TEST_CASE(EntryPasteTest, "Entry")