cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fcd9a331a64ffc7b1322535d58dd5b96b0d28ed7

commit fcd9a331a64ffc7b1322535d58dd5b96b0d28ed7
Author: Srivardhan Hebbar <[email protected]>
Date:   Wed Mar 18 15:41:16 2015 +0100

    ecore_con: add test case for download related functions.
    
    Summary:
    This has test cases for download related functions. Will make url
    configurable and add post/upload related functions in the coming patch.
    
    Signed-off-by: Srivardhan Hebbar <[email protected]>
    
    Reviewers: cedric
    
    Subscribers: cedric
    
    Differential Revision: https://phab.enlightenment.org/D2175
    
    Signed-off-by: Cedric BAIL <[email protected]>
---
 src/tests/ecore/ecore_test_ecore_con_url.c | 105 +++++++++++++++++++++++++++++
 1 file changed, 105 insertions(+)

diff --git a/src/tests/ecore/ecore_test_ecore_con_url.c 
b/src/tests/ecore/ecore_test_ecore_con_url.c
index 61e6fe5..33854a1 100644
--- a/src/tests/ecore/ecore_test_ecore_con_url.c
+++ b/src/tests/ecore/ecore_test_ecore_con_url.c
@@ -5,8 +5,112 @@
 #include "ecore_suite.h"
 
 #include <stdio.h>
+#include <Ecore.h>
 #include <Ecore_Con.h>
+#include <Eina.h>
+#include <unistd.h>
 
+typedef struct _url_test
+{
+   const char *_test_file;
+   int _tmpfd;
+} url_test;
+
+static void
+_free_url_test(url_test *info)
+{
+   unlink(info->_test_file);
+   eina_tmpstr_del(info->_test_file);
+   close(info->_tmpfd);
+   free(info);
+}
+
+static Eina_Bool
+_url_compl_cb(void *data, int type EINA_UNUSED, void *event_info)
+{
+   url_test *info = data;
+   Ecore_Con_Event_Url_Complete *ev = event_info;
+
+   printf("Total downloaded bytes = %d\n",
+           ecore_con_url_received_bytes_get(ev->url_con));
+
+   if (info->_tmpfd)
+     {
+        _free_url_test(info);
+        ecore_con_url_free(ev->url_con);
+     }
+   else
+     {
+        fail_unless(ecore_con_url_url_set(ev->url_con,
+                    "ftp://ftp.kernel.org/pub/linux/kernel/README";));
+
+        ecore_con_url_verbose_set (ev->url_con, EINA_FALSE);
+
+        info->_tmpfd = eina_file_mkstemp("ecore_con_test_XXXXXX.html",
+                                         &(info->_test_file));
+        if (info->_tmpfd < 0)
+          {
+             free(info);
+             ecore_con_url_free(ev->url_con);
+             fail();
+          }
+
+        ecore_con_url_fd_set(ev->url_con, info->_tmpfd);
+        if (!ecore_con_url_get(ev->url_con))
+          {
+             _free_url_test(info);
+             ecore_con_url_free(ev->url_con);
+             fail();
+          }
+     }
+
+   return EINA_FALSE;
+}
+
+START_TEST(ecore_test_ecore_con_url_download)
+{
+   Ecore_Con_Url *url;
+   url_test *info;
+   int ret;
+   const char link[] = "www.google.com";
+   char url_data[] = "test";
+
+   ret = eina_init();
+   fail_if(ret != 1);
+   ret = ecore_con_url_init();
+   fail_if(ret != 1);
+
+   url = ecore_con_url_new(link);
+   fail_unless (url);
+
+   ecore_con_url_verbose_set(url, EINA_TRUE);
+
+   fail_if (strcmp(ecore_con_url_url_get(url), link));
+
+   ecore_con_url_data_set(url, url_data);
+   fail_if (strcmp(ecore_con_url_data_get(url), url_data));
+
+   info = (url_test *) malloc(sizeof(url_test));
+   info->_tmpfd = 0;
+
+   if (!ecore_con_url_get(url))
+     {
+        close(info->_tmpfd);
+        free(info);
+        ecore_con_url_free(url);
+        fail();
+     }
+    else
+     {
+        ecore_event_handler_add(ECORE_CON_EVENT_URL_COMPLETE,
+                                _url_compl_cb, info);
+     }
+
+   ret = ecore_con_url_shutdown();
+   fail_if(ret != 0);
+   ret = eina_shutdown();
+}
+END_TEST
 
 START_TEST(ecore_test_ecore_con_url_create)
 {
@@ -45,4 +149,5 @@ void ecore_test_ecore_con_url(TCase *tc)
 {
    tcase_add_test(tc, ecore_test_ecore_con_url_init);
    tcase_add_test(tc, ecore_test_ecore_con_url_create);
+   tcase_add_test(tc, ecore_test_ecore_con_url_download);
 }

-- 


Reply via email to