4 * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Kyuho Jo <kyuho.jo@samsung.com>, Sunghyun Kwon <sh0701.kwon@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
32 #include "email-api-account.h"
33 #include "email-api-network.h"
34 #include "email-api-mailbox.h"
37 #include "testapp-utility.h"
38 #include "testapp-mailbox.h"
40 static gboolean testapp_print_mailbox_list(email_mailbox_t *input_mailbox_list, int input_count)
43 char time_string[40] = { 0, };
47 testapp_print("There are %d mailboxes\n", input_count);
49 testapp_print("============================================================================\n");
50 testapp_print("id a_id name\t\t\t alias\t\t unread\t total\t total_on_ server\tmailbox_type\t last_sync_time\n");
51 testapp_print("============================================================================\n");
52 if ( input_count == 0 ) {
53 testapp_print("No mailbox is matched\n");
56 for(i=0;i<input_count;i++) {
57 strftime(time_string, 40, "%Y-%m-%d %H:%M:%S", localtime(&(input_mailbox_list[i].last_sync_time)));
58 testapp_print("[%2d]", input_mailbox_list[i].mailbox_id);
59 testapp_print(" %2d [%2d]\t[%-12s] ", input_mailbox_list[i].account_id, input_mailbox_list[i].mailbox_id, input_mailbox_list[i].alias);
60 testapp_print(" %3d\t %3d\t %3d\t %3d\t %s\n"
61 , input_mailbox_list[i].unread_count
62 , input_mailbox_list[i].total_mail_count_on_local
63 , input_mailbox_list[i].total_mail_count_on_server
64 , input_mailbox_list[i].mailbox_type
68 testapp_print("============================================================================\n");
73 static gboolean testapp_test_add_mailbox()
75 email_mailbox_t mailbox;
76 int account_id,mailbox_type = 0;
81 int result_from_scanf = 0;
83 memset(arg, 0x00, 500);
84 testapp_print("\n> Enter mailbox name: ");
85 result_from_scanf = scanf("%s",arg);
86 mailbox.mailbox_name = strdup(arg);
88 memset(arg, 0x00, 500);
89 testapp_print("> Enter mailbox alias name: ");
90 result_from_scanf = scanf("%s",arg);
91 mailbox.alias = strdup(arg);
93 testapp_print("> Enter account id: ");
94 result_from_scanf = scanf("%d", &account_id);
95 mailbox.account_id = account_id;
97 testapp_print("> Enter local_yn (1/0): ");
98 result_from_scanf = scanf("%d", &local_yn);
99 mailbox.local= local_yn;
102 testapp_print("> Enter mailbox type: ");
103 result_from_scanf = scanf("%d", &mailbox_type);
104 mailbox.mailbox_type= mailbox_type;
106 ret = email_add_mailbox(&mailbox, local_yn?0:1, &handle);
109 testapp_print("\n email_add_mailbox failed");
112 testapp_print("\n email_add_mailbox succeed : handle[%d], mailbox_id [%d]\n", handle, mailbox.mailbox_id);
118 static gboolean testapp_test_delete_mailbox()
124 int result_from_scanf = 0;
126 testapp_print("\n> Enter mailbox id:");
127 result_from_scanf = scanf("%d", &mailbox_id);
129 testapp_print("> Enter on_server (1/0): ");
130 result_from_scanf = scanf("%d", &on_server);
132 ret = email_delete_mailbox(mailbox_id, on_server, &handle);
135 testapp_print("\n email_delete_mailbox failed");
138 testapp_print("\n email_delete_mailbox succeed : handle[%d]\n", handle);
145 static gboolean testapp_test_rename_mailbox()
147 testapp_print ("testapp_test_rename_mailbox\n");
149 char mailbox_name[500] = { 0, };
150 char mailbox_alias[500] = { 0, };
152 int result_from_scanf = 0;
155 testapp_print("> Enter mailbox id: ");
156 result_from_scanf = scanf("%d", &mailbox_id);
158 testapp_print("> Enter new mailbox name: ");
159 result_from_scanf = scanf("%s", mailbox_name);
161 testapp_print("> Enter new mailbox name: ");
162 result_from_scanf = scanf("%s", mailbox_alias);
165 if ( (err = email_rename_mailbox(mailbox_id, mailbox_name, mailbox_alias, true, &handle)) < 0) {
166 testapp_print("\n email_rename_mailbox failed[%d]\n", err);
169 testapp_print("\n email_rename_mailbox succeed\n");
175 static gboolean testapp_test_get_imap_mailbox_list()
179 int result_from_scanf = 0;
181 testapp_print("> Enter account id: ");
182 result_from_scanf = scanf("%d", &account_id);
184 if( email_sync_imap_mailbox_list(account_id, &handle) < 0)
185 testapp_print("email_sync_imap_mailbox_list failed");
191 static gboolean testapp_test_set_local_mailbox()
194 int is_local_mailbox = 0;
195 int result_from_scanf = 0;
197 testapp_print("> Enter mailbox id: ");
198 result_from_scanf = scanf("%d", &mailbox_id);
200 testapp_print("> Enter local: ");
201 result_from_scanf = scanf("%d", &is_local_mailbox);
203 if( email_set_local_mailbox(mailbox_id, is_local_mailbox) < 0)
204 testapp_print("email_set_local_mailbox failed");
209 static gboolean testapp_test_delete_mailbox_ex()
211 int err = EMAIL_ERROR_NONE;
212 int mailbox_id_count = 0 ;
213 int *mailbox_id_array = NULL;
218 int result_from_scanf = 0;
220 testapp_print("\n > Enter account_id: ");
221 result_from_scanf = scanf("%d", &account_id);
223 testapp_print("\n > Enter mailbox_id_count: ");
224 result_from_scanf = scanf("%d", &mailbox_id_count);
226 testapp_print("\n > Enter on_server: ");
227 result_from_scanf = scanf("%d", &on_server);
229 mailbox_id_count = (mailbox_id_count < 5000)?mailbox_id_count:5000;
231 if(mailbox_id_count > 0) {
232 mailbox_id_array = malloc(sizeof(int) * mailbox_id_count);
235 for(i = 0; i < mailbox_id_count; i++) {
236 testapp_print("\n > Enter mailbox id: ");
237 result_from_scanf = scanf("%d", (mailbox_id_array + i));
240 err = email_delete_mailbox_ex(account_id, mailbox_id_array, mailbox_id_count, on_server, &handle);
242 testapp_print("\nemail_delete_mailbox_ex returns [%d], handle [%d] \n", err, handle);
246 static gboolean testapp_test_get_mailbox_by_type()
250 int err_code = EMAIL_ERROR_NONE;
251 int result_from_scanf = 0;
252 email_mailbox_t *mailbox =NULL;
253 email_mailbox_type_e mailbox_type =0;
255 testapp_print("\n > Enter account id: ");
256 result_from_scanf = scanf("%d", &account_id);
258 testapp_print("\n > Enter mailbox_type: ");
259 result_from_scanf = scanf("%d", (int*)&mailbox_type);
261 if( (err_code = email_get_mailbox_by_mailbox_type(account_id,mailbox_type,&mailbox)) < 0) {
262 testapp_print(" email_get_mailbox_by_mailbox_type error : %d\n",err_code);
266 testapp_print_mailbox_list(mailbox, 1);
268 email_free_mailbox(&mailbox, 1);
272 static gboolean testapp_test_set_mailbox_type()
275 int mailbox_type = 0;
276 int err_code = EMAIL_ERROR_NONE;
277 int result_from_scanf = 0;
279 testapp_print("\n > Enter mailbox id : ");
280 result_from_scanf = scanf("%d", &mailbox_id);
282 testapp_print("\n > Enter mailbox type : ");
283 result_from_scanf = scanf("%d", &mailbox_type);
285 if( (err_code = email_set_mailbox_type(mailbox_id, mailbox_type) ) != EMAIL_ERROR_NONE) {
286 testapp_print("\nemail_set_mailbox_type error : %d\n", err_code);
292 static gboolean testapp_test_set_mail_slot_size ()
296 int mail_slot_size = 0;
297 int err_code = EMAIL_ERROR_NONE;
298 int result_from_scanf = 0;
300 testapp_print("\n > Enter account id (0: All account): ");
301 result_from_scanf = scanf("%d", &account_id);
303 testapp_print("\n> Enter mailbox id (0 : All mailboxes):");
304 result_from_scanf = scanf("%d", &mailbox_id);
306 testapp_print("\n > Enter mailbox slot size: ");
307 result_from_scanf = scanf("%d", &mail_slot_size);
309 if( (err_code = email_set_mail_slot_size(account_id, mailbox_id, mail_slot_size) ) < 0) {
310 testapp_print(" testapp_test_set_mail_slot_size error : %d\n", err_code);
317 static gboolean testapp_test_get_mailbox_list ()
319 int result_from_scanf = 0;
321 int mailbox_sync_type;
323 int error_code = EMAIL_ERROR_NONE;
324 email_mailbox_t *mailbox_list=NULL;
325 testapp_print("\n > Enter account id: ");
326 result_from_scanf = scanf("%d", &account_id);
327 testapp_print("\n > Enter mailbox_sync_type\n[-1 :for all mailboxes, 0 : for mailboxes from server, 1 : local mailboxes\n : ");
328 result_from_scanf = scanf("%d", &mailbox_sync_type);
330 if((error_code = email_get_mailbox_list(account_id, mailbox_sync_type, &mailbox_list, &count)) < 0) {
331 testapp_print(" email_get_mailbox_list error %d\n", error_code);
335 testapp_print_mailbox_list(mailbox_list, count);
337 email_free_mailbox(&mailbox_list, count);
339 if((error_code = email_get_mailbox_list_ex(account_id, mailbox_sync_type, 1, &mailbox_list, &count)) < 0) {
340 testapp_print(" email_get_mailbox_list_ex error %d\n", error_code);
344 testapp_print_mailbox_list(mailbox_list, count);
346 email_free_mailbox(&mailbox_list, count);
350 static gboolean testapp_test_sync_mailbox()
352 int result_from_scanf = 0;
357 testapp_print("\n > Enter Account id (0: for all account) : ");
358 result_from_scanf = scanf("%d",&account_id);
360 testapp_print("\n > Enter Mailbox id (0: for all mailboxes) : ");
361 result_from_scanf = scanf("%d",&mailbox_id);
363 if(account_id == ALL_ACCOUNT) {
364 if(email_sync_header_for_all_account(&handle) < 0)
365 testapp_print("\n email_sync_header_for_all_account failed\n");
367 testapp_print("\n email_sync_header_for_all_account success. Handle[%d]\n", handle);
370 if(email_sync_header(account_id, mailbox_id, &handle) < 0)
371 testapp_print("\n email_sync_header failed\n");
373 testapp_print("\n email_sync_header success. Handle[%d]\n", handle);
379 static gboolean testapp_test_stamp_sync_time()
381 int result_from_scanf;
382 int input_mailbox_id = 0;
384 testapp_print("\n > Enter Mailbox id : ");
385 result_from_scanf = scanf("%d",&input_mailbox_id);
387 email_stamp_sync_time_of_mailbox(input_mailbox_id);
392 static gboolean testapp_test_interpret_command (int menu_number)
394 gboolean go_to_loop = TRUE;
396 switch (menu_number) {
398 testapp_test_add_mailbox();
402 testapp_test_delete_mailbox();
406 testapp_test_rename_mailbox();
410 testapp_test_get_imap_mailbox_list();
414 testapp_test_set_local_mailbox();
418 testapp_test_delete_mailbox_ex();
422 testapp_test_get_mailbox_by_type();
426 testapp_test_set_mailbox_type();
430 testapp_test_set_mail_slot_size();
434 testapp_test_get_mailbox_list ();
438 testapp_test_sync_mailbox();
442 testapp_test_stamp_sync_time();
455 void email_test_mailbox_main()
457 gboolean go_to_loop = TRUE;
459 int result_from_scanf = 0;
462 testapp_show_menu (EMAIL_MAILBOX_MENU);
463 testapp_show_prompt (EMAIL_MAILBOX_MENU);
465 result_from_scanf = scanf("%d", &menu_number);
467 go_to_loop = testapp_test_interpret_command (menu_number);