blob: 5398964ddfc1d8c764f39f68edf613b4a54d344e [file] [log] [blame]
/*
* 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 <EWebKit.h>
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<char*>(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<char*>(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<char*>(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<int64_t>::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());
}