2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 #include <bluetooth.h>
24 POSITIVE_TC_IDX = 0x01,
28 static void startup(void);
29 static void cleanup(void);
31 static GMainLoop *mainloop;
32 const char *dest = "/tmp";
34 void (*tet_startup) (void) = startup;
35 void (*tet_cleanup) (void) = cleanup;
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);
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,
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);
55 gboolean timeout_func(gpointer data);
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},
68 static void startup(void)
70 int ret = BT_ERROR_NONE;
74 mainloop = g_main_loop_new(NULL, FALSE);
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");
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.");
93 tet_printf("DTS may fail because bt_adapter_disable() failed");
96 if (bt_adapter_unset_state_changed_cb() != BT_ERROR_NONE) {
97 tet_printf("bt_adapter_set_state_changed_cb() failed.");
100 tet_printf("TC start");
104 static void cleanup(void)
108 tet_printf("TC end.");
112 gboolean timeout_func(gpointer data)
114 tet_printf("Callback: Timeout.");
115 g_main_loop_quit((GMainLoop *)data);
120 void adapter_state_changed_cb_for_opp_server_p(int result,
121 bt_adapter_state_e adapter_state, void *user_data)
127 void push_requested_cb_for_opp_server_p(const char *file, int size,
133 void connection_requested_cb_for_opp_server_p(const char *remote_address,
139 void transfer_progress_cb_for_opp_server_p(int result, const char *file,
140 long long size, void *user_data)
145 void transfer_finished_cb_for_opp_server_p(int result, const char *file,
146 long long size, void *user_data)
151 static void utc_network_bluetooth_opp_server_initialize_p(void)
153 int ret = BT_ERROR_NONE;
155 ret = bt_opp_server_initialize(dest, push_requested_cb_for_opp_server_p,
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");
162 dts_check_eq("bt_opp_server_initialize", ret, BT_ERROR_RESOURCE_BUSY,
163 "bt_opp_server_initialize() failed");
169 static void utc_network_bluetooth_opp_server_deinitialize_p(void)
171 int ret = BT_ERROR_NONE;
173 ret = bt_opp_server_deinitialize();
174 dts_check_eq("bt_opp_server_deinitialize", ret, BT_ERROR_NONE,
175 "bt_opp_server_deinitialize() failed.");
178 static void utc_network_bluetooth_opp_server_accept_p(void)
180 int ret = BT_ERROR_NONE;
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.");
190 static void utc_network_bluetooth_opp_server_reject_p(void)
192 int ret = BT_ERROR_NONE;
194 ret = bt_opp_server_reject();
195 dts_check_eq("bt_opp_server_reject", ret,
196 BT_ERROR_NONE, "bt_opp_server_reject() failed.");
199 static void utc_network_bluetooth_opp_server_set_destination_p(void)
201 int ret = BT_ERROR_NONE;
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");
208 static void utc_network_bluetooth_opp_server_initialize_by_connection_request_p(void)
210 int ret = BT_ERROR_NONE;
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,
216 "bt_opp_server_initialize_by_connection_request() failed");