2 * Copyright (c) 2020 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
21 #include <dali-toolkit-test-suite-utils.h>
22 #include "dali-toolkit-test-utils/toolkit-timer.h"
25 #include <dali/integration-api/events/key-event-integ.h>
26 #include <dali/integration-api/events/touch-event-integ.h>
27 #include <dali/public-api/images/pixel-data.h>
28 #include <dali-toolkit/public-api/controls/image-view/image-view.h>
29 #include <dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h>
30 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list.h>
31 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list-item.h>
32 #include <dali-toolkit/devel-api/controls/web-view/web-context.h>
33 #include <dali-toolkit/devel-api/controls/web-view/web-cookie-manager.h>
34 #include <dali-toolkit/devel-api/controls/web-view/web-settings.h>
35 #include <dali-toolkit/devel-api/controls/web-view/web-view.h>
38 using namespace Toolkit;
43 const char* const TEST_URL1( "http://www.somewhere.valid1.com" );
44 const char* const TEST_URL2( "http://www.somewhere.valid2.com" );
46 static int gPageLoadStartedCallbackCalled = 0;
47 static int gPageLoadInProgressCallbackCalled = 0;
48 static int gPageLoadFinishedCallbackCalled = 0;
49 static int gScrollEdgeReachedCallbackCalled = 0;
50 static int gUrlChangedCallbackCalled = 0;
51 static int gEvaluateJavaScriptCallbackCalled = 0;
52 static int gJavaScriptAlertCallbackCalled = 0;
53 static int gJavaScriptConfirmCallbackCalled = 0;
54 static int gJavaScriptPromptCallbackCalled = 0;
55 static bool gTouched = false;
57 struct CallbackFunctor
59 CallbackFunctor(bool* callbackFlag)
60 : mCallbackFlag( callbackFlag )
66 *mCallbackFlag = true;
71 static void OnPageLoadStarted( WebView view, const std::string& url )
73 gPageLoadStartedCallbackCalled++;
76 static void OnPageLoadInProgress( WebView view, const std::string& url )
78 gPageLoadInProgressCallbackCalled++;
81 static void OnPageLoadFinished( WebView view, const std::string& url )
83 gPageLoadFinishedCallbackCalled++;
86 static void OnScrollEdgeReached( WebView view, Dali::WebEnginePlugin::ScrollEdge edge )
88 gScrollEdgeReachedCallbackCalled++;
91 static void OnUrlChanged( WebView view, const std::string& url )
93 gUrlChangedCallbackCalled++;
96 static void OnPageLoadError( WebView view, const std::string& url, WebView::LoadErrorCode errorCode )
100 static void OnEvaluateJavaScript( const std::string& result )
102 gEvaluateJavaScriptCallbackCalled++;
105 static bool OnJavaScriptAlert( const std::string& result )
107 gJavaScriptAlertCallbackCalled++;
111 static bool OnJavaScriptConfirm( const std::string& result )
113 gJavaScriptConfirmCallbackCalled++;
117 static bool OnJavaScriptPrompt( const std::string& meesage1, const std::string& message2 )
119 gJavaScriptPromptCallbackCalled++;
123 static bool OnTouched( Actor actor, const Dali::TouchEvent& touch )
131 void web_view_startup(void)
133 test_return_value = TET_UNDEF;
136 void web_view_cleanup(void)
138 test_return_value = TET_PASS;
141 int UtcDaliWebViewBasics(void)
143 ToolkitTestApplication application;
145 // Copy and Assignment Test
146 tet_infoline( "UtcDaliWebViewBasic Copy and Assignment Test" );
147 WebView view = WebView::New();
148 DALI_TEST_CHECK( view );
150 WebView copy( view );
151 DALI_TEST_CHECK( view == copy );
154 DALI_TEST_CHECK( !assign );
157 DALI_TEST_CHECK( assign == view );
161 tet_infoline( "UtcDaliWebViewBasic DownCast Test" );
162 BaseHandle handle(view);
164 WebView view2 = WebView::DownCast( handle );
165 DALI_TEST_CHECK( view );
166 DALI_TEST_CHECK( view2 );
167 DALI_TEST_CHECK( view == view2 );
171 tet_infoline( "UtcDaliWebViewBasic TypeRegistry Test" );
172 TypeRegistry typeRegistry = TypeRegistry::Get();
173 DALI_TEST_CHECK( typeRegistry );
175 TypeInfo typeInfo = typeRegistry.GetTypeInfo( "WebView" );
176 DALI_TEST_CHECK( typeInfo );
178 BaseHandle handle2 = typeInfo.CreateInstance();
179 DALI_TEST_CHECK( handle2 );
181 WebView view3 = WebView::DownCast( handle2 );
182 DALI_TEST_CHECK( view3 );
187 int UtcDaliWebViewPageNavigation(void)
189 ToolkitTestApplication application;
191 WebView view = WebView::New();
192 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
193 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
194 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
195 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
196 application.GetScene().Add( view );
197 application.SendNotification();
198 application.Render();
199 DALI_TEST_CHECK( view );
201 ConnectionTracker* testTracker = new ConnectionTracker();
202 view.PageLoadStartedSignal().Connect( &OnPageLoadStarted );
203 view.PageLoadInProgressSignal().Connect( &OnPageLoadInProgress );
204 view.PageLoadFinishedSignal().Connect( &OnPageLoadFinished );
205 view.PageLoadErrorSignal().Connect( &OnPageLoadError );
206 view.UrlChangedSignal().Connect( &OnUrlChanged );
207 bool signal1 = false;
208 bool signal2 = false;
209 bool signal3 = false;
210 bool signal4 = false;
211 bool signal5 = false;
212 view.ConnectSignal( testTracker, "pageLoadStarted", CallbackFunctor(&signal1) );
213 view.ConnectSignal( testTracker, "pageLoadInProgress", CallbackFunctor(&signal2) );
214 view.ConnectSignal( testTracker, "pageLoadFinished", CallbackFunctor(&signal3) );
215 view.ConnectSignal( testTracker, "urlChanged", CallbackFunctor(&signal4) );
216 view.ConnectSignal( testTracker, "invalidname", CallbackFunctor(&signal5) );
217 DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 0, TEST_LOCATION );
218 DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 0, TEST_LOCATION );
219 DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 0, TEST_LOCATION );
220 DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 0, TEST_LOCATION );
222 view.LoadUrl( TEST_URL1 );
223 view.GetNaturalSize();
224 Test::EmitGlobalTimerSignal();
225 DALI_TEST_EQUALS( view.CanGoBack(), false, TEST_LOCATION );
226 DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 1, TEST_LOCATION );
227 DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 1, TEST_LOCATION );
228 DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 1, TEST_LOCATION );
229 DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 1, TEST_LOCATION );
230 DALI_TEST_CHECK( signal1 & signal2 & signal3 & signal4 );
231 DALI_TEST_CHECK( !signal5 );
233 view.LoadUrl( TEST_URL2 );
235 view.SetProperty( Actor::Property::SIZE, Vector2( 400, 300 ) );
236 application.SendNotification();
237 application.Render();
238 Test::EmitGlobalTimerSignal();
240 DALI_TEST_EQUALS( view.CanGoBack(), true, TEST_LOCATION );
241 DALI_TEST_EQUALS( view.CanGoForward(), false, TEST_LOCATION );
242 DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 2, TEST_LOCATION );
243 DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 2, TEST_LOCATION );
244 DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 2, TEST_LOCATION );
245 DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 2, TEST_LOCATION );
248 Test::EmitGlobalTimerSignal();
249 DALI_TEST_CHECK( !view.CanGoBack() );
250 DALI_TEST_CHECK( view.CanGoForward() );
253 Test::EmitGlobalTimerSignal();
254 DALI_TEST_CHECK( view.CanGoBack() );
255 DALI_TEST_CHECK( !view.CanGoForward() );
260 Test::EmitGlobalTimerSignal();
261 DALI_TEST_CHECK( !view.CanGoBack() );
262 DALI_TEST_CHECK( !view.CanGoForward() );
267 int UtcDaliWebViewTouchAndKeys(void)
269 ToolkitTestApplication application;
271 WebView view = WebView::New();
272 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
273 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
274 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
275 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
277 application.GetScene().Add( view );
278 application.SendNotification();
279 application.Render();
281 view.GetNaturalSize();
282 view.TouchedSignal().Connect( &OnTouched );
285 Dali::Integration::TouchEvent event;
286 Dali::Integration::Point pointDown, pointUp;
288 event = Dali::Integration::TouchEvent();
289 pointDown.SetState( PointState::DOWN );
290 pointDown.SetScreenPosition( Vector2( 10, 10 ) );
291 event.AddPoint( pointDown );
292 application.ProcessEvent( event );
294 event = Dali::Integration::TouchEvent();
295 pointUp.SetState( PointState::UP );
296 pointUp.SetScreenPosition( Vector2( 10, 10 ) );
297 event.AddPoint( pointUp );
298 application.ProcessEvent( event );
301 Toolkit::KeyboardFocusManager::Get().SetCurrentFocusActor( view );
302 application.ProcessEvent( Integration::KeyEvent( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE ) );
303 application.SendNotification();
305 DALI_TEST_CHECK( gTouched );
306 DALI_TEST_CHECK( view );
311 int UtcDaliWebViewFocusGainedAndLost(void)
313 ToolkitTestApplication application;
315 WebView view = WebView::New();
316 DALI_TEST_CHECK( view );
318 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
319 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
320 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
321 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
323 application.GetScene().Add( view );
324 application.SendNotification();
325 application.Render();
327 view.SetKeyInputFocus();
328 DALI_TEST_CHECK( view.HasKeyInputFocus() );
331 view.ClearKeyInputFocus();
332 DALI_TEST_CHECK( !view.HasKeyInputFocus() );
337 int UtcDaliWebViewMove(void)
339 ToolkitTestApplication application;
341 WebView view = WebView::New();
342 DALI_TEST_CHECK( view );
344 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
345 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
346 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
347 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
349 application.GetScene().Add( view );
350 application.SendNotification();
351 application.Render();
353 view.SetProperty( Actor::Property::POSITION, Vector2( 100, 100 ));
354 Vector3 viewPos = view.GetProperty<Vector3>( Actor::Property::POSITION );
355 DALI_TEST_EQUALS( viewPos, Vector3( 100, 100, 0 ), TEST_LOCATION );
360 int UtcDaliWebViewPropertyVideoHole(void)
362 ToolkitTestApplication application;
364 WebView view = WebView::New();
365 DALI_TEST_CHECK( view );
367 const bool kDefaultValue = true;
368 const bool kTestValue = false;
370 // Check default value
372 Property::Value value = view.GetProperty( WebView::Property::VIDEO_HOLE_ENABLED );
373 DALI_TEST_CHECK( value.Get( output ) );
374 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
376 // Check Set/GetProperty
377 view.SetProperty( WebView::Property::VIDEO_HOLE_ENABLED, kTestValue );
378 value = view.GetProperty( WebView::Property::VIDEO_HOLE_ENABLED );
379 DALI_TEST_CHECK( value.Get( output ) );
380 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
385 int UtcDaliWebViewGetWebBackForwardList(void)
387 ToolkitTestApplication application;
389 WebView view = WebView::New();
390 DALI_TEST_CHECK( view );
392 Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
393 DALI_TEST_CHECK( bfList != 0 );
398 int UtcDaliWebViewGetWebContext(void)
400 ToolkitTestApplication application;
402 WebView view = WebView::New();
403 DALI_TEST_CHECK( view );
405 Dali::Toolkit::WebContext* context = view.GetContext();
406 DALI_TEST_CHECK( context != 0 );
411 int UtcDaliWebViewGetWebCookieManager(void)
413 ToolkitTestApplication application;
415 WebView view = WebView::New();
416 DALI_TEST_CHECK( view );
418 Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager();
419 DALI_TEST_CHECK( cookieManager != 0 );
424 int UtcDaliWebViewGetWebSettings(void)
426 ToolkitTestApplication application;
428 WebView view = WebView::New();
429 DALI_TEST_CHECK( view );
431 Dali::Toolkit::WebSettings* settings = view.GetSettings();
432 DALI_TEST_CHECK( settings != 0 );
437 int UtcDaliWebViewProperty1(void)
440 ToolkitTestApplication application;
442 WebView view = WebView::New();
443 DALI_TEST_CHECK( view );
446 view.SetProperty( WebView::Property::URL, TEST_URL1 );
447 Property::Value val = view.GetProperty( WebView::Property::URL );
448 DALI_TEST_CHECK( val.Get( local ) );
449 DALI_TEST_EQUALS( local, TEST_URL1, TEST_LOCATION );
454 int UtcDaliWebViewProperty4(void)
457 ToolkitTestApplication application;
459 WebView view = WebView::New();
460 DALI_TEST_CHECK( view );
462 const std::string kDefaultValue;
463 const std::string kTestValue = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36";
465 // Check default value
467 Property::Value value = view.GetProperty( WebView::Property::USER_AGENT );
468 DALI_TEST_CHECK( value.Get( output ) );
469 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
471 // Check Set/GetProperty
472 view.SetProperty( WebView::Property::USER_AGENT, kTestValue );
473 value = view.GetProperty( WebView::Property::USER_AGENT );
474 DALI_TEST_CHECK( value.Get( output ) );
475 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
480 int UtcDaliWebViewProperty9(void)
483 ToolkitTestApplication application;
485 WebView view = WebView::New();
486 DALI_TEST_CHECK( view );
488 // Check default value
489 Dali::Vector2 output = Dali::Vector2::ONE;
490 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
491 DALI_TEST_CHECK( output.x == 0 && output.y == 0 );
493 // Check Set/GetProperty
494 Dali::Vector2 testValue = Dali::Vector2( 100, 100 );
495 view.SetProperty( WebView::Property::SCROLL_POSITION, testValue );
496 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
497 DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
499 // Check default value of scroll size
500 output = Dali::Vector2::ONE;
501 view.GetProperty( WebView::Property::SCROLL_SIZE ).Get( output );
502 DALI_TEST_CHECK( output.x == 500 && output.y == 500 );
504 // Check default value of content size
505 output = Dali::Vector2::ONE;
506 view.GetProperty( WebView::Property::CONTENT_SIZE ).Get( output );
507 DALI_TEST_CHECK( output.x == 500 && output.y == 500 );
512 int UtcDaliWebViewPropertyTitleFavicon(void)
515 ToolkitTestApplication application;
517 char argv[] = "--test";
518 WebView view = WebView::New( 1, (char**)&argv );
519 DALI_TEST_CHECK( view );
522 view.ClearAllTilesResources();
524 // Check default value of title
525 std::string testValue("title");
527 view.GetProperty( WebView::Property::TITLE ).Get( output );
528 DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
530 // Check default value of favicon
531 Dali::Toolkit::ImageView* favicon = &view.GetFavicon();
532 DALI_TEST_CHECK( favicon );
533 Dali::Vector3 iconsize = favicon->GetProperty< Vector3 >( Dali::Actor::Property::SIZE );
534 DALI_TEST_CHECK( ( int )iconsize.width == 2 && ( int )iconsize.height == 2 );
539 int UtcDaliWebViewScrollBy(void)
541 ToolkitTestApplication application;
543 WebView view = WebView::New();
544 DALI_TEST_CHECK( view );
547 ConnectionTracker* testTracker = new ConnectionTracker();
548 view.ScrollEdgeReachedSignal().Connect( &OnScrollEdgeReached );
549 bool signal1 = false;
550 view.ConnectSignal( testTracker, "scrollEdgeReached", CallbackFunctor(&signal1) );
551 DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 0, TEST_LOCATION );
553 view.LoadUrl( TEST_URL1 );
554 Test::EmitGlobalTimerSignal();
556 // set scroll position.
557 Dali::Vector2 output = Dali::Vector2::ONE;
558 Dali::Vector2 testValue = Dali::Vector2( 100, 100 );
559 view.SetProperty( WebView::Property::SCROLL_POSITION, testValue );
560 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
561 DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
563 // scroll by and trigger scrollEdgeReached event.
564 view.ScrollBy( 50, 50 );
565 Test::EmitGlobalTimerSignal();
567 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
568 DALI_TEST_CHECK( output.x == 150 && output.y == 150 );
569 DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 1, TEST_LOCATION );
570 DALI_TEST_CHECK( signal1 );
575 int UtcDaliWebViewEvaluteJavaScript(void)
577 ToolkitTestApplication application;
579 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
581 view.LoadHtmlString( "<body>Hello World!</body>" );
582 view.EvaluateJavaScript( "jsObject.postMessage('Hello')" );
583 view.EvaluateJavaScript( "jsObject.postMessage('World')", OnEvaluateJavaScript );
584 Test::EmitGlobalTimerSignal();
586 DALI_TEST_EQUALS( gEvaluateJavaScriptCallbackCalled, 1, TEST_LOCATION );
591 int UtcDaliWebViewJavaScriptAlertConfirmPrompt(void)
593 ToolkitTestApplication application;
595 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
597 view.RegisterJavaScriptAlertCallback( &OnJavaScriptAlert );
598 view.LoadHtmlString( "<head><script type='text/javascript'>alert('this is an alert popup.');</script></head><body>Hello World!</body>" );
599 view.JavaScriptAlertReply();
600 Test::EmitGlobalTimerSignal();
601 DALI_TEST_EQUALS( gJavaScriptAlertCallbackCalled, 1, TEST_LOCATION );
603 view.RegisterJavaScriptConfirmCallback( &OnJavaScriptConfirm );
604 view.LoadHtmlString( "<head><script type='text/javascript'>confirm('this is a confirm popup.');</script></head><body>Hello World!</body>" );
605 view.JavaScriptConfirmReply( true );
606 Test::EmitGlobalTimerSignal();
607 DALI_TEST_EQUALS( gJavaScriptConfirmCallbackCalled, 1, TEST_LOCATION );
609 view.RegisterJavaScriptPromptCallback( &OnJavaScriptPrompt );
610 view.LoadHtmlString( "<head><script type='text/javascript'>prompt('this is a prompt popup.');</script></head><body>Hello World!</body>" );
611 view.JavaScriptPromptReply( "it is a prompt." );
612 Test::EmitGlobalTimerSignal();
613 DALI_TEST_EQUALS( gJavaScriptPromptCallbackCalled, 1, TEST_LOCATION );
618 int UtcDaliWebViewMethodsForCoverage(void)
620 ToolkitTestApplication application;
622 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
624 view.LoadHtmlString( "<body>Hello World!</body>" );
625 view.AddJavaScriptMessageHandler( "jsObject",
626 []( const std::string& arg ) {
630 DALI_TEST_CHECK( view );
635 // test cases for web backforward list.
637 int UtcDaliWebBackForwardListCheckItem(void)
639 ToolkitTestApplication application;
641 WebView view = WebView::New();
642 DALI_TEST_CHECK( view );
644 Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
645 DALI_TEST_CHECK( bfList != 0 )
647 unsigned int itemCount = bfList->GetItemCount();
648 DALI_TEST_CHECK( itemCount == 1 )
650 Dali::Toolkit::WebBackForwardListItem* citem = bfList->GetCurrentItem();
651 DALI_TEST_CHECK( citem != 0 );
653 const std::string kDefaultUrl( "http://url" );
654 std::string testValue = citem->GetUrl();
655 DALI_TEST_EQUALS( testValue, kDefaultUrl, TEST_LOCATION );
657 const std::string kDefaultTitle( "title" );
658 testValue = citem->GetTitle();
659 DALI_TEST_EQUALS( testValue, kDefaultTitle, TEST_LOCATION );
661 const std::string kDefaultOriginalUrl( "http://originalurl" );
662 testValue = citem->GetOriginalUrl();
663 DALI_TEST_EQUALS( testValue, kDefaultOriginalUrl, TEST_LOCATION );
665 Dali::Toolkit::WebBackForwardListItem* item = bfList->GetItemAtIndex( 0 );
666 DALI_TEST_CHECK( item != 0 );
671 // test cases for web context.
673 int UtcDaliWebContextGetSetCacheModel(void)
675 ToolkitTestApplication application;
677 WebView view = WebView::New();
678 DALI_TEST_CHECK( view );
680 Dali::Toolkit::WebContext* context = view.GetContext();
681 DALI_TEST_CHECK( context != 0 )
683 std::string kDefaultValue;
686 context->SetProxyUri( kDefaultValue );
687 context->SetCertificateFilePath( kDefaultValue );
688 context->DisableCache( false );
689 context->SetDefaultProxyAuth( kDefaultValue, kDefaultValue );
690 context->DeleteWebDatabase();
691 context->DeleteWebStorage();
692 context->DeleteLocalFileSystem();
693 context->ClearCache();
695 // Check default value
696 Dali::WebEngineContext::CacheModel value = context->GetCacheModel();
697 DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER );
699 // Check Set/GetProperty
700 context->SetCacheModel( Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
701 value = context->GetCacheModel();
702 DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
707 // test cases for web cookie manager.
709 int UtcDaliWebCookieManagerGetSetCookieAcceptPolicy(void)
711 ToolkitTestApplication application;
713 WebView view = WebView::New();
714 DALI_TEST_CHECK( view );
716 Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager();
717 DALI_TEST_CHECK( cookieManager != 0 )
719 const std::string kDefaultValue;
722 cookieManager->SetPersistentStorage( kDefaultValue, Dali::WebEngineCookieManager::CookiePersistentStorage::SQLITE );
723 cookieManager->ClearCookies();
725 // Check default value
726 Dali::WebEngineCookieManager::CookieAcceptPolicy value = cookieManager->GetCookieAcceptPolicy();
727 DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY );
729 // Check Set/GetProperty
730 cookieManager->SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS );
731 value = cookieManager->GetCookieAcceptPolicy();
732 DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS );
737 // test cases for web settings.
739 int UtcDaliWebSettingsGetSetDefaultFontSize(void)
741 ToolkitTestApplication application;
743 WebView view = WebView::New();
744 DALI_TEST_CHECK( view );
746 Dali::Toolkit::WebSettings* settings = view.GetSettings();
747 DALI_TEST_CHECK( settings != 0 )
750 settings->AllowMixedContents( false );
751 settings->EnableSpatialNavigation( false );
752 settings->EnableWebSecurity( false );
753 settings->EnableCacheBuilder( false );
754 settings->EnableDoNotTrack( false );
755 settings->UseScrollbarThumbFocusNotifications( false );
756 settings->AllowFileAccessFromExternalUrl( false );
757 settings->AllowScriptsOpenWindows( false );
759 // Check default value
760 int value = settings->GetDefaultFontSize();
761 DALI_TEST_CHECK( value == 16 );
763 // Check Set/GetProperty
764 settings->SetDefaultFontSize( 20 );
765 value = settings->GetDefaultFontSize();
766 DALI_TEST_CHECK( value == 20 );
771 int UtcDaliWebSettingsCheckEnableJavaScript(void)
773 ToolkitTestApplication application;
775 WebView view = WebView::New();
776 DALI_TEST_CHECK( view );
778 Dali::Toolkit::WebSettings* settings = view.GetSettings();
779 DALI_TEST_CHECK( settings != 0 )
782 settings->AllowMixedContents( false );
783 settings->EnableSpatialNavigation( false );
784 settings->EnableWebSecurity( false );
785 settings->EnableCacheBuilder( false );
786 settings->EnableDoNotTrack( false );
787 settings->UseScrollbarThumbFocusNotifications( false );
788 settings->AllowFileAccessFromExternalUrl( false );
789 settings->AllowScriptsOpenWindows( false );
791 // Check default value is true or not
792 bool value = settings->IsJavaScriptEnabled();
793 DALI_TEST_CHECK( value );
795 // Check Set/GetProperty
796 settings->EnableJavaScript( false );
797 value = settings->IsJavaScriptEnabled();
798 DALI_TEST_CHECK( !value );
803 int UtcDaliWebSettingsCheckEnableAutoFitting(void)
805 ToolkitTestApplication application;
807 WebView view = WebView::New();
808 DALI_TEST_CHECK( view );
810 Dali::Toolkit::WebSettings* settings = view.GetSettings();
811 DALI_TEST_CHECK( settings != 0 )
814 settings->AllowMixedContents( false );
815 settings->EnableSpatialNavigation( false );
816 settings->EnableWebSecurity( false );
817 settings->EnableCacheBuilder( false );
818 settings->EnableDoNotTrack( false );
819 settings->UseScrollbarThumbFocusNotifications( false );
820 settings->AllowFileAccessFromExternalUrl( false );
821 settings->AllowScriptsOpenWindows( false );
823 // Check default value is true or not
824 bool value = settings->IsAutoFittingEnabled();
825 DALI_TEST_CHECK( value );
827 // Check Set/GetProperty
828 settings->EnableAutoFitting( false );
829 value = settings->IsAutoFittingEnabled();
830 DALI_TEST_CHECK( !value );
835 int UtcDaliWebSettingsCheckEnablePlugins(void)
837 ToolkitTestApplication application;
839 WebView view = WebView::New();
840 DALI_TEST_CHECK( view );
842 Dali::Toolkit::WebSettings* settings = view.GetSettings();
843 DALI_TEST_CHECK( settings != 0 )
846 settings->AllowMixedContents( false );
847 settings->EnableSpatialNavigation( false );
848 settings->EnableWebSecurity( false );
849 settings->EnableCacheBuilder( false );
850 settings->EnableDoNotTrack( false );
851 settings->UseScrollbarThumbFocusNotifications( false );
852 settings->AllowFileAccessFromExternalUrl( false );
853 settings->AllowScriptsOpenWindows( false );
855 // Check default value is true or not
856 bool value = settings->ArePluginsEnabled();
857 DALI_TEST_CHECK( value );
859 // Check Set/GetProperty
860 settings->EnablePlugins( false );
861 value = settings->ArePluginsEnabled();
862 DALI_TEST_CHECK( !value );
867 int UtcDaliWebSettingsCheckEnablePrivateBrowsing(void)
869 ToolkitTestApplication application;
871 WebView view = WebView::New();
872 DALI_TEST_CHECK( view );
874 Dali::Toolkit::WebSettings* settings = view.GetSettings();
875 DALI_TEST_CHECK( settings != 0 )
878 settings->AllowMixedContents( false );
879 settings->EnableSpatialNavigation( false );
880 settings->EnableWebSecurity( false );
881 settings->EnableCacheBuilder( false );
882 settings->EnableDoNotTrack( false );
883 settings->UseScrollbarThumbFocusNotifications( false );
884 settings->AllowFileAccessFromExternalUrl( false );
885 settings->AllowScriptsOpenWindows( false );
887 // Check default value is true or not
888 bool value = settings->IsPrivateBrowsingEnabled();
889 DALI_TEST_CHECK( value );
891 // Check Set/GetProperty
892 settings->EnablePrivateBrowsing( false );
893 value = settings->IsPrivateBrowsingEnabled();
894 DALI_TEST_CHECK( !value );
899 int UtcDaliWebSettingsCheckEnableLinkMagnifier(void)
901 ToolkitTestApplication application;
903 WebView view = WebView::New();
904 DALI_TEST_CHECK( view );
906 Dali::Toolkit::WebSettings* settings = view.GetSettings();
907 DALI_TEST_CHECK( settings != 0 )
910 settings->AllowMixedContents( false );
911 settings->EnableSpatialNavigation( false );
912 settings->EnableWebSecurity( false );
913 settings->EnableCacheBuilder( false );
914 settings->EnableDoNotTrack( false );
915 settings->UseScrollbarThumbFocusNotifications( false );
916 settings->AllowFileAccessFromExternalUrl( false );
917 settings->AllowScriptsOpenWindows( false );
919 // Check default value is true or not
920 bool value = settings->IsLinkMagnifierEnabled();
921 DALI_TEST_CHECK( value );
923 // Check Set/GetProperty
924 settings->EnableLinkMagnifier( false );
925 value = settings->IsLinkMagnifierEnabled();
926 DALI_TEST_CHECK( !value );
931 int UtcDaliWebSettingsCheckUseKeypadWithoutUserAction(void)
933 ToolkitTestApplication application;
935 WebView view = WebView::New();
936 DALI_TEST_CHECK( view );
938 Dali::Toolkit::WebSettings* settings = view.GetSettings();
939 DALI_TEST_CHECK( settings != 0 )
942 settings->AllowMixedContents( false );
943 settings->EnableSpatialNavigation( false );
944 settings->EnableWebSecurity( false );
945 settings->EnableCacheBuilder( false );
946 settings->EnableDoNotTrack( false );
947 settings->UseScrollbarThumbFocusNotifications( false );
948 settings->AllowFileAccessFromExternalUrl( false );
949 settings->AllowScriptsOpenWindows( false );
951 // Check default value is true or not
952 bool value = settings->IsKeypadWithoutUserActionUsed();
953 DALI_TEST_CHECK( value );
955 // Check Set/GetProperty
956 settings->UseKeypadWithoutUserAction( false );
957 value = settings->IsKeypadWithoutUserActionUsed();
958 DALI_TEST_CHECK( !value );
963 int UtcDaliWebSettingsCheckEnableAutofillPasswordForm(void)
965 ToolkitTestApplication application;
967 WebView view = WebView::New();
968 DALI_TEST_CHECK( view );
970 Dali::Toolkit::WebSettings* settings = view.GetSettings();
971 DALI_TEST_CHECK( settings != 0 )
974 settings->AllowMixedContents( false );
975 settings->EnableSpatialNavigation( false );
976 settings->EnableWebSecurity( false );
977 settings->EnableCacheBuilder( false );
978 settings->EnableDoNotTrack( false );
979 settings->UseScrollbarThumbFocusNotifications( false );
980 settings->AllowFileAccessFromExternalUrl( false );
981 settings->AllowScriptsOpenWindows( false );
983 // Check default value is true or not
984 bool value = settings->IsAutofillPasswordFormEnabled();
985 DALI_TEST_CHECK( value );
986 settings->EnableAutofillPasswordForm( false );
987 value = settings->IsAutofillPasswordFormEnabled();
988 DALI_TEST_CHECK( !value );
992 int UtcDaliWebSettingsCheckEnableFormCandidateData(void)
994 ToolkitTestApplication application;
996 WebView view = WebView::New();
997 DALI_TEST_CHECK( view );
999 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1000 DALI_TEST_CHECK( settings != 0 );
1003 settings->AllowMixedContents( false );
1004 settings->EnableSpatialNavigation( false );
1005 settings->EnableWebSecurity( false );
1006 settings->EnableCacheBuilder( false );
1007 settings->EnableDoNotTrack( false );
1008 settings->UseScrollbarThumbFocusNotifications( false );
1009 settings->AllowFileAccessFromExternalUrl( false );
1010 settings->AllowScriptsOpenWindows( false );
1012 // Check default value is true or not
1013 bool value = settings->IsFormCandidateDataEnabled();
1014 DALI_TEST_CHECK( value );
1016 // Check Set/GetProperty
1017 settings->EnableFormCandidateData( false );
1018 value = settings->IsFormCandidateDataEnabled();
1019 DALI_TEST_CHECK( !value );
1024 int UtcDaliWebSettingsCheckEnableTextSelection(void)
1026 ToolkitTestApplication application;
1028 WebView view = WebView::New();
1029 DALI_TEST_CHECK( view );
1031 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1032 DALI_TEST_CHECK( settings != 0 );
1035 settings->AllowMixedContents( false );
1036 settings->EnableSpatialNavigation( false );
1037 settings->EnableWebSecurity( false );
1038 settings->EnableCacheBuilder( false );
1039 settings->EnableDoNotTrack( false );
1040 settings->UseScrollbarThumbFocusNotifications( false );
1041 settings->AllowFileAccessFromExternalUrl( false );
1042 settings->AllowScriptsOpenWindows( false );
1044 // Check default value is true or not
1045 bool value = settings->IsTextSelectionEnabled();
1046 DALI_TEST_CHECK( value );
1048 //Check Set/GetProperty
1049 settings->EnableTextSelection(false);
1050 value = settings->IsTextSelectionEnabled();
1051 DALI_TEST_CHECK( !value );
1056 int UtcDaliWebSettingsCheckEnableTextAutosizing(void)
1058 ToolkitTestApplication application;
1060 WebView view = WebView::New();
1061 DALI_TEST_CHECK( view );
1063 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1064 DALI_TEST_CHECK( settings != 0 );
1067 settings->AllowMixedContents( false );
1068 settings->EnableSpatialNavigation( false );
1069 settings->EnableWebSecurity( false );
1070 settings->EnableCacheBuilder( false );
1071 settings->EnableDoNotTrack( false );
1072 settings->UseScrollbarThumbFocusNotifications( false );
1073 settings->AllowFileAccessFromExternalUrl( false );
1074 settings->AllowScriptsOpenWindows( false );
1076 // Check default value is true or not
1077 bool value = settings->IsTextAutosizingEnabled();
1078 DALI_TEST_CHECK( value );
1080 // Check Set/GetProperty
1081 settings->EnableTextAutosizing(false);
1082 value = settings->IsTextAutosizingEnabled();
1083 DALI_TEST_CHECK( !value );
1088 int UtcDaliWebSettingsCheckEnableArrowScroll(void)
1090 ToolkitTestApplication application;
1092 WebView view = WebView::New();
1093 DALI_TEST_CHECK( view );
1095 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1096 DALI_TEST_CHECK( settings != 0 );
1099 settings->AllowMixedContents( false );
1100 settings->EnableSpatialNavigation( false );
1101 settings->EnableWebSecurity( false );
1102 settings->EnableCacheBuilder( false );
1103 settings->EnableDoNotTrack( false );
1104 settings->UseScrollbarThumbFocusNotifications( false );
1105 settings->AllowFileAccessFromExternalUrl( false );
1106 settings->AllowScriptsOpenWindows( false );
1108 // Check default value is true or not
1109 bool value = settings->IsArrowScrollEnabled();
1110 DALI_TEST_CHECK( value );
1112 // Check Set/GetProperty
1113 settings->EnableArrowScroll(false);
1114 value = settings->IsArrowScrollEnabled();
1115 DALI_TEST_CHECK( !value );
1120 int UtcDaliWebSettingsCheckEnableClipboard(void)
1122 ToolkitTestApplication application;
1124 WebView view = WebView::New();
1125 DALI_TEST_CHECK( view );
1127 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1128 DALI_TEST_CHECK( settings != 0 );
1131 settings->AllowMixedContents( false );
1132 settings->EnableSpatialNavigation( false );
1133 settings->EnableWebSecurity( false );
1134 settings->EnableCacheBuilder( false );
1135 settings->EnableDoNotTrack( false );
1136 settings->UseScrollbarThumbFocusNotifications( false );
1137 settings->AllowFileAccessFromExternalUrl( false );
1138 settings->AllowScriptsOpenWindows( false );
1140 // Check default value is true or not
1141 bool value = settings->IsClipboardEnabled();
1142 DALI_TEST_CHECK( value );
1143 settings->EnableClipboard(false);
1144 value = settings->IsClipboardEnabled();
1145 DALI_TEST_CHECK( !value );
1149 int UtcDaliWebSettingsCheckEnableImePanel(void)
1151 ToolkitTestApplication application;
1153 WebView view = WebView::New();
1154 DALI_TEST_CHECK( view );
1156 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1157 DALI_TEST_CHECK( settings != 0 );
1160 settings->AllowMixedContents( false );
1161 settings->EnableSpatialNavigation( false );
1162 settings->EnableWebSecurity( false );
1163 settings->EnableCacheBuilder( false );
1164 settings->EnableDoNotTrack( false );
1165 settings->UseScrollbarThumbFocusNotifications( false );
1166 settings->AllowFileAccessFromExternalUrl( false );
1167 settings->AllowScriptsOpenWindows( false );
1169 // Check default value is true or not
1170 bool value = settings->IsImePanelEnabled();
1171 DALI_TEST_CHECK( value );
1173 // Check Set/GetProperty
1174 settings->EnableImePanel(false);
1175 value = settings->IsImePanelEnabled();
1176 DALI_TEST_CHECK( !value );
1181 int UtcDaliWebSettingsCheckAllowImagesLoadAutomatically(void)
1183 ToolkitTestApplication application;
1185 WebView view = WebView::New();
1186 DALI_TEST_CHECK( view );
1188 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1189 DALI_TEST_CHECK( settings != 0 )
1192 settings->AllowMixedContents( false );
1193 settings->EnableSpatialNavigation( false );
1194 settings->EnableWebSecurity( false );
1195 settings->EnableCacheBuilder( false );
1196 settings->EnableDoNotTrack( false );
1197 settings->UseScrollbarThumbFocusNotifications( false );
1198 settings->AllowFileAccessFromExternalUrl( false );
1199 settings->AllowScriptsOpenWindows( false );
1201 // Check default value is true or not
1202 bool value = settings->AreImagesLoadedAutomatically();
1203 DALI_TEST_CHECK( value );
1205 // Check Set/GetProperty
1206 settings->AllowImagesLoadAutomatically( false );
1207 value = settings->AreImagesLoadedAutomatically();
1208 DALI_TEST_CHECK( !value );
1213 int UtcDaliWebSettingsGetSetDefaultTextEncodingName(void)
1215 ToolkitTestApplication application;
1217 WebView view = WebView::New();
1218 DALI_TEST_CHECK( view );
1220 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1221 DALI_TEST_CHECK( settings != 0 )
1223 const std::string kDefaultValue;
1224 const std::string kTestValue = "UTF-8";
1227 settings->AllowMixedContents( false );
1228 settings->EnableSpatialNavigation( false );
1229 settings->EnableWebSecurity( false );
1230 settings->EnableCacheBuilder( false );
1231 settings->EnableDoNotTrack( false );
1232 settings->UseScrollbarThumbFocusNotifications( false );
1233 settings->AllowFileAccessFromExternalUrl( false );
1234 settings->AllowScriptsOpenWindows( false );
1236 // Check default value
1237 std::string value = settings->GetDefaultTextEncodingName();
1238 DALI_TEST_EQUALS( value, kDefaultValue, TEST_LOCATION );
1240 // Check Set/GetProperty
1241 settings->SetDefaultTextEncodingName( kTestValue );
1242 value = settings->GetDefaultTextEncodingName();
1243 DALI_TEST_EQUALS( value, kTestValue, TEST_LOCATION );