From: Mu-Woong Lee Date: Thu, 25 Feb 2016 06:11:46 +0000 (+0900) Subject: Add testcases for trigger time event/condition X-Git-Tag: submit/tizen/20160314.020719~1^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F37%2F60337%2F2;p=platform%2Fcore%2Fapi%2Fcontext.git Add testcases for trigger time event/condition Change-Id: I7c62d10fbb7d333a35c0bf2952650e857957610a Signed-off-by: Mu-Woong Lee --- diff --git a/testsuite/src/trigger/condition.cpp b/testsuite/src/trigger/condition.cpp index 5594980..4cadf47 100644 --- a/testsuite/src/trigger/condition.cpp +++ b/testsuite/src/trigger/condition.cpp @@ -34,6 +34,7 @@ int test_trigger_condition(int *argc, char ***argv) run_testcase("/trigger/cond/wifi", _trigger_cond_wifi); run_testcase("/trigger/cond/psmode", _trigger_cond_psmode); run_testcase("/trigger/cond/call", _trigger_cond_call); + run_testcase("/trigger/cond/time", _trigger_cond_time); run_testcase("/trigger/cond/app_freq1", _trigger_cond_app_use_freq1); run_testcase("/trigger/cond/app_freq2", _trigger_cond_app_use_freq2); @@ -177,6 +178,20 @@ bool _trigger_cond_call() return true; } +bool _trigger_cond_time() +{ + if (!__support(CONTEXT_TRIGGER_CONDITION_TIME)) return false; + + err = ctx::request_handler::read_sync(CT_CONDITION_TIME, NULL, &req_id, &json_val); + ASSERT_CMPINT(err, ==, ERR_NONE); + + ASSERT_CONTAIN_INT(json_val, CONTEXT_TRIGGER_TIME_OF_DAY); + ASSERT_CONTAIN_INT(json_val, CONTEXT_TRIGGER_DAY_OF_MONTH); + ASSERT_CONTAIN_STR(json_val, CONTEXT_TRIGGER_DAY_OF_WEEK); + + return true; +} + static std::string& __get_objective_app_id() { static std::string app_id; diff --git a/testsuite/src/trigger/condition.h b/testsuite/src/trigger/condition.h index b5683f1..d2a8282 100644 --- a/testsuite/src/trigger/condition.h +++ b/testsuite/src/trigger/condition.h @@ -27,6 +27,7 @@ bool _trigger_cond_usb(); bool _trigger_cond_wifi(); bool _trigger_cond_psmode(); bool _trigger_cond_call(); +bool _trigger_cond_time(); bool _trigger_cond_app_use_freq1(); bool _trigger_cond_app_use_freq2(); diff --git a/testsuite/src/trigger/event.cpp b/testsuite/src/trigger/event.cpp index b5968f8..9d843c8 100644 --- a/testsuite/src/trigger/event.cpp +++ b/testsuite/src/trigger/event.cpp @@ -14,6 +14,7 @@ * limitations under the License. */ +#include #include #include #include @@ -45,6 +46,7 @@ int test_trigger_event(int *argc, char ***argv) ctx::request_handler::register_callback(CT_EVENT_USB, __domain_cb); ctx::request_handler::register_callback(CT_EVENT_WIFI, __domain_cb); ctx::request_handler::register_callback(CT_EVENT_CALL, __domain_cb); + ctx::request_handler::register_callback(CT_EVENT_TIME, __domain_cb); ctx::request_handler::register_callback(CT_EVENT_EMAIL, __domain_cb); ctx::request_handler::register_callback(CT_EVENT_MESSAGE, __domain_cb); ctx::request_handler::register_callback(CT_EVENT_ACTIVITY_STATIONARY, __domain_cb); @@ -61,6 +63,7 @@ int test_trigger_event(int *argc, char ***argv) run_testcase("/trigger/event/wifi", _trigger_event_wifi); run_testcase("/trigger/event/psmode", _trigger_event_psmode); run_testcase("/trigger/event/call", _trigger_event_call); + run_testcase("/trigger/event/time", _trigger_event_time); run_testcase("/trigger/event/email", _trigger_event_email); run_testcase("/trigger/event/message", _trigger_event_message); run_testcase("/trigger/event/activity", _trigger_event_activity); @@ -229,6 +232,65 @@ bool _trigger_event_call() return true; } +bool _trigger_event_time() +{ + if (!__support(CONTEXT_TRIGGER_EVENT_TIME)) return false; + + time_t rawtime; + struct tm timeinfo; + time(&rawtime); + tzset(); + localtime_r(&rawtime, &timeinfo); + int dow = timeinfo.tm_wday; + int tod = timeinfo.tm_hour * 3600 + timeinfo.tm_min * 60 + timeinfo.tm_sec; + tod = (tod + 70) / 60; + + std::string dow_str; + switch (dow) { + case 0: + dow_str = CONTEXT_TRIGGER_SUN; + break; + case 1: + dow_str = CONTEXT_TRIGGER_MON; + break; + case 2: + dow_str = CONTEXT_TRIGGER_TUE; + break; + case 3: + dow_str = CONTEXT_TRIGGER_WED; + break; + case 4: + dow_str = CONTEXT_TRIGGER_THU; + break; + case 5: + dow_str = CONTEXT_TRIGGER_FRI; + break; + case 6: + dow_str = CONTEXT_TRIGGER_SAT; + break; + default: + dow_str = CONTEXT_TRIGGER_WEEKDAY; + break; + } + ctx::Json option; + option.append(NULL, CONTEXT_TRIGGER_DAY_OF_WEEK, dow_str); + option.append(NULL, CONTEXT_TRIGGER_TIME_OF_DAY, tod); + + err = ctx::request_handler::subscribe(CT_EVENT_TIME, &option, &req_id, NULL); + ASSERT_CMPINT(err, ==, ERR_NONE); + + callback_count = 1; + g_print("\n> Wait until %02d:%02d %s.\n", tod / 60, tod % 60, dow_str.c_str()); + start_mainloop(); + + ctx::request_handler::unsubscribe(CT_EVENT_CALL, req_id); + + ASSERT_CONTAIN_INT(json_val, CONTEXT_TRIGGER_TIME_OF_DAY); + ASSERT_CONTAIN_STR(json_val, CONTEXT_TRIGGER_DAY_OF_WEEK); + + return true; +} + bool _trigger_event_email() { if (!__support(CONTEXT_TRIGGER_EVENT_EMAIL)) return false; diff --git a/testsuite/src/trigger/event.h b/testsuite/src/trigger/event.h index f1a758c..54a65bb 100644 --- a/testsuite/src/trigger/event.h +++ b/testsuite/src/trigger/event.h @@ -27,6 +27,7 @@ bool _trigger_event_usb(); bool _trigger_event_wifi(); bool _trigger_event_psmode(); bool _trigger_event_call(); +bool _trigger_event_time(); bool _trigger_event_email(); bool _trigger_event_message(); bool _trigger_event_activity();