{
int error = 0;
int jobId = -1;
+ bool started = false;
char* data = NULL;
size_t length = 0;
return false;
}
+ error = ctx_sched_job_is_started(job, &started);
+
+ if (error != E_NONE) {
+ ctx_sched_job_destroy(job);
+ return false;
+ }
+
error = ctx_sched_job_get_user_data(job, &data, &length);
if (error != E_NONE) {
return false;
}
- data[length - 1] = '\0';
- g_print("> Job-%d: %s\n", jobId, data);
- g_free(data);
- ctx_sched_job_destroy(job);
+ if (data) {
+ data[length - 1] = '\0';
+ g_print("> Job-%d (%s): %s\n", jobId, started ? "started" : "stopped", data);
+ g_free(data);
+ } else {
+ g_print("> Job-%d (%s): (nil)\n", jobId, started ? "started" : "stopped");
+ }
+ ctx_sched_job_destroy(job);
return true;
}
* limitations under the License.
*/
+#include <app_control.h>
+#include <app_control_internal.h>
#include "../shared.h"
#include "JobSchedulerTest.h"
static bool __create_on_demand_dbus_job(ctx_sched_h scheduler, ctx_sched_job_h* job);
static bool __create_on_demand_notification_job(ctx_sched_h scheduler, ctx_sched_job_h* job);
+// Hidden test cases
+static bool __create_dbus_test(ctx_sched_h scheduler, ctx_sched_job_h* job);
+static bool __create_app_control_test(ctx_sched_h scheduler, ctx_sched_job_h* job);
+static bool __create_notification_test(ctx_sched_h scheduler, ctx_sched_job_h* job);
+
ctx_sched_job_h sched::create_job(ctx_sched_h scheduler, int num)
{
bool success = true;
case 4:
success = __create_on_demand_notification_job(scheduler, &job);
break;
+ case 5:
+ success = __create_dbus_test(scheduler, &job);
+ break;
+ case 6:
+ success = __create_app_control_test(scheduler, &job);
+ break;
+ case 7:
+ success = __create_notification_test(scheduler, &job);
+ break;
default:
g_print("> Bad choice\n");
break;
//TODO
return false;
}
+
+static bool __create_action_test(ctx_sched_h scheduler, ctx_sched_job_h* job)
+{
+ int error = E_NONE;
+ ctx_sched_job_context_h jobContext = NULL;
+
+ // Allocate an on-demand job handle
+ error = ctx_sched_job_create_on_demand(job);
+ ASSERT_CMPINT(error, ==, E_NONE);
+
+ // Earjack state trigger
+ jobContext = __create_earjack_trigger(scheduler);
+ ASSERT(jobContext != NULL);
+
+ error = ctx_sched_job_add_trigger(*job, jobContext);
+ if (error != E_NONE)
+ ctx_sched_job_context_destroy(jobContext);
+ ASSERT_CMPINT(error, ==, E_NONE);
+
+ return true;
+}
+
+bool __create_dbus_test(ctx_sched_h scheduler, ctx_sched_job_h* job)
+{
+ int error = E_NONE;
+ bool success = __create_action_test(scheduler, job);
+ ASSERT(success);
+
+ // Set the action DBus
+ GVariant* param = g_variant_new("(s)", "sensor/pedometer");
+ error = ctx_sched_job_set_dbus(*job,
+ "org.tizen.context", "/org/tizen/context/SensorRecorder",
+ "org.tizen.context.SensorRecorder", "IsSupported", param);
+ g_variant_unref(param);
+ ASSERT_CMPINT(error, ==, E_NONE);
+
+ return true;
+}
+
+bool __create_app_control_test(ctx_sched_h scheduler, ctx_sched_job_h* job)
+{
+ int error = E_NONE;
+ bool success = __create_action_test(scheduler, job);
+ ASSERT(success);
+
+ app_control_h ctrl = NULL;
+ app_control_create(&ctrl);
+ app_control_set_operation(ctrl, APP_CONTROL_OPERATION_DEFAULT);
+ app_control_set_app_id(ctrl, "org.tizen.gallery");
+
+ bundle* b = NULL;
+ app_control_export_as_bundle(ctrl, &b);
+
+ app_control_destroy(ctrl);
+
+ error = ctx_sched_job_set_app_control(*job, b);
+ if (error != E_NONE)
+ bundle_free(b);
+
+ ASSERT_CMPINT(error, ==, E_NONE);
+
+ return true;
+}
+
+bool __create_notification_test(ctx_sched_h scheduler, ctx_sched_job_h* job)
+{
+ int error = E_NONE;
+ bool success = __create_action_test(scheduler, job);
+ ASSERT(success);
+
+ error = ctx_sched_job_set_notification(*job, "Job Scheduler", "Notification Test", NULL, NULL);
+ ASSERT_CMPINT(error, ==, E_NONE);
+
+ return true;
+}
static void __print_usage()
{
- g_print("Usage: context-test TESTSUITE\n\n");
+ g_print("\nUsage: context-test TESTSUITE\n\n");
g_print("TESTSUITE can be one of the followings:\n");
g_print(" a\t to test app-history\n");
g_print(" j\t to test job-scheduler\n");
signal(SIGTERM, __signal_handler);
signal(SIGQUIT, __signal_handler);
- test_default(&argc, &argv);
- g_print("\n");
-
if (argc < 2) {
+ test_default(&argc, &argv);
__print_usage();
return EXIT_SUCCESS;
}
case 'j':
return test_job_scheduler(&argc, &argv);
default:
+ test_default(&argc, &argv);
__print_usage();
return EXIT_SUCCESS;
}