tizen 2.3 release
[framework/api/bluetooth.git] / TC / testcase / utc_network_bluetooth_opp-server_positive.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 #include <tet_api.h>
18 #include <bluetooth.h>
19 #include <stdlib.h>
20 #include <stdbool.h>
21 #include <glib.h>
22
23 enum {
24         POSITIVE_TC_IDX = 0x01,
25         NEGATIVE_TC_IDX,
26 };
27
28 static void startup(void);
29 static void cleanup(void);
30
31 static GMainLoop *mainloop;
32 const char *dest = "/tmp";
33
34 void (*tet_startup) (void) = startup;
35 void (*tet_cleanup) (void) = cleanup;
36
37 static void utc_network_bluetooth_opp_server_initialize_p(void);
38 static void utc_network_bluetooth_opp_server_initialize_by_connection_request_p(void);
39 static void utc_network_bluetooth_opp_server_deinitialize_p(void);
40 static void utc_network_bluetooth_opp_server_accept_p(void);
41 static void utc_network_bluetooth_opp_server_reject_p(void);
42 static void utc_network_bluetooth_opp_server_set_destination_p(void);
43
44 void push_requested_cb_for_opp_server_p(const char *file, int size, void *user_data);
45 void connection_requested_cb_for_opp_server_p(const char *remote_address,
46                                                                                                                         void *user_data);
47 void adapter_state_changed_cb_for_opp_server_p(int result,
48                                                         bt_adapter_state_e adapter_state, void *user_data);
49 void transfer_finished_cb_for_opp_server_p(int result, const char *file,
50                                                                                         long long size, void *user_data);
51 void transfer_progress_cb_for_opp_server_p(int result, const char *file,
52                                                                                         long long size, void *user_data);
53
54
55 gboolean timeout_func(gpointer data);
56
57
58 struct tet_testlist tet_testlist[] = {
59         {utc_network_bluetooth_opp_server_initialize_p, POSITIVE_TC_IDX},
60         {utc_network_bluetooth_opp_server_initialize_by_connection_request_p, POSITIVE_TC_IDX},
61         {utc_network_bluetooth_opp_server_set_destination_p, POSITIVE_TC_IDX},
62         {utc_network_bluetooth_opp_server_accept_p, POSITIVE_TC_IDX},
63         {utc_network_bluetooth_opp_server_reject_p, POSITIVE_TC_IDX},
64         {utc_network_bluetooth_opp_server_deinitialize_p, POSITIVE_TC_IDX},
65         {NULL, 0},
66 };
67
68 static void startup(void)
69 {
70         int ret = BT_ERROR_NONE;
71         int timeout_id = 0;
72
73         /* start of TC */
74         mainloop = g_main_loop_new(NULL, FALSE);
75
76         bt_initialize();
77         if (bt_adapter_set_state_changed_cb(adapter_state_changed_cb_for_opp_server_p, "startup") != BT_ERROR_NONE) {
78                 tet_printf("DTS may fail because bt_adapter_set_state_changed_cb() failed");
79         }
80
81         tet_printf("bt_adapter_enable() was called.");
82                         ret = bt_adapter_enable();
83                         if (ret == BT_ERROR_NONE) {
84                                 tet_printf("bt_adapter_enable() succeeded.");
85                                 timeout_id = g_timeout_add(60000, timeout_func, mainloop);
86                                 g_main_loop_run(mainloop);
87                                 g_source_remove(timeout_id);
88                         } else if (ret != BT_ERROR_ALREADY_DONE) {
89                                 tet_printf("DTS may fail because bt_adapter_disable() failed");
90                         } else if (ret == BT_ERROR_NOT_ENABLED) {
91                 tet_printf("Bluetooth adapter is not enabled.");
92         } else {
93                 tet_printf("DTS may fail because bt_adapter_disable() failed");
94         }
95
96         if (bt_adapter_unset_state_changed_cb() != BT_ERROR_NONE) {
97                 tet_printf("bt_adapter_set_state_changed_cb() failed.");
98         }
99
100         tet_printf("TC start");
101 }
102
103
104 static void cleanup(void)
105 {
106         /* end of TC */
107         bt_deinitialize();
108         tet_printf("TC end.");
109 }
110
111
112 gboolean timeout_func(gpointer data)
113 {
114         tet_printf("Callback: Timeout.");
115         g_main_loop_quit((GMainLoop *)data);
116         return FALSE;
117 }
118
119
120 void adapter_state_changed_cb_for_opp_server_p(int result,
121                                                         bt_adapter_state_e adapter_state, void *user_data)
122 {
123
124 }
125
126
127 void push_requested_cb_for_opp_server_p(const char *file, int size,
128                                                                                                                         void *user_data)
129 {
130
131 }
132
133 void connection_requested_cb_for_opp_server_p(const char *remote_address,
134                                                                                                                         void *user_data)
135 {
136
137 }
138
139 void transfer_progress_cb_for_opp_server_p(int result, const char *file,
140                                                                                         long long size, void *user_data)
141 {
142
143 }
144
145 void transfer_finished_cb_for_opp_server_p(int result, const char *file,
146                                                                                         long long size, void *user_data)
147 {
148
149 }
150
151 static void utc_network_bluetooth_opp_server_initialize_p(void)
152 {
153         int ret = BT_ERROR_NONE;
154
155         ret = bt_opp_server_initialize(dest, push_requested_cb_for_opp_server_p,
156                                                                         NULL);
157
158         if (ret != BT_ERROR_RESOURCE_BUSY) {
159         dts_check_eq("bt_opp_server_initialize", ret, BT_ERROR_NONE,
160                                                 "bt_opp_server_initialize() failed");
161         } else {
162                 dts_check_eq("bt_opp_server_initialize", ret, BT_ERROR_RESOURCE_BUSY,
163                                 "bt_opp_server_initialize() failed");
164         }
165
166
167 }
168
169 static void utc_network_bluetooth_opp_server_deinitialize_p(void)
170 {
171         int ret = BT_ERROR_NONE;
172
173         ret = bt_opp_server_deinitialize();
174         dts_check_eq("bt_opp_server_deinitialize", ret, BT_ERROR_NONE,
175                         "bt_opp_server_deinitialize() failed.");
176 }
177
178 static void utc_network_bluetooth_opp_server_accept_p(void)
179 {
180         int ret = BT_ERROR_NONE;
181         int tid = 0;
182         const char *name = "abc";
183         ret = bt_opp_server_accept(transfer_progress_cb_for_opp_server_p,
184                         transfer_finished_cb_for_opp_server_p, name, NULL, &tid);
185         dts_check_eq("bt_opp_server_accept", ret,
186                         BT_ERROR_NONE, "bt_opp_server_accept() failed.");
187
188 }
189
190 static void utc_network_bluetooth_opp_server_reject_p(void)
191 {
192         int ret = BT_ERROR_NONE;
193
194         ret = bt_opp_server_reject();
195         dts_check_eq("bt_opp_server_reject", ret,
196                         BT_ERROR_NONE, "bt_opp_server_reject() failed.");
197 }
198
199 static void utc_network_bluetooth_opp_server_set_destination_p(void)
200 {
201         int ret = BT_ERROR_NONE;
202
203         ret = bt_opp_server_set_destination(dest);
204         dts_check_eq("bt_opp_server_set_destination", ret,
205                         BT_ERROR_NONE, "bt_opp_server_destination() failed");
206 }
207
208 static void utc_network_bluetooth_opp_server_initialize_by_connection_request_p(void)
209 {
210         int ret = BT_ERROR_NONE;
211
212         ret = bt_opp_server_initialize_by_connection_request(dest,
213                                 connection_requested_cb_for_opp_server_p, NULL);
214         dts_check_eq("bt_opp_server_initialize_by_connection_request", ret,
215                                 BT_ERROR_NONE,
216                                 "bt_opp_server_initialize_by_connection_request() failed");
217
218 }
219
220
221
222
223
224