Added initial code for Gtest 44/178544/6 submit/tizen/20180521.064432
authorAbhishek Sansanwal <abhishek.s94@samsung.com>
Thu, 10 May 2018 09:48:38 +0000 (15:18 +0530)
committerAbhishek Sansanwal <abhishek.s94@samsung.com>
Fri, 18 May 2018 07:14:05 +0000 (12:44 +0530)
Signed-off-by: Abhishek Sansanwal <abhishek.s94@samsung.com>
Change-Id: Id10409cd1c23c24d7b7d686d12d162d92d55a31f

12 files changed:
CMakeLists.txt
agent/CMakeLists.txt
agent/download-agent-interface.c
download-agent.pc.in [new file with mode: 0644]
packaging/download-provider.spec
provider-interface/CMakeLists.txt
provider-interface/download-provider-interface.c
provider/CMakeLists.txt
provider/download-provider-client-manager.c
provider/download-provider-main.c
unittest/CMakeLists.txt [new file with mode: 0644]
unittest/unittest.cpp [new file with mode: 0644]

index b36d252..fb3a526 100755 (executable)
@@ -46,6 +46,15 @@ IF (TIZEN_2_3_UX)
 ENDIF(TIZEN_2_3_UX)
 
 ADD_DEFINITIONS(-DLIB_AGENT_PATH=\"${LIB_AGENT_PATH}\")
+IF(BUILD_GCOV)
+       ADD_DEFINITIONS(-DBUILD_GCOV)
+ENDIF(BUILD_GCOV)
+
+IF(BUILD_GTESTS)
+       MESSAGE("Building unittests")
+       ADD_DEFINITIONS(-DTIZEN_FEATURE_UNITTEST)
+       ADD_SUBDIRECTORY(unittest)
+ENDIF(BUILD_GTESTS)
 
 # BUILD
 
@@ -65,7 +74,10 @@ PROJECT(${PKG_NAME} C)
 SET(PACKAGE_DESCRIPTION "Defines for ${PROJECT_NAME}")
 
 CONFIGURE_FILE(download-provider.pc.in download-provider.pc @ONLY)
+CONFIGURE_FILE(download-agent.pc.in download-agent.pc @ONLY)
+
 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/download-provider.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/download-agent.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
 
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/systemd/download-provider.service DESTINATION /lib/systemd/system)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/systemd/download-provider.socket DESTINATION /lib/systemd/system)
index 1915623..a6f7983 100755 (executable)
@@ -91,7 +91,12 @@ IF (SUPPORT_OMA_DRM)
        ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
 ENDIF (SUPPORT_OMA_DRM)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -Werror -fvisibility=hidden")
+IF (BUILD_GTESTS)
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic -Wall -Werror-implicit-function-declaration")
+       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -Werror -fvisibility=default -fprofile-arcs -ftest-coverage")
+ELSE (BUILD_GTESTS)
+       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -Werror -fvisibility=hidden")
+ENDIF (BUILD_GTESTS)
 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fPIE")
 SET(CMAKE_C_FLAGS_RELEASE "-O2 -fPIE")
 
@@ -105,3 +110,4 @@ TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${subpkgs_LDFLAGS} ${httppkgs_LDFLAGS} ${d
 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION})
 
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/download-agent-interface.h DESTINATION ${INCLUDE_INSTALL_DIR}/${PKG_NAME})
index 5f54265..7a844f0 100755 (executable)
@@ -45,6 +45,8 @@ int da_start_download(const char *url, req_data_t *ext_data,
        int i = 0;
        int da_id = DA_INVALID_ID;
        da_info_t *da_info = DA_NULL;
+       if (download_id == NULL)
+               return DA_ERR_INVALID_ARGUMENT;
 
        *download_id = DA_INVALID_ID;
 
diff --git a/download-agent.pc.in b/download-agent.pc.in
new file mode 100644 (file)
index 0000000..f3064ac
--- /dev/null
@@ -0,0 +1,6 @@
+# Package Information
+
+Name: @PROJECT_NAME@
+Description: @PACKAGE_DESCRIPTION@
+Version: @VERSION@
+Cflags: -I/usr/include/downloadagent2
index 62f081c..2e44a0d 100755 (executable)
@@ -34,6 +34,12 @@ BuildRequires:  pkgconfig(cynara-creds-socket)
 BuildRequires:  pkgconfig(cynara-creds-dbus)
 BuildRequires:  pkgconfig(tpkp-curl)
 BuildRequires:  pkgconfig(libtzplatform-config)
+BuildRequires:  elementary-tizen
+
+
+%if 0%{?gtests:1}
+BuildRequires:  pkgconfig(gmock)
+%endif
 
 %description
 Description: Download the contents in background
@@ -66,6 +72,10 @@ export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
 
+%if 0%{?gcov:1}
+export LDFLAGS+=" -lgcov"
+%endif
+
 %cmake -DTZ_SYS_GLOBALUSER_DATA=%TZ_SYS_GLOBALUSER_DATA \
        -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
        -DBIN_INSTALL_DIR:PATH=%{_bindir} \
@@ -96,6 +106,8 @@ export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
 %endif
        %{?_cmake_skip_rpath} \
        -DBUILD_SHARED_LIBS:BOOL=ON \
+       -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
+        -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0} \
        .
 
 make %{?jobs:-j%jobs}
@@ -157,5 +169,11 @@ chown -R web_fw:web_fw %{_data_install_path}
 %{_libdir}/*.so
 %{_libdir}/pkgconfig/download-provider.pc
 %{_libdir}/pkgconfig/download-provider-interface.pc
+%{_libdir}/pkgconfig/download-agent.pc
 %{_includedir}/download-provider/download-provider.h
 %{_includedir}/download-provider/download-provider-interface.h
+%{_includedir}/download-provider/download-agent-interface.h
+
+%if 0%{?gtests:1}
+%{_bindir}/gtest*
+%endif
index a20b7dd..1d7f539 100755 (executable)
@@ -29,7 +29,17 @@ SET(PROVIDER_INTERFACE_LINK_LIBRARIES
                pthread
        )
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -Werror -fvisibility=hidden")
+IF (BUILD_GTESTS)
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic -Wall -Werror-implicit-function-declaration")
+       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -Werror -fvisibility=default -fprofile-arcs")
+ELSE (BUILD_GTESTS)
+       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -Werror -fvisibility=hidden")
+ENDIF (BUILD_GTESTS)
+
+IF (BUILD_GCOV)
+       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage")
+ENDIF (BUILD_GCOV)
+
 SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -g -fPIE")
 SET(CMAKE_C_FLAGS_RELEASE "-O2 -fPIE")
 
index c03ff17..5ba1c60 100755 (executable)
@@ -842,6 +842,9 @@ int dp_interface_get_destination(const int id, char **path)
        char compat_filename[DOWNLOAD_FILENAME_MAX] = {0, };
        int ret = 0;
 
+       if (!path)
+               return DP_ERROR_INVALID_PARAMETER ;
+
        ret = __dp_ipc_get_string(id, DP_PROP_DESTINATION, path, __FUNCTION__);
 
        if (storage_get_compat_internal_path(*path, DOWNLOAD_FILENAME_MAX, compat_filename) == 0) {
@@ -869,6 +872,9 @@ int dp_interface_get_downloaded_file_path(const int id, char **path)
        char compat_filename[DOWNLOAD_FILENAME_MAX] = {0, };
        int ret = 0;
 
+       if (!path)
+               return DP_ERROR_INVALID_PARAMETER ;
+
        ret = __dp_ipc_get_string(id, DP_PROP_SAVED_PATH, path, __FUNCTION__);
 
        if (storage_get_compat_internal_path(*path, DOWNLOAD_FILENAME_MAX, compat_filename) == 0) {
@@ -884,6 +890,8 @@ int dp_interface_get_temp_path(const int id, char **temp_path)
        char compat_filename[DOWNLOAD_FILENAME_MAX] = {0, };
        int ret = 0;
 
+       if (temp_path == NULL)
+               return DP_ERROR_INVALID_PARAMETER;
        ret = __dp_ipc_get_string(id, DP_PROP_TEMP_SAVED_PATH, temp_path, __FUNCTION__);
 
        if (storage_get_compat_internal_path(*temp_path, DOWNLOAD_FILENAME_MAX, compat_filename) == 0) {
@@ -1283,7 +1291,7 @@ int dp_interface_set_notification_service_handle(const int id, const int type, v
                int length = 0;
                bundle_raw *raw_buffer = NULL;
                bundle *bundle_data = NULL;
-               int result = app_control_export_as_bundle((app_control_h) handle, &bundle_data);
+               int result = app_control_export_as_bundle(*((app_control_h *)handle), &bundle_data);
                if (result == APP_CONTROL_ERROR_NONE) {
                        result = bundle_encode_raw(bundle_data, &raw_buffer, &length);
                        if (result == 0 && length > 0) {
index 167e042..91e6329 100755 (executable)
@@ -76,7 +76,17 @@ set(DP2_LINK_LIBRARIES ${GLIB-2_LIBRARIES}
                capi-appfw-app-manager
        )
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -Werror -fvisibility=hidden")
+IF (BUILD_GTESTS)
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic -Wall -Werror-implicit-function-declaration")
+       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -Werror -fvisibility=default -fprofile-arcs")
+ELSE (BUILD_GTESTS)
+       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -Werror -fvisibility=hidden")
+ENDIF (BUILD_GTESTS)
+
+IF (BUILD_GCOV)
+       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage")
+ENDIF (BUILD_GCOV)
+
 SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -g -fPIE")
 SET(CMAKE_C_FLAGS_RELEASE "-O2 -fPIE")
 
index 3c17de0..022a59d 100755 (executable)
@@ -365,7 +365,11 @@ static int __dp_client_new(int clientfd, dp_client_slots_fmt *clients,
        if (aul_app_get_appid_bypid_for_uid(credential.pid, buffer, sizeof(buffer), credential.uid) != AUL_R_OK)
                TRACE_ERROR("[CRITICAL] aul_app_get_appid_bypid_for_uid");
 
+#ifdef TIZEN_FEATURE_UNITTEST
+       pkgname = strdup("download-provider");
+#else
        pkgname = strdup(buffer);
+#endif
        if ((pkg_len = strlen(pkgname)) <= 0) {
                TRACE_ERROR("[CRITICAL] pkgname:%s", pkgname);
                free(pkgname);
index 9916be5..6e14414 100755 (executable)
 pthread_t g_client_manager_tid;
 void *dp_client_manager(void *arg);
 
+#if (BUILD_GCOV != 0)
+extern void __gcov_flush(void);
+#endif
+
 int main(int argc, char **argv)
 {
        GMainLoop *event_loop;
@@ -49,6 +53,10 @@ int main(int argc, char **argv)
        //Requested By platform team, It should be in main thread.
        curl_global_init(CURL_GLOBAL_ALL);
 
+#if (BUILD_GCOV != 0)
+       setenv("GCOV_PREFIX", "/tmp/", 1);
+#endif
+
        // create a thread for main thread
        if (pthread_create(&g_client_manager_tid, NULL, dp_client_manager, (void *)event_loop) != 0) {
                TRACE_ERROR("failed to create main thread");
@@ -65,6 +73,9 @@ int main(int argc, char **argv)
        dp_network_connection_destroy();
        g_main_loop_unref(event_loop);
 
+#if (BUILD_GCOV != 0)
+       __gcov_flush();
+#endif
        TRACE_INFO("download-provider's working is done");
        return 0;
 }
diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt
new file mode 100644 (file)
index 0000000..227470b
--- /dev/null
@@ -0,0 +1,38 @@
+LINK_DIRECTORIES(${CMAKE_BINARY_DIR})
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/provider/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/provider-interface/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/agent/include)
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(gtest-download-provider C CXX)
+
+SET(GTEST_TEST "gtest-download-provider")
+ADD_DEFINITIONS("-DUSE_DLOG")
+
+SET(REQUIRES_LIST ${REQUIRES_LIST}
+       glib-2.0
+       gio-2.0
+       gmock
+       dlog
+       capi-appfw-app-control
+)
+
+INCLUDE(FindPkgConfig)
+PKG_CHECK_MODULES(GTEST_TEST_PKG REQUIRED ${REQUIRES_LIST})
+
+FOREACH(flag ${GTEST_TEST_PKG_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wall -fPIE")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+
+FILE(GLOB GTEST_TEST_SRCS *.cpp)
+SET(GTEST_TEST_SRCS ${GTEST_TEST_SRCS})
+
+ADD_EXECUTABLE(${GTEST_TEST} ${GTEST_TEST_SRCS})
+TARGET_LINK_LIBRARIES(${GTEST_TEST} downloadagent2 download-provider-interface ${GTEST_TEST_LDFLAGS} ${GTEST_TEST_PKG_LDFLAGS} -ldl -lgcov)
+
+INSTALL(TARGETS ${GTEST_TEST} RUNTIME DESTINATION ${BIN_INSTALL_DIR})
diff --git a/unittest/unittest.cpp b/unittest/unittest.cpp
new file mode 100644 (file)
index 0000000..faa0dcf
--- /dev/null
@@ -0,0 +1,1657 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <iostream>
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include <unistd.h>
+#include <app_control.h>
+
+#include "download-provider-interface.h"
+#include "download-agent-interface.h"
+
+#define URL_LENGTH 256
+#define PATH_LENGTH 256
+#define FILE_LENGTH 256
+#define MIME_LENGTH 256
+
+using namespace std;
+using ::testing::InitGoogleTest;
+using ::testing::Test;
+using ::testing::TestCase;
+
+void interface_state_changed_cb(int id, int state, void *user_data) {
+       return;
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_state_changed_cb_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_set_state_changed_cb(id, NULL, NULL);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_state_changed_cb_negative)
+{
+       int ret;
+       ret = dp_interface_set_state_changed_cb(-1, NULL, NULL);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+}
+
+TEST(DownloadProviderInterface, dp_interface_unset_state_changed_cb_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_unset_state_changed_cb(id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_unset_state_changed_cb_negative)
+{
+       int ret;
+
+       ret = dp_interface_unset_state_changed_cb(-1);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_progress_cb_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_set_progress_cb(id, NULL, NULL);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_progress_cb_negative)
+{
+       int ret;
+       ret = dp_interface_set_progress_cb(-1, NULL, NULL);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+}
+
+TEST(DownloadProviderInterface, dp_interface_unset_progress_cb_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_unset_progress_cb(id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_unset_progress_cb_negative)
+{
+       int ret;
+
+       ret = dp_interface_unset_progress_cb(-1);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+}
+
+TEST(DownloadProviderInterface, dp_interface_create_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_create_negative)
+{
+       int ret;
+       ret = dp_interface_create(NULL);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_INVALID_PARAMETER, ret);
+}
+
+TEST(DownloadProviderInterface, dp_interface_destroy_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_destroy(id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+}
+
+TEST(DownloadProviderInterface, dp_interface_destroy_negative)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_destroy(-1);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+}
+
+TEST(DownloadProviderInterface, dp_interface_start_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_start_negative)
+{
+       int ret;
+       ret = dp_interface_start(-1);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+}
+
+TEST(DownloadProviderInterface, dp_interface_pause_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       sleep(1);
+
+       ret = dp_interface_pause(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_pause_negative)
+{
+       int ret;
+
+       ret = dp_interface_pause(-1);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+}
+
+TEST(DownloadProviderInterface, dp_interface_cancel_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       sleep(1);
+
+       ret = dp_interface_cancel(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_cancel_negative)
+{
+       int ret;
+       ret = dp_interface_cancel(-1);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_url_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_url_negative)
+{
+       int ret;
+       ret = dp_interface_set_url(-1, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_destination_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       int state;
+       ret = dp_interface_get_state(id, &state);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       const char* destination = "/opt/media";
+       ret = dp_interface_set_destination(id, destination);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_destination_negative)
+{
+       int ret;
+       ret = dp_interface_set_destination(-1, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_file_name_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* file_name = "placeholder";
+       ret = dp_interface_set_file_name(id, file_name);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_file_name_negative)
+{
+       int ret;
+
+       ret = dp_interface_set_file_name(-1, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_network_type_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_set_network_type(id, 1);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_network_type_negative)
+{
+       int ret;
+
+       ret = dp_interface_set_network_type(-1, -1);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_network_bonding_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_set_network_bonding(id, 1);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_network_bonding_negative)
+{
+       int ret;
+
+       ret = dp_interface_set_network_bonding(-1, -1);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_auto_download_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_set_auto_download(id, 1);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_auto_download_negative)
+{
+       int ret;
+
+       ret = dp_interface_set_auto_download(-1, -1);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_url_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* set_url = "http://tizen.org";
+       ret = dp_interface_set_url(id, set_url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       char *get_url[URL_LENGTH];
+       ret = dp_interface_get_url(id, get_url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_url_negative)
+{
+       int ret;
+
+       ret = dp_interface_get_url(-1, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_network_type_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_set_network_type(id, 1);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int type = 0;
+       ret = dp_interface_get_network_type(id, &type);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       EXPECT_EQ(type, 1);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_network_type_negative)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_set_network_type(id, 1);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int type = 0;
+       ret = dp_interface_get_network_type(-1, &type);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_get_network_type(id, NULL);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_network_bonding_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_set_network_bonding(id, 1);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int enable;
+       ret = dp_interface_get_network_bonding(id, &enable);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       EXPECT_EQ(enable, 1);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_network_bonding_negative)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_set_network_bonding(id, 1);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int enable;
+       ret = dp_interface_get_network_bonding(-1, &enable);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       ret = dp_interface_get_network_bonding(id, NULL);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_destination_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* destination = "/opt/media";
+       ret = dp_interface_set_destination(id, destination);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       char *get_dest[PATH_LENGTH];
+       ret = dp_interface_get_destination(id, get_dest);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_destination_negative)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* destination = "/opt/media";
+       ret = dp_interface_set_destination(id, destination);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       char *get_dest[PATH_LENGTH];
+
+       ret = dp_interface_get_destination(-1, get_dest);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_destination(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_file_name_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* file_name = "placeholder";
+       ret = dp_interface_set_file_name(id, file_name);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       char *get_file_name[FILE_LENGTH];
+       ret = dp_interface_get_file_name(id, get_file_name);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_file_name_negative)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* file_name = "placeholder";
+       ret = dp_interface_set_file_name(id, file_name);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       char *get_file_name[FILE_LENGTH];
+       ret = dp_interface_get_file_name(-1, get_file_name);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_file_name(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_downloaded_file_path_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       const char* destination = "/opt/media";
+       ret = dp_interface_set_destination(id, destination);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       const char* file_name = "placeholder";
+       ret = dp_interface_set_file_name(id, file_name);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       int state = 0;
+       do {
+       ret = dp_interface_get_state(id, &state);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       std::cerr << ".";
+       sleep(1);
+       } while (state <= DOWNLOAD_ADPATOR_STATE_DOWNLOADING);
+       std::cerr << endl;
+
+       char get_file_name[FILE_LENGTH];
+       ret = dp_interface_get_downloaded_file_path(id, (char **)&get_file_name);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_downloaded_file_path_negative)
+{
+       int ret;
+       ret = dp_interface_get_downloaded_file_path(-1, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_mime_type_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       char mime_type[MIME_LENGTH];
+       ret = dp_interface_get_mime_type(id, (char **)&mime_type);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_mime_type_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_get_mime_type(-1, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_get_mime_type(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_auto_download_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_set_auto_download(id, 1);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int enable;
+       ret = dp_interface_get_auto_download(id, &enable);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       EXPECT_EQ(enable, 1);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_auto_download_negative)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_set_auto_download(id, 1);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int enable;
+       ret = dp_interface_get_auto_download(-1, &enable);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       ret = dp_interface_get_auto_download(id, NULL);
+       EXPECT_NE(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_state_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int state;
+       ret = dp_interface_get_state(id, &state);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_state_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int state;
+       ret = dp_interface_get_state(-1, &state);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_state(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_temp_path_positive)
+{
+       int id, ret;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       const char* destination = "/opt/media";
+       ret = dp_interface_set_destination(id, destination);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       const char* file_name = "placeholder";
+       ret = dp_interface_set_file_name(id, file_name);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       int state = 0;
+       do {
+       ret = dp_interface_get_state(id, &state);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       std::cerr << ".";
+       sleep(1);
+       } while (state != DOWNLOAD_ADPATOR_STATE_COMPLETED);
+       std::cerr << endl;
+
+
+       char path[PATH_LENGTH];
+       ret = dp_interface_get_temp_path(id, (char **)&path);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_temp_path_negative)
+{
+       int ret, id;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_get_temp_path(-1, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_temp_path(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_content_name_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       const char* destination = "/opt/media";
+       ret = dp_interface_set_destination(id, destination);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       const char* file_name = "placeholder";
+       ret = dp_interface_set_file_name(id, file_name);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       int state = 0;
+       do {
+       ret = dp_interface_get_state(id, &state);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       std::cerr << ".";
+       sleep(1);
+       } while (state <= DOWNLOAD_ADPATOR_STATE_DOWNLOADING);
+       std::cerr << endl;
+
+       char content_name[PATH_LENGTH];
+       ret = dp_interface_get_content_name(id, (char **)&content_name);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_content_name_negative)
+{
+       int ret, id;
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_get_content_name(-1, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_content_name(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_content_size_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       unsigned long long size;
+       ret = dp_interface_get_content_size(id, &size);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_content_size_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       unsigned long long size;
+       ret = dp_interface_get_content_size(-1, &size);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_content_size(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_error_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       int err;
+       ret = dp_interface_get_error(id, &err);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_error_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       int err;
+       ret = dp_interface_get_error(-1, &err);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_error(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_http_status_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://ftp.mozilla.org/abc";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       const char* destination = "/opt/media";
+       ret = dp_interface_set_destination(id, destination);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       const char* file_name = "placeholder";
+       ret = dp_interface_set_file_name(id, file_name);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       int state = 0;
+       do {
+       ret = dp_interface_get_state(id, &state);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       std::cerr << ".";
+       sleep(1);
+       } while (state <= DOWNLOAD_ADPATOR_STATE_DOWNLOADING);
+       std::cerr << endl;
+
+       int http_status;
+       ret = dp_interface_get_http_status(id, &http_status);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_http_status_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       int http_status;
+       ret = dp_interface_get_http_status(-1, &http_status);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_http_status(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_etag_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       const char* destination = "/opt/media";
+       ret = dp_interface_set_destination(id, destination);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       const char* file_name = "placeholder";
+       ret = dp_interface_set_file_name(id, file_name);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       int state = 0;
+       do {
+       ret = dp_interface_get_state(id, &state);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       std::cerr << ".";
+       sleep(1);
+       } while (state < DOWNLOAD_ADPATOR_STATE_DOWNLOADING);
+       std::cerr << endl;
+
+
+       char *etag[PATH_LENGTH];
+       ret = dp_interface_get_etag(id, etag);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_etag_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char* url = "http://tizen.org";
+       ret = dp_interface_set_url(id, url);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_start(id);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       char *etag[PATH_LENGTH];
+       ret = dp_interface_get_etag(-1, etag);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_etag(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_temp_file_path_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *temp_path = "/opt/media";
+       ret = dp_interface_set_temp_file_path(id, temp_path);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_temp_file_path_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *temp_path = "/opt/media";
+       ret = dp_interface_set_temp_file_path(-1, temp_path);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_set_temp_file_path(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_add_http_header_field_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *field = "test";
+       const char *value = "test";
+       ret = dp_interface_add_http_header_field(id, field, value);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_add_http_header_field_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *field = "test";
+       const char *value = "test";
+       ret = dp_interface_add_http_header_field(-1, field, value);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_add_http_header_field(id, NULL, value);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_add_http_header_field(id, field, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_http_header_field_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *field = "test";
+       const char *value = "test";
+       ret = dp_interface_add_http_header_field(id, field, value);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       sleep(1);
+
+       char value_get[PATH_LENGTH];
+       ret = dp_interface_get_http_header_field(id, field, (char **)&value_get);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_http_header_field_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *field = "test";
+       char value[PATH_LENGTH];
+       ret = dp_interface_get_http_header_field(-1, field, (char **)&value);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_http_header_field(id, NULL, (char **)&value);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_http_header_field(id, field, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_http_header_field_list_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *field = "test";
+       const char *value = "test";
+       ret = dp_interface_add_http_header_field(id, field, value);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       sleep(1);
+
+       int length;
+       char fields[256][256];
+       ret = dp_interface_get_http_header_field_list(id, (char ***)&fields, &length);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_http_header_field_list_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_get_http_header_field_list(-1, NULL, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE),
+       ret = dp_interface_get_http_header_field_list(id, NULL, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_remove_http_header_field_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *field = "test";
+       const char *value = "test";
+       ret = dp_interface_add_http_header_field(id, field, value);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_remove_http_header_field(id, field);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_remove_http_header_field_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *field = "test";
+       const char *value = "test";
+       ret = dp_interface_add_http_header_field(id, field, value);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       ret = dp_interface_remove_http_header_field(-1, field);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_remove_http_header_field(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_notification_bundle_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int bundle_param = 0;
+       ret = dp_interface_set_notification_bundle(id, 0, (void *)&bundle_param);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_notification_bundle_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = dp_interface_set_notification_bundle(-1, 1, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_notification_bundle_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int bundle_param = 0;
+       ret = dp_interface_set_notification_bundle(id, 0, (void *)&bundle_param);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       sleep(1);
+
+       int data;
+       ret = dp_interface_get_notification_bundle(id, 0, (void **)&data);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_notification_bundle_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int bundle_param = 0;
+       ret = dp_interface_set_notification_bundle(id, 0, (void *)&bundle_param);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       sleep(1);
+
+       ret = dp_interface_get_notification_bundle(-1, 0, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_notification_service_handle_positive)
+{
+       int ret, id;
+       app_control_h app_h;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = app_control_create(&app_h);
+       EXPECT_EQ(ret, APP_CONTROL_ERROR_NONE);
+       const int type = 0;
+       ret = dp_interface_set_notification_service_handle(id, type, (void *)&app_h);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_notification_service_handle_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const int type = 0;
+       ret = dp_interface_set_notification_service_handle(-1, type, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_notification_service_handle_positive)
+{
+       int ret, id;
+       app_control_h app_h;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = app_control_create(&app_h);
+       EXPECT_EQ(ret, APP_CONTROL_ERROR_NONE);
+       const int type = 0;
+       ret = dp_interface_set_notification_service_handle(id, type, (void *)&app_h);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       app_control_h data;
+       ret = dp_interface_get_notification_service_handle(id, type, (void **)&data);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_notification_service_handle_negative)
+{
+       int ret, id;
+       app_control_h app_h;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       ret = app_control_create(&app_h);
+       EXPECT_EQ(ret, APP_CONTROL_ERROR_NONE);
+       const int type = 0;
+       ret = dp_interface_set_notification_service_handle(id, type, (void *)&app_h);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       app_control_h data;
+       ret = dp_interface_get_notification_service_handle(-1, type, (void **)&data);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_notification_service_handle(id, type, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_notification_title_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *title = "test";
+       ret = dp_interface_set_notification_title(id, title);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_notification_title_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *title = "test";
+       ret = dp_interface_set_notification_title(-1, title);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_set_notification_title(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_notification_title_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *title = "test";
+       ret = dp_interface_set_notification_title(id, title);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       char *get_title = (char *)malloc(sizeof(char)*256);
+       ret = dp_interface_get_notification_title(id, &get_title);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       free(get_title);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_notification_title_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *title = "test";
+       ret = dp_interface_set_notification_title(id, title);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       char *get_title = (char *)malloc(sizeof(char)*256);
+       ret = dp_interface_get_notification_title(-1, &get_title);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_notification_title(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       free(get_title);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_notification_description_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *desc = "test";
+       ret = dp_interface_set_notification_description(id, desc);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_notification_description_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *desc = "test";
+       ret = dp_interface_set_notification_description(-1, desc);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_set_notification_description(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_notification_description_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *desc = "test";
+       ret = dp_interface_set_notification_description(id, desc);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       char *get_desc = (char *)malloc(sizeof(char)*256);
+       ret = dp_interface_get_notification_description(id, &get_desc);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       free(get_desc);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_notification_description_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       const char *desc = "test";
+       ret = dp_interface_set_notification_description(id, desc);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       char *get_desc = (char *)malloc(sizeof(char)*256);
+       ret = dp_interface_get_notification_description(-1, &get_desc);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_notification_description(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       free(get_desc);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_notification_type_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int type = 1;
+       ret = dp_interface_set_notification_type(id, type);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_set_notification_type_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int type = 1;
+       ret = dp_interface_set_notification_type(-1, type);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_notification_type_positive)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int type = 1;
+       ret = dp_interface_set_notification_type(id, type);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       int get_type;
+       ret = dp_interface_get_notification_type(id, &get_type);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadProviderInterface, dp_interface_get_notification_type_negative)
+{
+       int ret, id;
+
+       ret = dp_interface_create(&id);
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+
+       int type = 1;
+       ret = dp_interface_set_notification_type(id, type);
+       EXPECT_EQ(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+
+       int get_type;
+       ret = dp_interface_get_notification_type(-1, &get_type);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       ret = dp_interface_get_notification_type(id, NULL);
+       EXPECT_NE(ret, DOWNLOAD_ADAPTOR_ERROR_NONE);
+       dp_interface_destroy(id);
+}
+
+TEST(DownloadAgentInterface, da_init_positive)
+{
+       int ret;
+
+       ret = da_init();
+       EXPECT_EQ(DOWNLOAD_ADAPTOR_ERROR_NONE, ret);
+}
+
+TEST(DownloadAgentInterface, da_deinit_positive)
+{
+       int ret;
+
+       ret = da_init();
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       ret = da_deinit();
+       EXPECT_EQ(DA_RESULT_OK, ret);
+}
+
+TEST(DownloadAgentInterface, da_start_download_positive)
+{
+       int ret;
+
+       ret = da_init();
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       int d_id;
+       req_data_t data;
+       memset(&data, 0, sizeof(req_data_t));
+       ret = da_start_download("http://tizen.org", &data, NULL, &d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+}
+
+TEST(DownloadAgentInterface, da_start_download_negative)
+{
+       int ret;
+       ret = da_start_download(NULL, NULL, NULL, NULL);
+       EXPECT_NE(DA_RESULT_OK, ret);
+}
+
+TEST(DownloadAgentInterface, da_cancel_download_positive)
+{
+       int ret;
+
+       ret = da_init();
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       int d_id;
+       req_data_t data;
+       memset(&data, 0, sizeof(req_data_t));
+       ret = da_start_download("http://tizen.org", &data, NULL, &d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+       sleep(1);
+       ret = da_cancel_download(d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+}
+
+TEST(DownloadAgentInterface, da_cancel_download_negative)
+{
+       int ret;
+       ret = da_cancel_download(-1);
+       EXPECT_NE(DA_RESULT_OK, ret);
+}
+
+TEST(DownloadAgentInterface, da_cancel_download_without_update_positive)
+{
+       int ret;
+
+       ret = da_init();
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       int d_id;
+       req_data_t data;
+       memset(&data, 0, sizeof(req_data_t));
+       ret = da_start_download("http://tizen.org", &data, NULL, &d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       sleep(1);
+       ret = da_cancel_download_without_update(d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+}
+
+TEST(DownloadAgentInterface, da_cancel_download_without_update_negative)
+{
+       int ret;
+       ret = da_cancel_download_without_update(-1);
+       EXPECT_NE(DA_RESULT_OK, ret);
+}
+
+TEST(DownloadAgentInterface, da_suspend_download_positive)
+{
+       int ret;
+
+       ret = da_init();
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       int d_id;
+       req_data_t data;
+       memset(&data, 0, sizeof(req_data_t));
+       ret = da_start_download("http://tizen.org", &data, NULL, &d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       sleep(1);
+       ret = da_suspend_download(d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+}
+
+TEST(DownloadAgentInterface, da_suspend_download_negative)
+{
+       int ret;
+       ret = da_suspend_download(-1);
+       EXPECT_NE(DA_RESULT_OK, ret);
+}
+
+TEST(DownloadAgentInterface, da_suspend_download_without_update_positive)
+{
+       int ret;
+
+       ret = da_init();
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       int d_id;
+       req_data_t data;
+       memset(&data, 0, sizeof(req_data_t));
+       ret = da_start_download("http://tizen.org", &data, NULL, &d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       sleep(1);
+       ret = da_suspend_download_without_update(d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+}
+
+TEST(DownloadAgentInterface, da_suspend_download_without_update_negative)
+{
+       int ret;
+
+       ret = da_suspend_download_without_update(-1);
+       EXPECT_NE(DA_RESULT_OK, ret);
+}
+
+TEST(DownloadAgentInterface, da_resume_download_positive)
+{
+       int ret;
+
+       ret = da_init();
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       int d_id;
+       req_data_t data;
+       memset(&data, 0, sizeof(req_data_t));
+       ret = da_start_download("http://tizen.org", &data, NULL, &d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       sleep(1);
+       ret = da_suspend_download(d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+       sleep(1);
+       ret = da_resume_download(d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+}
+
+TEST(DownloadAgentInterface, da_resume_download_negative)
+{
+       int ret;
+       ret = da_resume_download(-1);
+       EXPECT_NE(DA_RESULT_OK, ret);
+}
+
+TEST(DownloadAgentInterface, da_is_valid_download_id_positive)
+{
+       int ret;
+
+       ret = da_init();
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       int d_id;
+       req_data_t data;
+       memset(&data, 0, sizeof(req_data_t));
+       ret = da_start_download("http://tizen.org", &data, NULL, &d_id);
+       EXPECT_EQ(DA_RESULT_OK, ret);
+
+       ret = da_is_valid_download_id(d_id);
+       EXPECT_EQ(DA_TRUE, ret);
+}
+
+TEST(DownloadAgentInterface, da_is_valid_download_id_negative)
+{
+       int ret;
+       ret = da_is_valid_download_id(-1);
+       EXPECT_NE(DA_TRUE, ret);
+}
+
+
+int main(int argc, char **argv)
+{
+       InitGoogleTest(&argc, argv);
+       return RUN_ALL_TESTS();
+}
+