--- /dev/null
+#include <check.h>
+#include <Elementary.h>
+#include "../utc_elm_common.h"
+
+static Eina_Bool startup_status = EINA_FALSE;
+
+/**
+ * @addtogroup elm_general
+ * @{
+ * @defgroup elm_process elm_process_get()
+ *
+ * @precondition
+ * @step 1 elm initialized with elm_init()
+ */
+static void
+setup(void)
+{
+ printf(" ============ Startup ============ \n");
+ UTC_ELM_INIT();
+ {
+ startup_status = EINA_TRUE;
+ }
+}
+
+static void
+teardown(void)
+{
+ elm_shutdown();
+ printf(" ============ Cleanup ============ \n");
+}
+
+static Eina_Bool _close_cb(void *data)
+{
+ elm_exit();
+ return ECORE_CALLBACK_CANCEL;
+}
+
+/**
+ * @addtogroup elm_process_state_get
+ * @{
+ * @objective: Positive test case checks that the tested function runs elm without any errors.
+ * @n Input Data: none.
+ *
+ * @procedure
+ * @step 1 Create timer with _close_cb as callback function.
+ * @step 2 Start timer for one second.
+ * @step 2 Call tested function.
+ * @step 3 Call elm_exit() in timer callback function.
+ *
+ * @passcondition
+ * There is no segmentation fault.
+ * @}
+ */
+START_TEST(utc_elm_process_state_get)
+{
+ if (startup_status != EINA_TRUE)
+ {
+ ck_abort_msg("[TEST_FAIL]:: %s[%d] : Test has failed (startup was been executed unsuccessfully)..", __FILE__, __LINE__);
+ return;
+ }
+
+ Elm_Process_State elm_p_state = elm_process_state_get();
+ if (elm_p_state != ELM_PROCESS_STATE_FOREGROUND && elm_p_state != ELM_PROCESS_STATE_BACKGROUND)
+ {
+ ck_abort_msg("[TEST_FAIL]:: %s[%d] : Test has failed.", __FILE__, __LINE__);
+ return;
+ }
+
+ if (ecore_timer_add(0.1, _close_cb, NULL) == NULL)
+ {
+ ck_abort_msg("[TEST_FAIL]:: %s[%d] : Test has failed (timer cannot be started)..", __FILE__, __LINE__);
+ return;
+ }
+ elm_run();
+
+ printf("[TEST_PASS]:: %s[%d] : Test has passed..\n", __FILE__, __LINE__);
+}
+END_TEST
+
+/**
+ * @}
+ */
+
+TCase * _utc_elm_process_state_get()
+{
+ TCase *tcase = tcase_create("utc_elm_process_state_get");
+ tcase_set_timeout(tcase, 30);
+ tcase_add_checked_fixture(tcase, setup, teardown);
+ tcase_add_test(tcase, utc_elm_process_state_get);
+ return tcase;
+}