ecore_con: add test cases related to cookies.

Summary:
Added test cases related to ecore_con_url cookies.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2298

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This commit is contained in:
Srivardhan Hebbar 2015-04-15 14:29:33 +02:00 committed by Cedric BAIL
parent 398378bf90
commit 2f4dee02e4
1 changed files with 138 additions and 11 deletions

View File

@ -10,6 +10,9 @@
#include <Eina.h> #include <Eina.h>
#include <unistd.h> #include <unistd.h>
#define COOKIEJAR "testcookieXXXXXX.jar"
#define DEFAULT_LINK "www.google.com"
typedef struct _url_test typedef struct _url_test
{ {
const char *_test_file; const char *_test_file;
@ -155,7 +158,7 @@ error_user:
} }
#ifdef ECORE_CON_FTP_TEST_URL #ifdef ECORE_CON_FTP_TEST_URL
START_TEST(ecore_test_ecore_con_url_ftp_upload) START_TEST(ecore_con_test_ecore_con_url_ftp_upload)
{ {
Ecore_Con_Url *ec_url; Ecore_Con_Url *ec_url;
url_test *info; url_test *info;
@ -193,7 +196,7 @@ END_TEST
#endif #endif
#ifdef ECORE_CON_HTTP_TEST_URL #ifdef ECORE_CON_HTTP_TEST_URL
START_TEST(ecore_test_ecore_con_url_post) START_TEST(ecore_con_test_ecore_con_url_post)
{ {
Ecore_Con_Url *ec_url; Ecore_Con_Url *ec_url;
url_test *info; url_test *info;
@ -236,7 +239,7 @@ START_TEST(ecore_test_ecore_con_url_post)
END_TEST END_TEST
#endif #endif
START_TEST(ecore_test_ecore_con_url_download) START_TEST(ecore_con_test_ecore_con_url_download)
{ {
Ecore_Con_Url *url; Ecore_Con_Url *url;
url_test *info; url_test *info;
@ -244,7 +247,7 @@ START_TEST(ecore_test_ecore_con_url_download)
#ifdef ECORE_CON_HTTP_TEST_URL #ifdef ECORE_CON_HTTP_TEST_URL
const char link[] = ECORE_CON_HTTP_TEST_URL; const char link[] = ECORE_CON_HTTP_TEST_URL;
#else #else
const char link[] = "www.google.com"; const char link[] = DEFAULT_LINK;
#endif #endif
char url_data[] = "test"; char url_data[] = "test";
@ -285,7 +288,7 @@ START_TEST(ecore_test_ecore_con_url_download)
} }
END_TEST END_TEST
START_TEST(ecore_test_ecore_con_url_create) START_TEST(ecore_con_test_ecore_con_url_create)
{ {
Ecore_Con_Url *url; Ecore_Con_Url *url;
int ret; int ret;
@ -306,7 +309,7 @@ START_TEST(ecore_test_ecore_con_url_create)
} }
END_TEST END_TEST
START_TEST(ecore_test_ecore_con_url_init) START_TEST(ecore_con_test_ecore_con_url_init)
{ {
int ret; int ret;
@ -318,15 +321,139 @@ START_TEST(ecore_test_ecore_con_url_init)
} }
END_TEST END_TEST
static Eina_Bool
_url_cookies_compl_cb(void *data EINA_UNUSED, int type EINA_UNUSED, void *event_info)
{
Ecore_Con_Event_Url_Complete *url_complete = event_info;
const Eina_List *headers, *l;
char *str;
headers = ecore_con_url_response_headers_get(url_complete->url_con);
fail_unless(headers);
printf("response headers:\n");
EINA_LIST_FOREACH(headers, l, str)
printf("header: %s", str);
ecore_con_url_cookies_jar_write(url_complete->url_con);
ecore_main_loop_quit();
return EINA_TRUE;
}
static Ecore_Con_Url *
_ecore_con_url_cookies_test_init()
{
Ecore_Con_Url *ec_url = NULL;
#ifdef ECORE_CON_HTTP_TEST_URL
const char link[] = ECORE_CON_HTTP_TEST_URL;
#else
const char link[] = DEFAULT_LINK;
#endif
eina_init();
ecore_con_init();
ecore_con_url_init();
ec_url = ecore_con_url_new(link);
fail_unless(ec_url);
ecore_event_handler_add(ECORE_CON_EVENT_URL_COMPLETE,
_url_cookies_compl_cb, NULL);
ecore_con_url_additional_header_add(ec_url, "User-Agent",
"Ecore_Con client");
ecore_con_url_cookies_init(ec_url);
return ec_url;
}
static void
_ecore_con_url_cookies_test_shutdown(Ecore_Con_Url *ec_url, int tmpfd, Eina_Tmpstr **path)
{
close(tmpfd);
unlink(*path);
eina_tmpstr_del(*path);
ecore_con_url_free(ec_url);
ecore_con_url_shutdown();
ecore_con_shutdown();
eina_shutdown();
}
START_TEST(ecore_con_test_ecore_con_url_cookies_clear)
{
Ecore_Con_Url *ec_url = _ecore_con_url_cookies_test_init();
Eina_Tmpstr *path;
int tmpfd;
tmpfd = eina_file_mkstemp(COOKIEJAR, &path);
ecore_con_url_cookies_file_add(ec_url, path);
fail_unless(ecore_con_url_cookies_jar_file_set(ec_url, path));
ecore_con_url_cookies_clear(ec_url);
fail_unless(ecore_con_url_get(ec_url));
ecore_main_loop_begin();
_ecore_con_url_cookies_test_shutdown(ec_url, tmpfd, &path);
}
END_TEST
START_TEST(ecore_con_test_ecore_con_url_cookies_clear_session)
{
Ecore_Con_Url *ec_url = _ecore_con_url_cookies_test_init();
Eina_Tmpstr *path;
int tmpfd;
tmpfd = eina_file_mkstemp(COOKIEJAR, &path);
ecore_con_url_cookies_file_add(ec_url, path);
fail_unless(ecore_con_url_cookies_jar_file_set(ec_url, path));
ecore_con_url_cookies_session_clear(ec_url);
fail_unless(ecore_con_url_get(ec_url));
ecore_main_loop_begin();
_ecore_con_url_cookies_test_shutdown(ec_url, tmpfd, &path);
}
END_TEST
START_TEST(ecore_con_test_ecore_con_url_cookies_ignore_session)
{
Ecore_Con_Url *ec_url = _ecore_con_url_cookies_test_init();
Eina_Tmpstr *path;
int tmpfd;
tmpfd = eina_file_mkstemp(COOKIEJAR, &path);
fail_unless(ecore_con_url_cookies_jar_file_set(ec_url, path));
ecore_con_url_cookies_ignore_old_session_set(ec_url,EINA_TRUE);
fail_unless(ecore_con_url_get(ec_url));
ecore_main_loop_begin();
_ecore_con_url_cookies_test_shutdown(ec_url, tmpfd, &path);
}
END_TEST
void ecore_con_test_ecore_con_url(TCase *tc) void ecore_con_test_ecore_con_url(TCase *tc)
{ {
tcase_add_test(tc, ecore_test_ecore_con_url_init); tcase_add_test(tc, ecore_con_test_ecore_con_url_init);
tcase_add_test(tc, ecore_test_ecore_con_url_create); tcase_add_test(tc, ecore_con_test_ecore_con_url_create);
tcase_add_test(tc, ecore_test_ecore_con_url_download); tcase_add_test(tc, ecore_con_test_ecore_con_url_download);
tcase_add_test(tc, ecore_con_test_ecore_con_url_cookies_clear);
tcase_add_test(tc, ecore_con_test_ecore_con_url_cookies_clear_session);
tcase_add_test(tc, ecore_con_test_ecore_con_url_cookies_ignore_session);
#ifdef ECORE_CON_HTTP_TEST_URL #ifdef ECORE_CON_HTTP_TEST_URL
tcase_add_test(tc, ecore_test_ecore_con_url_post); tcase_add_test(tc, ecore_con_test_ecore_con_url_post);
#endif #endif
#ifdef ECORE_CON_FTP_TEST_URL #ifdef ECORE_CON_FTP_TEST_URL
tcase_add_test(tc, ecore_test_ecore_con_url_ftp_upload); tcase_add_test(tc, ecore_con_test_ecore_con_url_ftp_upload);
#endif #endif
} }