Initial refactoring merge
[platform/core/api/sim.git] / test / sim_state_changed_test.c
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17
18 #include <stdio.h>
19 #include <string.h>
20 #include <sim.h>
21 #include <dlog.h>
22 #include <glib.h>
23
24 #ifdef LOG_TAG
25 #undef LOG_TAG
26 #endif
27 #define LOG_TAG "TIZEN_N_SIM_TEST"
28
29 static GMainLoop *event_loop;
30
31 static const char *capi_sim_state[] = {
32         "UNAVAILABLE",
33         "LOCKED",
34         "AVAILABLE",
35         "UNKNOWN",
36 };
37
38 void sim_state_changed(sim_state_e state, void* user_data)
39 {
40         LOGI("[%s] Start sim_state_changed_cb", __FUNCTION__);
41
42         LOGI("[%s] Status of sim: %s", __FUNCTION__, capi_sim_state[state]);
43         LOGI("[%s] user data: %s", __FUNCTION__, user_data);
44
45         LOGI("[%s] End sim_state_changed_cb", __FUNCTION__);
46         g_main_loop_quit(event_loop);
47 }
48
49 int main()
50 {
51         if( sim_set_state_changed_cb(sim_state_changed, "sim_state_changed_test") == SIM_ERROR_NONE )
52         {
53                 LOGI("[%s] Succeeded to add callback function", __FUNCTION__);
54         }
55         else
56         {
57                 LOGE("[%s] Failed to add callback function", __FUNCTION__);
58                 return -1;
59         }
60
61         LOGI("[%s] If you change the state of SIM card, then callback function will be called", __FUNCTION__);
62         event_loop = g_main_loop_new(NULL, FALSE);
63         g_main_loop_run(event_loop);
64
65         if( sim_unset_state_changed_cb() != SIM_ERROR_NONE )
66         {
67                 LOGE("[%s] Failed to remove callback function", __FUNCTION__);
68                 return -1;
69         }
70         LOGI("[%s] Succeeded to remove callback function", __FUNCTION__);
71         return 0;
72 }