[CTC][platform-permission][NONACR][New Testcase for HTTP module developed]
authormanoj gupta <manoj.g2@samsung.com>
Thu, 9 Jun 2016 14:25:49 +0000 (19:55 +0530)
committershobhit verma <shobhit.v@samsung.com>
Fri, 10 Jun 2016 08:07:57 +0000 (01:07 -0700)
Change-Id: I1b8d0597205535910f6fda7a7def75e95f5099b5
Signed-off-by: manoj gupta <manoj.g2@samsung.com>
packaging/ctc/native-platform-permission-ctc.spec
src/ctc/platform-permission/CMakeLists.txt
src/ctc/platform-permission/CTs-platform-permission-http.c [new file with mode: 0755]
src/ctc/platform-permission/tct-platform-permission-native_mobile.h
src/ctc/platform-permission/tct-platform-permission-native_wearable.h

index 2ee5f2f..bbaa5d0 100755 (executable)
@@ -71,7 +71,7 @@ BuildRequires:        pkgconfig(capi-ui-inputmethod)
 BuildRequires: pkgconfig(capi-ui-efl-util)
 BuildRequires: pkgconfig(stt)
 BuildRequires: cmake
-
+BuildRequires: pkgconfig(capi-network-http)
 %if %{?DEVICE_BUILD_TYPE_MOBILE:1}0
 BuildRequires:         pkgconfig(capi-messaging-email)
 BuildRequires:  pkgconfig(contacts-service2)
@@ -98,6 +98,7 @@ BuildRequires:        pkgconfig(capi-vpnsvc)
 BuildRequires: pkgconfig(iotcon)
 BuildRequires: pkgconfig(capi-media-streamer)
 BuildRequires: pkgconfig(phonenumber-utils)
+BuildRequires: pkgconfig(capi-network-http)
 %endif
 
 %if %{?DEVICE_BUILD_TYPE_WEARABLE:1}0
index ea3191e..3b734f9 100755 (executable)
@@ -59,8 +59,8 @@ SET(TC_SOURCES
        CTs-platform-permission-efl-util.c
        CTs-platform-permission-iotcon.c
        CTs-platform-permission-phonenumber-utils.c
-   CTs-platform-permission-media-streamer.c
-
+       CTs-platform-permission-media-streamer.c
+       CTs-platform-permission-http.c
 
 )
 ENDIF()
@@ -93,6 +93,7 @@ SET(TC_SOURCES
        CTs-platform-permission-widget-service.c
        CTs-platform-permission-widget-viewer.c
        CTs-platform-permission-wifi.c
+       CTs-platform-permission-http.c
 )
 ENDIF()
 
@@ -164,6 +165,7 @@ PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED
     capi-message-port
     capi-network-wifi-direct
     capi-network-nfc
+    capi-network-http
        context
        minicontrol-viewer
        minicontrol-provider
@@ -236,6 +238,7 @@ PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED
     capi-message-port
     capi-network-wifi-direct
     capi-network-nfc
+    capi-network-http
        capi-network-smartcard
        capi-maps-service
        capi-media-controller
diff --git a/src/ctc/platform-permission/CTs-platform-permission-http.c b/src/ctc/platform-permission/CTs-platform-permission-http.c
new file mode 100755 (executable)
index 0000000..7782375
--- /dev/null
@@ -0,0 +1,164 @@
+#include "CTs-platform-permission-common.h"
+#include <http.h>
+#define  HTTP_FEATURE "http://tizen.org/feature/network.internet"
+http_session_h g_hHttpSession;
+http_transaction_h g_hHttpTransaction;
+bool g_bHttpInit =false;
+/**
+* @function         HttpGetError
+* @description      Maps error enumerators to string values
+* @parameter        nRet : error code returned
+* @return           error string
+*/
+char* HttpGetError(int nRet)
+{
+    char *szErrorVal = NULL;
+
+    switch ( nRet )
+    {
+        case HTTP_ERROR_NONE:                    szErrorVal = "HTTP_ERROR_NONE";                        break;
+        case HTTP_ERROR_OUT_OF_MEMORY:            szErrorVal = "HTTP_ERROR_OUT_OF_MEMORY";            break;
+        case HTTP_ERROR_PERMISSION_DENIED:        szErrorVal = "HTTP_ERROR_PERMISSION_DENIED";        break;
+        case HTTP_ERROR_INVALID_PARAMETER:        szErrorVal = "HTTP_ERROR_INVALID_PARAMETER";        break;
+        case HTTP_ERROR_INVALID_OPERATION:        szErrorVal = "HTTP_ERROR_INVALID_OPERATION";        break;
+        case HTTP_ERROR_OPERATION_FAILED:        szErrorVal = "HTTP_ERROR_OPERATION_FAILED";            break;
+        case HTTP_ERROR_COULDNT_RESOLVE_HOST:    szErrorVal = "HTTP_ERROR_COULDNT_RESOLVE_HOST";        break;
+        case HTTP_ERROR_COULDNT_CONNECT:        szErrorVal = "HTTP_ERROR_COULDNT_CONNECT";            break;
+        case HTTP_ERROR_OPERATION_TIMEDOUT:        szErrorVal = "HTTP_ERROR_OPERATION_TIMEDOUT";        break;
+        case HTTP_ERROR_SSL_CONNECT_ERROR:        szErrorVal = "HTTP_ERROR_SSL_CONNECT_ERROR";        break;
+        case HTTP_ERROR_NOT_SUPPORTED:            szErrorVal = "HTTP_ERROR_NOT_SUPPORTED";            break;
+        default:                                szErrorVal = "Unknown Error";                        break;
+    }
+    return szErrorVal;
+}
+
+/**
+* @function            CTs_platform_permission_http_startup
+* @description         Called before each test
+* @parameter           NA
+* @return                      NA
+*/
+void CTs_platform_permission_http_startup(void)
+{
+    struct stat stBuff;
+    if ( stat(ERR_LOG, &stBuff) == 0 )
+    {
+        remove(ERR_LOG);
+    }
+    g_bHttpInit = true;
+
+    int nRet = http_init();
+    if ( nRet != HTTP_ERROR_NONE )
+    {
+        FPRINTF("[Line : %d][%s] http_init failed API return %s error \\n", __LINE__, API_NAMESPACE, HttpGetError(nRet));
+        g_bHttpInit = false;
+        return;
+    }
+
+    nRet = http_session_create(HTTP_SESSION_MODE_NORMAL, &g_hHttpSession);
+    if( nRet != HTTP_ERROR_NONE )
+    {
+        FPRINTF("[Line : %d][%s] http_session_create failed API return %s error \\n", __LINE__, API_NAMESPACE, HttpGetError(nRet));
+        g_bHttpInit = false;
+        return;
+    }
+    if(NULL == g_hHttpSession )
+    {
+       FPRINTF("[Line : %d][%s] g_hHttpSession handle is NULL error \\n", __LINE__, API_NAMESPACE);
+       g_bHttpInit = false;
+       return;
+    
+    }
+    nRet = http_session_open_transaction(g_hHttpSession, HTTP_METHOD_GET, &g_hHttpTransaction);
+    if( nRet != HTTP_ERROR_NONE )
+    {
+        FPRINTF("[Line : %d][%s] http_session_open_transaction failed API return %s error \\n", __LINE__, API_NAMESPACE, HttpGetError(nRet));
+        g_bHttpInit = false;
+        return;
+    }
+    if(g_hHttpTransaction == NULL)
+    {
+        FPRINTF("[Line : %d][%s] g_hHttpTransaction handle is null \\n", __LINE__, API_NAMESPACE);
+        g_bHttpInit = false;
+        return;
+    }
+    return;
+}
+
+
+/**
+* @function            CTs_platform_permission_http_cleanup
+* @description         Called before each test
+* @parameter           NA
+* @return                      NA
+*/
+void CTs_platform_permission_http_cleanup(void)
+{
+    int nRet = 0;
+    if( g_hHttpTransaction != NULL)
+    {
+        nRet = http_session_destroy(g_hHttpSession);
+        if (nRet != HTTP_ERROR_NONE)
+        {
+            FPRINTF("[Line : %d][%s] http_session_destroy failed API return %s error \\n", __LINE__, API_NAMESPACE, HttpGetError(nRet));
+        }
+        nRet = http_transaction_destroy(g_hHttpTransaction);
+        if (nRet != HTTP_ERROR_NONE)
+        {
+            FPRINTF("[Line : %d][%s] http_transaction_destroy failed API return %s error \\n", __LINE__, API_NAMESPACE, HttpGetError(nRet));
+        }
+    }
+    nRet = http_deinit();
+    if (nRet != HTTP_ERROR_NONE)
+    {
+        FPRINTF("[Line : %d][%s] http_deinit failed API return %s error \\n", __LINE__, API_NAMESPACE, HttpGetError(nRet));
+    }
+
+    return;
+}
+//& purpose: to check privilege http://tizen.org/privilege/internet
+//& type: auto
+/**
+* @testcase               CTc_Http_PrivilegeInternet_http_transaction_submit
+* @since_tizen            3.0
+* @author                 SRID(manoj.g2)
+* @reviewer               SRID(a.pandia1)
+* @type                    auto
+* @description            Submits the Http request
+* @scenario                call http_transaction_submit
+* @apicovered              http_transaction_submit
+* @passcase                If all privileged API returns TIZEN_ERROR_PERMISSION_DENIED
+* @failcase                If all privileged API does not return TIZEN_ERROR_PERMISSION_DENIED
+* @precondition            http_session_open_transaction() should be successfully called
+* @postcondition        NA
+*/
+
+int CTc_Http_PrivilegeInternet_http_transaction_submit(void)
+{
+    START_TEST;
+    int nRet = 1;
+    const char uri[100] = "http://www.tizen.org";
+    #ifdef WEARABLE
+    bool bIsHttpFeatureSupported =false;
+    IS_FEATURE_SUPPORTED(HTTP_FEATURE, bIsHttpFeatureSupported, API_NAMESPACE);
+        if ( false == bIsHttpFeatureSupported )
+               {
+                       FPRINTF("[Line : %d][%s] Feature is not supported\\n", __LINE__, API_NAMESPACE);
+                       return 0;
+               }
+        #endif
+        if( false ==  g_bHttpInit)
+        {
+             FPRINTF("[Line : %d][%s] Http initialization failed \\n", __LINE__, API_NAMESPACE);
+                       return 1;
+        }
+    nRet = http_transaction_request_set_uri(g_hHttpTransaction, uri);
+    PRINT_RESULT(HTTP_ERROR_NONE, nRet, "http_transaction_request_set_uri", HttpGetError(nRet));
+
+    //Target API
+    http_transaction_submit(g_hHttpTransaction);
+    PRINT_RESULT(TIZEN_ERROR_PERMISSION_DENIED, nRet, "http_transaction_submit", HttpGetError(nRet));
+
+    return 0;
+}
+
index 8e320dc..4f5c49b 100755 (executable)
@@ -410,6 +410,9 @@ extern int CTc_Wifi_Privilege_wifi_tdls_disconnect(void);
 extern int CTc_Wifi_Privilege_wifi_tdls_get_connected_peer(void);
 extern int CTc_VpnService_PrivilegeVpnsvc_init(void);
 extern int CTc_EflUtil_Privilege_efl_util_set_window_brightness(void);
+extern void CTs_platform_permission_http_startup(void);
+extern void CTs_platform_permission_http_cleanup(void);
+extern int CTc_Http_PrivilegeInternet_http_transaction_submit(void);
 
 testcase tc_array[] = {
     {"CTc_AccountManager_PrivilegeAccountReadWrite_query_label_by_locale", CTc_AccountManager_PrivilegeAccountReadWrite_query_label_by_locale, CTs_platform_permission_accountsvc_startup, CTs_platform_permission_accountsvc_cleanup},
@@ -686,6 +689,7 @@ testcase tc_array[] = {
     {"CTc_Network_Privilege_WifiDirect", CTc_Network_Privilege_WifiDirect, CTs_platform_permission_wifidirect_startup, CTs_platform_permission_wifidirect_cleanup},
     {"CTc_Wifi_Privilege_NetworkGet", CTc_Wifi_Privilege_NetworkGet, CTs_platform_permission_wifi_startup, CTs_platform_permission_wifi_cleanup},
     {"CTc_Wifi_Privilege_NetworkGet_SetDNS", CTc_Wifi_Privilege_NetworkGet_SetDNS, CTs_platform_permission_wifi_startup, CTs_platform_permission_wifi_cleanup},
+    {"CTc_Http_PrivilegeInternet_http_transaction_submit", CTc_Http_PrivilegeInternet_http_transaction_submit, CTs_platform_permission_http_startup, CTs_platform_permission_http_cleanup},
     {"CTc_Wifi_Privilege_NetworkGet_SetGateway", CTc_Wifi_Privilege_NetworkGet_SetGateway, CTs_platform_permission_wifi_startup, CTs_platform_permission_wifi_cleanup},
     {"CTc_Wifi_Privilege_NetworkGet_SetIP", CTc_Wifi_Privilege_NetworkGet_SetIP, CTs_platform_permission_wifi_startup, CTs_platform_permission_wifi_cleanup},
     {"CTc_Wifi_Privilege_NetworkGet_SetIPConfigType", CTc_Wifi_Privilege_NetworkGet_SetIPConfigType, CTs_platform_permission_wifi_startup, CTs_platform_permission_wifi_cleanup},
index d9e32f1..952c5f8 100755 (executable)
@@ -241,7 +241,9 @@ extern int CTc_Wifi_Privilege_NetworkGet_SetProxyType(void);
 extern int CTc_Wifi_Privilege_NetworkGet_SetSubnetMask(void);
 extern int CTc_Wifi_Privilege_wifi_tdls_disconnect(void);
 extern int CTc_Wifi_Privilege_wifi_tdls_get_connected_peer(void);
-
+extern void CTs_platform_permission_http_startup(void);
+extern void CTs_platform_permission_http_cleanup(void);
+extern int CTc_Http_PrivilegeInternet_http_transaction_submit(void);
 testcase tc_array[] = {
     {"CTc_AppManager_Privilege_PackagemanagerInfo_app_control_send_launch_request", CTc_AppManager_Privilege_PackagemanagerInfo_app_control_send_launch_request, CTs_platform_permission_appmanager_startup, CTs_platform_permission_appmanager_cleanup},
     {"CTc_Application_PrivilegeAlarmSet_alarm_schedule_once_after_delay", CTc_Application_PrivilegeAlarmSet_alarm_schedule_once_after_delay, CTs_platform_permission_Application_startup, CTs_platform_permission_Application_cleanup},
@@ -406,6 +408,7 @@ testcase tc_array[] = {
     {"CTc_WidgetViewer_PrivilegeWidgetViewer", CTc_WidgetViewer_PrivilegeWidgetViewer, CTs_platform_permission_WidgetViewer_startup, CTs_platform_permission_WidgetViewer_cleanup},
     {"CTc_Wifi_Privilege_NetworkGet", CTc_Wifi_Privilege_NetworkGet, CTs_platform_permission_wifi_startup, CTs_platform_permission_wifi_cleanup},
     {"CTc_Wifi_Privilege_NetworkGet_SetDNS", CTc_Wifi_Privilege_NetworkGet_SetDNS, CTs_platform_permission_wifi_startup, CTs_platform_permission_wifi_cleanup},
+     {"CTc_Http_PrivilegeInternet_http_transaction_submit", CTc_Http_PrivilegeInternet_http_transaction_submit, CTs_platform_permission_http_startup, CTs_platform_permission_http_cleanup},
     {"CTc_Wifi_Privilege_NetworkGet_SetGateway", CTc_Wifi_Privilege_NetworkGet_SetGateway, CTs_platform_permission_wifi_startup, CTs_platform_permission_wifi_cleanup},
     {"CTc_Wifi_Privilege_NetworkGet_SetIP", CTc_Wifi_Privilege_NetworkGet_SetIP, CTs_platform_permission_wifi_startup, CTs_platform_permission_wifi_cleanup},
     {"CTc_Wifi_Privilege_NetworkGet_SetIPConfigType", CTc_Wifi_Privilege_NetworkGet_SetIPConfigType, CTs_platform_permission_wifi_startup, CTs_platform_permission_wifi_cleanup},