1/* 2 * Copyright (C) 2012 Samsung Electronics 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 23 * THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26#include "config.h" 27 28#include "UnitTestUtils/EWK2UnitTestBase.h" 29 30using namespace EWK2UnitTest; 31 32extern EWK2UnitTestEnvironment* environment; 33 34TEST_F(EWK2UnitTestBase, ewk_settings_fullscreen_enabled) 35{ 36 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 37 38#if ENABLE(FULLSCREEN_API) 39 ASSERT_TRUE(ewk_settings_fullscreen_enabled_get(settings)); 40 41 ASSERT_TRUE(ewk_settings_fullscreen_enabled_set(settings, EINA_TRUE)); 42 ASSERT_TRUE(ewk_settings_fullscreen_enabled_get(settings)); 43 44 ASSERT_TRUE(ewk_settings_fullscreen_enabled_set(settings, EINA_FALSE)); 45 ASSERT_FALSE(ewk_settings_fullscreen_enabled_get(settings)); 46#else 47 ASSERT_FALSE(ewk_settings_fullscreen_enabled_get(settings)); 48 49 ASSERT_FALSE(ewk_settings_fullscreen_enabled_set(settings, EINA_TRUE)); 50 ASSERT_FALSE(ewk_settings_fullscreen_enabled_get(settings)); 51 52 ASSERT_FALSE(ewk_settings_fullscreen_enabled_set(settings, EINA_FALSE)); 53 ASSERT_FALSE(ewk_settings_fullscreen_enabled_get(settings)); 54#endif 55} 56 57TEST_F(EWK2UnitTestBase, ewk_settings_javascript_enabled) 58{ 59 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 60 61 ASSERT_TRUE(ewk_settings_javascript_enabled_set(settings, EINA_TRUE)); 62 ASSERT_TRUE(ewk_settings_javascript_enabled_get(settings)); 63 64 ASSERT_TRUE(ewk_settings_javascript_enabled_set(settings, 2)); 65 ASSERT_TRUE(ewk_settings_javascript_enabled_get(settings)); 66 67 ASSERT_TRUE(ewk_settings_javascript_enabled_set(settings, EINA_FALSE)); 68 ASSERT_FALSE(ewk_settings_javascript_enabled_get(settings)); 69} 70 71TEST_F(EWK2UnitTestBase, ewk_settings_loads_images_automatically) 72{ 73 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 74 75 ASSERT_TRUE(ewk_settings_loads_images_automatically_set(settings, EINA_TRUE)); 76 ASSERT_TRUE(ewk_settings_loads_images_automatically_get(settings)); 77 78 ASSERT_TRUE(ewk_settings_loads_images_automatically_set(settings, 2)); 79 ASSERT_TRUE(ewk_settings_loads_images_automatically_get(settings)); 80 81 ASSERT_TRUE(ewk_settings_loads_images_automatically_set(settings, EINA_FALSE)); 82 ASSERT_FALSE(ewk_settings_loads_images_automatically_get(settings)); 83} 84 85TEST_F(EWK2UnitTestBase, ewk_settings_developer_extras_enabled) 86{ 87 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 88 89 ASSERT_TRUE(ewk_settings_developer_extras_enabled_set(settings, EINA_TRUE)); 90 ASSERT_TRUE(ewk_settings_developer_extras_enabled_get(settings)); 91 92 ASSERT_TRUE(ewk_settings_developer_extras_enabled_set(settings, 2)); 93 ASSERT_TRUE(ewk_settings_developer_extras_enabled_get(settings)); 94 95 ASSERT_TRUE(ewk_settings_developer_extras_enabled_set(settings, EINA_FALSE)); 96 ASSERT_FALSE(ewk_settings_developer_extras_enabled_get(settings)); 97} 98 99TEST_F(EWK2UnitTestBase, ewk_settings_file_access_from_file_urls_allowed) 100{ 101 CString testURL = environment->urlForResource("local_file_access.html"); 102 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 103 104 ASSERT_FALSE(ewk_settings_file_access_from_file_urls_allowed_get(settings)); 105 106 ASSERT_TRUE(ewk_settings_file_access_from_file_urls_allowed_set(settings, true)); 107 ASSERT_TRUE(ewk_settings_file_access_from_file_urls_allowed_get(settings)); 108 109 // Check that file access from file:// URLs is allowed. 110 ewk_view_url_set(webView(), testURL.data()); 111 ASSERT_TRUE(waitUntilTitleChangedTo("Frame loaded")); 112 113 ASSERT_TRUE(ewk_settings_file_access_from_file_urls_allowed_set(settings, false)); 114 ASSERT_FALSE(ewk_settings_file_access_from_file_urls_allowed_get(settings)); 115 116 // Check that file access from file:// URLs is NOT allowed. 117 ewk_view_url_set(webView(), testURL.data()); 118 ASSERT_TRUE(waitUntilTitleChangedTo("Frame NOT loaded")); 119} 120 121TEST_F(EWK2UnitTestBase, ewk_settings_frame_flattening_enabled_set) 122{ 123 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 124 ASSERT_TRUE(settings); 125 126 // The frame flattening is disabled by default. 127 ASSERT_FALSE(ewk_settings_frame_flattening_enabled_get(settings)); 128 ewk_view_url_set(webView(), environment->urlForResource("frame_flattening_test.html").data()); 129 waitUntilTitleChangedTo("200"); // width of iframe tag. 130 ASSERT_STREQ("200", ewk_view_title_get(webView())); 131 132 ASSERT_TRUE(ewk_settings_frame_flattening_enabled_set(settings, true)); 133 ASSERT_TRUE(ewk_settings_frame_flattening_enabled_get(settings)); 134 ewk_view_url_set(webView(), environment->urlForResource("frame_flattening_test.html").data()); 135 waitUntilTitleChangedTo("600"); // width of frame_flattening_test_subframe.html 136 ASSERT_STREQ("600", ewk_view_title_get(webView())); 137 138 ASSERT_TRUE(ewk_settings_frame_flattening_enabled_set(settings, false)); 139 ASSERT_FALSE(ewk_settings_frame_flattening_enabled_get(settings)); 140 ewk_view_url_set(webView(), environment->urlForResource("frame_flattening_test.html").data()); 141 waitUntilTitleChangedTo("200"); // width of iframe tag. 142 ASSERT_STREQ("200", ewk_view_title_get(webView())); 143} 144 145TEST_F(EWK2UnitTestBase, ewk_settings_dns_prefetching_enabled) 146{ 147 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 148 149 // DNS prefeching is disabled by default. 150 ASSERT_FALSE(ewk_settings_dns_prefetching_enabled_get(settings)); 151 ASSERT_TRUE(ewk_settings_dns_prefetching_enabled_set(settings, true)); 152 ASSERT_TRUE(ewk_settings_dns_prefetching_enabled_get(settings)); 153 154 ASSERT_TRUE(ewk_settings_dns_prefetching_enabled_set(settings, false)); 155 ASSERT_FALSE(ewk_settings_dns_prefetching_enabled_get(settings)); 156} 157 158TEST_F(EWK2UnitTestBase, ewk_settings_encoding_detector_enabled) 159{ 160 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 161 162 // The encoding detector is disabled by default. 163 ASSERT_FALSE(ewk_settings_encoding_detector_enabled_get(settings)); 164 165 ASSERT_TRUE(ewk_settings_encoding_detector_enabled_set(settings, true)); 166 ASSERT_TRUE(ewk_settings_encoding_detector_enabled_get(settings)); 167 168 ASSERT_TRUE(ewk_settings_encoding_detector_enabled_set(settings, false)); 169 ASSERT_FALSE(ewk_settings_encoding_detector_enabled_get(settings)); 170} 171 172TEST_F(EWK2UnitTestBase, ewk_settings_default_text_encoding_name) 173{ 174 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 175 176 // The default encoding name is ISO-8859-1. 177 ASSERT_STREQ("ISO-8859-1", ewk_settings_default_text_encoding_name_get(settings)); 178 179 ASSERT_TRUE(ewk_settings_default_text_encoding_name_set(settings, "UTF-8")); 180 ASSERT_STREQ("UTF-8", ewk_settings_default_text_encoding_name_get(settings)); 181 182 ASSERT_TRUE(ewk_settings_default_text_encoding_name_set(settings, "ISO-8859-1")); 183 ASSERT_STREQ("ISO-8859-1", ewk_settings_default_text_encoding_name_get(settings)); 184} 185 186TEST_F(EWK2UnitTestBase, ewk_settings_preferred_minimum_contents_width) 187{ 188 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 189 190 // 980 by default. 191 ASSERT_EQ(980, ewk_settings_preferred_minimum_contents_width_get(settings)); 192 193 ASSERT_TRUE(ewk_settings_preferred_minimum_contents_width_set(settings, 0)); 194 ASSERT_EQ(0, ewk_settings_preferred_minimum_contents_width_get(settings)); 195} 196 197TEST_F(EWK2UnitTestBase, ewk_settings_offline_web_application_cache_enabled) 198{ 199 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 200 201 // The offline web application cache is enabled by default. 202 ASSERT_TRUE(ewk_settings_offline_web_application_cache_enabled_get(settings)); 203 204 ASSERT_TRUE(ewk_settings_offline_web_application_cache_enabled_set(settings, true)); 205 ASSERT_TRUE(ewk_settings_offline_web_application_cache_enabled_get(settings)); 206 207 ASSERT_TRUE(ewk_settings_offline_web_application_cache_enabled_set(settings, false)); 208 ASSERT_FALSE(ewk_settings_offline_web_application_cache_enabled_get(settings)); 209} 210 211TEST_F(EWK2UnitTestBase, ewk_settings_scripts_can_open_windows) 212{ 213 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 214 215 // The scripts can open new windows by default. 216 ASSERT_TRUE(ewk_settings_scripts_can_open_windows_get(settings)); 217 218 ASSERT_TRUE(ewk_settings_scripts_can_open_windows_set(settings, true)); 219 ASSERT_TRUE(ewk_settings_scripts_can_open_windows_get(settings)); 220 221 ASSERT_TRUE(ewk_settings_scripts_can_open_windows_set(settings, false)); 222 ASSERT_FALSE(ewk_settings_scripts_can_open_windows_get(settings)); 223} 224 225TEST_F(EWK2UnitTestBase, ewk_settings_local_storage_enabled) 226{ 227 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 228 229 // HTML5 local storage should be enabled by default. 230 ASSERT_TRUE(ewk_settings_local_storage_enabled_get(settings)); 231 232 ASSERT_TRUE(ewk_settings_local_storage_enabled_set(settings, false)); 233 ASSERT_FALSE(ewk_settings_local_storage_enabled_get(settings)); 234 235 ASSERT_TRUE(ewk_settings_local_storage_enabled_set(settings, true)); 236 ASSERT_TRUE(ewk_settings_local_storage_enabled_get(settings)); 237} 238 239TEST_F(EWK2UnitTestBase, ewk_settings_plugins_enabled) 240{ 241 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 242 243 // Plug-ins support is enabled by default. 244 ASSERT_TRUE(ewk_settings_plugins_enabled_get(settings)); 245 246 ASSERT_TRUE(ewk_settings_plugins_enabled_set(settings, true)); 247 ASSERT_TRUE(ewk_settings_plugins_enabled_get(settings)); 248 249 ASSERT_TRUE(ewk_settings_plugins_enabled_set(settings, false)); 250 ASSERT_FALSE(ewk_settings_plugins_enabled_get(settings)); 251} 252 253TEST_F(EWK2UnitTestBase, ewk_settings_default_font_size) 254{ 255 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 256 257 // 16 by default. 258 ASSERT_EQ(16, ewk_settings_default_font_size_get(settings)); 259 260 ASSERT_TRUE(ewk_settings_default_font_size_set(settings, 10)); 261 ASSERT_EQ(10, ewk_settings_default_font_size_get(settings)); 262 263 ASSERT_TRUE(ewk_settings_default_font_size_set(settings, 20)); 264 ASSERT_EQ(20, ewk_settings_default_font_size_get(settings)); 265} 266 267TEST_F(EWK2UnitTestBase, ewk_settings_private_browsing_enabled) 268{ 269 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 270 271 // Private browsing is disabled by default. 272 ASSERT_FALSE(ewk_settings_private_browsing_enabled_get(settings)); 273 274 ASSERT_TRUE(ewk_settings_private_browsing_enabled_set(settings, true)); 275 ASSERT_TRUE(ewk_settings_private_browsing_enabled_get(settings)); 276 277 ASSERT_TRUE(ewk_settings_private_browsing_enabled_set(settings, false)); 278 ASSERT_FALSE(ewk_settings_private_browsing_enabled_get(settings)); 279} 280 281TEST_F(EWK2UnitTestBase, ewk_settings_text_autosizing_enabled) 282{ 283 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 284 285#if ENABLE(TEXT_AUTOSIZING) 286 // Text autosizing should be disabled by default. 287 ASSERT_FALSE(ewk_settings_text_autosizing_enabled_get(settings)); 288 289 ASSERT_TRUE(ewk_settings_text_autosizing_enabled_set(settings, false)); 290 ASSERT_FALSE(ewk_settings_text_autosizing_enabled_get(settings)); 291 292 ASSERT_TRUE(ewk_settings_text_autosizing_enabled_set(settings, true)); 293 ASSERT_TRUE(ewk_settings_text_autosizing_enabled_get(settings)); 294#else 295 ASSERT_FALSE(ewk_settings_text_autosizing_enabled_get(settings)); 296 297 ASSERT_FALSE(ewk_settings_text_autosizing_enabled_set(settings, false)); 298 ASSERT_FALSE(ewk_settings_text_autosizing_enabled_get(settings)); 299 300 ASSERT_FALSE(ewk_settings_text_autosizing_enabled_set(settings, true)); 301 ASSERT_FALSE(ewk_settings_text_autosizing_enabled_get(settings)); 302#endif 303} 304 305TEST_F(EWK2UnitTestBase, ewk_settings_web_security_enabled) 306{ 307 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 308 309 // Web security should be enabled by default. 310 ASSERT_TRUE(ewk_settings_web_security_enabled_get(settings)); 311 312 ASSERT_TRUE(ewk_settings_web_security_enabled_set(settings, false)); 313 ASSERT_FALSE(ewk_settings_web_security_enabled_get(settings)); 314 315 ASSERT_TRUE(ewk_settings_web_security_enabled_set(settings, true)); 316 ASSERT_TRUE(ewk_settings_web_security_enabled_get(settings)); 317} 318 319TEST_F(EWK2UnitTestBase, ewk_settings_spatial_navigation_enabled) 320{ 321 Ewk_Settings* settings = ewk_page_group_settings_get(ewk_view_page_group_get(webView())); 322 323 // Spatial navigation is disabled by default. 324 ASSERT_FALSE(ewk_settings_spatial_navigation_enabled_get(settings)); 325 326 ASSERT_TRUE(ewk_settings_spatial_navigation_enabled_set(settings, true)); 327 ASSERT_TRUE(ewk_settings_spatial_navigation_enabled_get(settings)); 328 329 ASSERT_TRUE(ewk_settings_spatial_navigation_enabled_set(settings, false)); 330 ASSERT_FALSE(ewk_settings_spatial_navigation_enabled_get(settings)); 331} 332