From 4afdb8185c507838f2fba6d4b480e167f8755640 Mon Sep 17 00:00:00 2001 From: Abhishek Sansanwal Date: Thu, 10 May 2018 15:18:38 +0530 Subject: [PATCH] Added initial code for Gtest Signed-off-by: Abhishek Sansanwal Change-Id: Id10409cd1c23c24d7b7d686d12d162d92d55a31f --- CMakeLists.txt | 12 + agent/CMakeLists.txt | 8 +- agent/download-agent-interface.c | 2 + download-agent.pc.in | 6 + packaging/download-provider.spec | 18 + provider-interface/CMakeLists.txt | 12 +- provider-interface/download-provider-interface.c | 10 +- provider/CMakeLists.txt | 12 +- provider/download-provider-client-manager.c | 4 + provider/download-provider-main.c | 11 + unittest/CMakeLists.txt | 38 + unittest/unittest.cpp | 1657 ++++++++++++++++++++++ 12 files changed, 1786 insertions(+), 4 deletions(-) create mode 100644 download-agent.pc.in create mode 100644 unittest/CMakeLists.txt create mode 100644 unittest/unittest.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index b36d252..fb3a526 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/agent/CMakeLists.txt b/agent/CMakeLists.txt index 1915623..a6f7983 100755 --- a/agent/CMakeLists.txt +++ b/agent/CMakeLists.txt @@ -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}) diff --git a/agent/download-agent-interface.c b/agent/download-agent-interface.c index 5f54265..7a844f0 100755 --- a/agent/download-agent-interface.c +++ b/agent/download-agent-interface.c @@ -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 index 0000000..f3064ac --- /dev/null +++ b/download-agent.pc.in @@ -0,0 +1,6 @@ +# Package Information + +Name: @PROJECT_NAME@ +Description: @PACKAGE_DESCRIPTION@ +Version: @VERSION@ +Cflags: -I/usr/include/downloadagent2 diff --git a/packaging/download-provider.spec b/packaging/download-provider.spec index 62f081c..2e44a0d 100755 --- a/packaging/download-provider.spec +++ b/packaging/download-provider.spec @@ -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 diff --git a/provider-interface/CMakeLists.txt b/provider-interface/CMakeLists.txt index a20b7dd..1d7f539 100755 --- a/provider-interface/CMakeLists.txt +++ b/provider-interface/CMakeLists.txt @@ -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") diff --git a/provider-interface/download-provider-interface.c b/provider-interface/download-provider-interface.c index c03ff17..5ba1c60 100755 --- a/provider-interface/download-provider-interface.c +++ b/provider-interface/download-provider-interface.c @@ -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) { diff --git a/provider/CMakeLists.txt b/provider/CMakeLists.txt index 167e042..91e6329 100755 --- a/provider/CMakeLists.txt +++ b/provider/CMakeLists.txt @@ -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") diff --git a/provider/download-provider-client-manager.c b/provider/download-provider-client-manager.c index 3c17de0..022a59d 100755 --- a/provider/download-provider-client-manager.c +++ b/provider/download-provider-client-manager.c @@ -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); diff --git a/provider/download-provider-main.c b/provider/download-provider-main.c index 9916be5..6e14414 100755 --- a/provider/download-provider-main.c +++ b/provider/download-provider-main.c @@ -31,6 +31,10 @@ 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 index 0000000..227470b --- /dev/null +++ b/unittest/CMakeLists.txt @@ -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 index 0000000..faa0dcf --- /dev/null +++ b/unittest/unittest.cpp @@ -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 +#include +#include +#include +#include + +#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(); +} + -- 2.7.4