/* * Copyright (C) 2013 Cisco Systems, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Red istributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND ITS CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * HOLDERS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "config.h" #include "UnitTestUtils/EWKTestBase.h" #include "UnitTestUtils/EWKTestConfig.h" #include using namespace EWKUnitTests; /** * @brief Unit test for checking set/get of default quota for Web Database databases by ewk settings API. */ TEST_F(EWKTestBase, ewk_settings_web_database_default_quota) { ASSERT_EQ(1 * 1024 * 1024, ewk_settings_web_database_default_quota_get()); ewk_settings_web_database_default_quota_set(2 * 1024 * 1024); ASSERT_EQ(2 * 1024 * 1024, ewk_settings_web_database_default_quota_get()); ewk_settings_web_database_default_quota_set(3 * 1024 * 1024); ASSERT_EQ(3 * 1024 * 1024, ewk_settings_web_database_default_quota_get()); } /** * @brief Unit test for checking set/get of directory path where Web Database databases is stored by ewk settings API. */ TEST_F(EWKTestBase, ewk_settings_web_database_path) { char* homePath = getenv("HOME"); char* defaultPath = reinterpret_cast(malloc(strlen(homePath) + strlen("/.cache/WebKitEfl/Databases") + 1)); #if ENABLE(SQL_DATABASE) strncpy(defaultPath, homePath, strlen(homePath) + 1); ASSERT_STREQ(strcat(defaultPath, "/.cache/WebKitEfl/Databases"), ewk_settings_web_database_path_get()); #else ASSERT_STREQ(0, ewk_settings_web_database_path_get()); #endif free(defaultPath); ewk_settings_web_database_path_set("~/data/webkitDB"); #if ENABLE(SQL_DATABASE) ASSERT_STREQ("~/data/webkitDB", ewk_settings_web_database_path_get()); #else ASSERT_STREQ(0, ewk_settings_web_database_path_get()); #endif ewk_settings_web_database_path_set("~/tmp/webkit"); #if ENABLE(SQL_DATABASE) ASSERT_STREQ("~/tmp/webkit", ewk_settings_web_database_path_get()); #else ASSERT_STREQ(0, ewk_settings_web_database_path_get()); #endif } /** * @brief Unit test for checking set/get of directory path where the HTML5 local storage indexing database is stored by ewk settings API. */ TEST_F(EWKTestBase, ewk_settings_local_storage_path) { char* homePath = getenv("HOME"); char* defaultPath = reinterpret_cast(malloc(strlen(homePath) + strlen("/.local/share/WebKitEfl/LocalStorage") + 1)); strncpy(defaultPath, homePath, strlen(homePath) + 1); ASSERT_STREQ(strcat(defaultPath, "/.local/share/WebKitEfl/LocalStorage"), ewk_settings_local_storage_path_get()); free(defaultPath); ewk_settings_local_storage_path_set("~/data/webkitDB"); ASSERT_STREQ("~/data/webkitDB", ewk_settings_local_storage_path_get()); ewk_settings_local_storage_path_set("~/tmp/webkit"); ASSERT_STREQ("~/tmp/webkit", ewk_settings_local_storage_path_get()); } /** * @brief Unit test for checking set/get of directory path where icon database is stored by ewk settings API. */ TEST_F(EWKTestBase, ewk_settings_icon_database_path) { ASSERT_STREQ(0, ewk_settings_icon_database_path_get()); ASSERT_TRUE(ewk_settings_icon_database_path_set("/tmp")); ASSERT_STREQ("/tmp", ewk_settings_icon_database_path_get()); ASSERT_TRUE(ewk_settings_icon_database_path_set(0)); ASSERT_STREQ(0, ewk_settings_icon_database_path_get()); } /** * @brief Unit test for checking set/get of path where the HTML5 application cache is stored by ewk settings API. */ TEST_F(EWKTestBase, ewk_settings_application_cache_path) { char* homePath = getenv("HOME"); char* defaultPath = reinterpret_cast(malloc(strlen(homePath) + strlen("/.cache/WebKitEfl/Applications") + 1)); strncpy(defaultPath, homePath, strlen(homePath) + 1); ASSERT_STREQ(strcat(defaultPath, "/.cache/WebKitEfl/Applications"), ewk_settings_application_cache_path_get()); free(defaultPath); ewk_settings_application_cache_path_set("~/data/webkitApp"); ASSERT_STREQ("~/data/webkitApp", ewk_settings_application_cache_path_get()); ewk_settings_application_cache_path_set("~/tmp/webkitApp"); ASSERT_STREQ("~/tmp/webkitApp", ewk_settings_application_cache_path_get()); } /** * @brief Unit test for checking set/get of maximum size of the application cache for HTML5 Offline Web Applications by ewk settings API. */ TEST_F(EWKTestBase, ewk_settings_application_cache_max_quota) { ASSERT_EQ(std::numeric_limits::max(), ewk_settings_application_cache_max_quota_get()); ewk_settings_application_cache_max_quota_set(3 * 1024 * 1024); ASSERT_EQ(3 * 1024 * 1024, ewk_settings_application_cache_max_quota_get()); ewk_settings_application_cache_max_quota_set(5 * 1024 * 1024); ASSERT_EQ(5 * 1024 * 1024, ewk_settings_application_cache_max_quota_get()); } /** * @brief Unit test for checking set/get of in-memory object cache Enables/Disables status by ewk settings API. */ TEST_F(EWKTestBase, ewk_settings_object_cache_enable) { ASSERT_TRUE(ewk_settings_object_cache_enable_get()); ewk_settings_object_cache_enable_set(false); ASSERT_FALSE(ewk_settings_object_cache_enable_get()); ewk_settings_object_cache_enable_set(true); ASSERT_TRUE(ewk_settings_object_cache_enable_get()); } /** * @brief Unit test for checking set/get of maximum number of pages in the memory page cache by ewk settings API. */ TEST_F(EWKTestBase, ewk_settings_page_cache_capacity) { ASSERT_EQ(3, ewk_settings_page_cache_capacity_get()); ewk_settings_page_cache_capacity_set(5); ASSERT_EQ(5, ewk_settings_page_cache_capacity_get()); } /** * @brief Unit test for checking set/get of css media type by ewk settings API. */ TEST_F(EWKTestBase, ewk_settings_css_media_type) { ASSERT_STREQ(0, ewk_settings_css_media_type_get()); ewk_settings_css_media_type_set("handheld"); ASSERT_STREQ("handheld", ewk_settings_css_media_type_get()); ewk_settings_css_media_type_set("tv"); ASSERT_STREQ("tv", ewk_settings_css_media_type_get()); ewk_settings_css_media_type_set("screen"); ASSERT_STREQ("screen", ewk_settings_css_media_type_get()); ewk_settings_css_media_type_set(0); ASSERT_STREQ(0, ewk_settings_css_media_type_get()); }