4 * Copyright (c) 2000 - 2011 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_get_mailbox_by_type ()
195 int err_code = EMAIL_ERROR_NONE;
196 int result_from_scanf = 0;
197 email_mailbox_t *mailbox =NULL;
198 email_mailbox_type_e mailbox_type =0;
200 testapp_print("\n > Enter account id: ");
201 result_from_scanf = scanf("%d", &account_id);
203 testapp_print("\n > Enter mailbox_type: ");
204 result_from_scanf = scanf("%d", (int*)&mailbox_type);
206 if( (err_code = email_get_mailbox_by_mailbox_type(account_id,mailbox_type,&mailbox)) < 0) {
207 testapp_print(" email_get_mailbox_by_mailbox_type error : %d\n",err_code);
211 testapp_print_mailbox_list(mailbox, 1);
213 email_free_mailbox(&mailbox, 1);
217 static gboolean testapp_test_set_mailbox_type()
220 int mailbox_type = 0;
221 int err_code = EMAIL_ERROR_NONE;
222 int result_from_scanf = 0;
224 testapp_print("\n > Enter mailbox id : ");
225 result_from_scanf = scanf("%d", &mailbox_id);
227 testapp_print("\n > Enter mailbox type : ");
228 result_from_scanf = scanf("%d", &mailbox_type);
230 if( (err_code = email_set_mailbox_type(mailbox_id, mailbox_type) ) != EMAIL_ERROR_NONE) {
231 testapp_print("\nemail_set_mailbox_type error : %d\n", err_code);
237 static gboolean testapp_test_set_mail_slot_size ()
241 int mail_slot_size = 0;
242 int err_code = EMAIL_ERROR_NONE;
243 int result_from_scanf = 0;
245 testapp_print("\n > Enter account id (0: All account): ");
246 result_from_scanf = scanf("%d", &account_id);
248 testapp_print("\n> Enter mailbox id (0 : All mailboxes):");
249 result_from_scanf = scanf("%d", &mailbox_id);
251 testapp_print("\n > Enter mailbox slot size: ");
252 result_from_scanf = scanf("%d", &mail_slot_size);
254 if( (err_code = email_set_mail_slot_size(account_id, mailbox_id, mail_slot_size) ) < 0) {
255 testapp_print(" testapp_test_set_mail_slot_size error : %d\n", err_code);
262 static gboolean testapp_test_get_mailbox_list ()
264 int result_from_scanf = 0;
266 int mailbox_sync_type;
268 int error_code = EMAIL_ERROR_NONE;
269 email_mailbox_t *mailbox_list=NULL;
270 testapp_print("\n > Enter account id: ");
271 result_from_scanf = scanf("%d", &account_id);
272 testapp_print("\n > Enter mailbox_sync_type\n[-1 :for all mailboxes, 0 : for mailboxes from server, 1 : local mailboxes\n : ");
273 result_from_scanf = scanf("%d", &mailbox_sync_type);
275 if((error_code = email_get_mailbox_list(account_id, mailbox_sync_type, &mailbox_list, &count)) < 0) {
276 testapp_print(" email_get_mailbox_list error %d\n", error_code);
280 testapp_print_mailbox_list(mailbox_list, count);
282 email_free_mailbox(&mailbox_list, count);
284 if((error_code = email_get_mailbox_list_ex(account_id, mailbox_sync_type, 1, &mailbox_list, &count)) < 0) {
285 testapp_print(" email_get_mailbox_list_ex error %d\n", error_code);
289 testapp_print_mailbox_list(mailbox_list, count);
291 email_free_mailbox(&mailbox_list, count);
295 static gboolean testapp_test_sync_mailbox()
297 int result_from_scanf = 0;
302 testapp_print("\n > Enter Account id (0: for all account) : ");
303 result_from_scanf = scanf("%d",&account_id);
305 testapp_print("\n > Enter Mailbox id (0: for all mailboxes) : ");
306 result_from_scanf = scanf("%d",&mailbox_id);
308 if(account_id == ALL_ACCOUNT) {
309 if(email_sync_header_for_all_account(&handle) < 0)
310 testapp_print("\n email_sync_header_for_all_account failed\n");
312 testapp_print("\n email_sync_header_for_all_account success. Handle[%d]\n", handle);
315 if(email_sync_header(account_id, mailbox_id, &handle) < 0)
316 testapp_print("\n email_sync_header failed\n");
318 testapp_print("\n email_sync_header success. Handle[%d]\n", handle);
324 static gboolean testapp_test_stamp_sync_time()
326 int result_from_scanf;
327 int input_mailbox_id = 0;
329 testapp_print("\n > Enter Mailbox id : ");
330 result_from_scanf = scanf("%d",&input_mailbox_id);
332 email_stamp_sync_time_of_mailbox(input_mailbox_id);
337 static gboolean testapp_test_interpret_command (int menu_number)
339 gboolean go_to_loop = TRUE;
341 switch (menu_number) {
343 testapp_test_add_mailbox();
347 testapp_test_delete_mailbox();
351 testapp_test_rename_mailbox();
355 testapp_test_get_imap_mailbox_list();
359 testapp_test_get_mailbox_by_type();
363 testapp_test_set_mailbox_type();
367 testapp_test_set_mail_slot_size();
371 testapp_test_get_mailbox_list ();
375 testapp_test_sync_mailbox();
379 testapp_test_stamp_sync_time();
392 void email_test_mailbox_main()
394 gboolean go_to_loop = TRUE;
396 int result_from_scanf = 0;
399 testapp_show_menu (EMAIL_MAILBOX_MENU);
400 testapp_show_prompt (EMAIL_MAILBOX_MENU);
402 result_from_scanf = scanf("%d", &menu_number);
404 go_to_loop = testapp_test_interpret_command (menu_number);