2 * Copyright (c) 2021 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/devel-api/adaptor-framework/web-engine-request-interceptor.h>
26 #include <dali/integration-api/events/hover-event-integ.h>
27 #include <dali/integration-api/events/key-event-integ.h>
28 #include <dali/integration-api/events/touch-event-integ.h>
29 #include <dali/integration-api/events/wheel-event-integ.h>
30 #include <dali/public-api/images/pixel-data.h>
31 #include <dali-toolkit/public-api/controls/image-view/image-view.h>
32 #include <dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h>
33 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list.h>
34 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list-item.h>
35 #include <dali-toolkit/devel-api/controls/web-view/web-context.h>
36 #include <dali-toolkit/devel-api/controls/web-view/web-cookie-manager.h>
37 #include <dali-toolkit/devel-api/controls/web-view/web-form-repost-decision.h>
38 #include <dali-toolkit/devel-api/controls/web-view/web-settings.h>
39 #include <dali-toolkit/devel-api/controls/web-view/web-view.h>
42 using namespace Toolkit;
47 const char* const TEST_URL1( "http://www.somewhere.valid1.com" );
48 const char* const TEST_URL2( "http://www.somewhere.valid2.com" );
50 static int gPageLoadStartedCallbackCalled = 0;
51 static int gPageLoadInProgressCallbackCalled = 0;
52 static int gPageLoadFinishedCallbackCalled = 0;
53 static int gScrollEdgeReachedCallbackCalled = 0;
54 static int gUrlChangedCallbackCalled = 0;
55 static int gEvaluateJavaScriptCallbackCalled = 0;
56 static int gJavaScriptAlertCallbackCalled = 0;
57 static int gJavaScriptConfirmCallbackCalled = 0;
58 static int gJavaScriptPromptCallbackCalled = 0;
59 static int gScreenshotCapturedCallbackCalled = 0;
60 static int gVideoPlayingCallbackCalled = 0;
61 static int gGeolocationPermissionCallbackCalled = 0;
62 static bool gTouched = false;
63 static bool gHovered = false;
64 static bool gWheelEventHandled = false;
65 static int gFormRepostDecisionCallbackCalled = 0;
66 static std::shared_ptr<Dali::Toolkit::WebFormRepostDecision> gFormRepostDecisionInstance;
67 static int gFrameRenderedCallbackCalled = 0;
68 static int gRequestInterceptorCallbackCalled = 0;
69 static std::shared_ptr<Dali::WebEngineRequestInterceptor> gRequestInterceptorInstance = nullptr;
71 struct CallbackFunctor
73 CallbackFunctor(bool* callbackFlag)
74 : mCallbackFlag( callbackFlag )
80 *mCallbackFlag = true;
85 static void OnPageLoadStarted( WebView view, const std::string& url )
87 gPageLoadStartedCallbackCalled++;
90 static void OnPageLoadInProgress( WebView view, const std::string& url )
92 gPageLoadInProgressCallbackCalled++;
95 static void OnPageLoadFinished( WebView view, const std::string& url )
97 gPageLoadFinishedCallbackCalled++;
100 static void OnScrollEdgeReached( WebView view, Dali::WebEnginePlugin::ScrollEdge edge )
102 gScrollEdgeReachedCallbackCalled++;
105 static void OnUrlChanged( WebView view, const std::string& url )
107 gUrlChangedCallbackCalled++;
110 static void OnPageLoadError( WebView view, const std::string& url, WebView::LoadErrorCode errorCode )
114 static void OnEvaluateJavaScript( const std::string& result )
116 gEvaluateJavaScriptCallbackCalled++;
119 static bool OnJavaScriptAlert( const std::string& result )
121 gJavaScriptAlertCallbackCalled++;
125 static bool OnJavaScriptConfirm( const std::string& result )
127 gJavaScriptConfirmCallbackCalled++;
131 static bool OnJavaScriptPrompt( const std::string& meesage1, const std::string& message2 )
133 gJavaScriptPromptCallbackCalled++;
137 static void OnScreenshotCaptured(Dali::Toolkit::ImageView)
139 gScreenshotCapturedCallbackCalled++;
\r
142 static void OnVideoPlaying(bool isPlaying)
144 gVideoPlayingCallbackCalled++;
147 static bool OnGeolocationPermission(const std::string&, const std::string&)
149 gGeolocationPermissionCallbackCalled++;
153 static bool OnTouched( Actor actor, const Dali::TouchEvent& touch )
159 static bool OnHovered( Actor actor, const Dali::HoverEvent& hover )
165 static bool OnWheelEvent( Actor actor, const Dali::WheelEvent& wheel )
167 gWheelEventHandled = true;
171 static void OnFormRepostDecision(WebView, std::shared_ptr<Dali::Toolkit::WebFormRepostDecision> decision)
173 gFormRepostDecisionCallbackCalled++;
174 gFormRepostDecisionInstance = decision;
177 static void OnFrameRendered(WebView)
179 gFrameRenderedCallbackCalled++;
182 static void OnRequestInterceptor(WebView view, std::shared_ptr<Dali::WebEngineRequestInterceptor> interceptor)
184 gRequestInterceptorCallbackCalled++;
185 gRequestInterceptorInstance = std::move(interceptor);
190 void web_view_startup(void)
192 test_return_value = TET_UNDEF;
195 void web_view_cleanup(void)
197 test_return_value = TET_PASS;
200 int UtcDaliWebViewBasics(void)
202 ToolkitTestApplication application;
204 // Copy and Assignment Test
205 tet_infoline( "UtcDaliWebViewBasic Copy and Assignment Test" );
206 WebView view = WebView::New();
207 DALI_TEST_CHECK( view );
209 WebView copy( view );
210 DALI_TEST_CHECK( view == copy );
213 DALI_TEST_CHECK( !assign );
216 DALI_TEST_CHECK( assign == view );
220 tet_infoline( "UtcDaliWebViewBasic DownCast Test" );
221 BaseHandle handle(view);
223 WebView view2 = WebView::DownCast( handle );
224 DALI_TEST_CHECK( view );
225 DALI_TEST_CHECK( view2 );
226 DALI_TEST_CHECK( view == view2 );
230 tet_infoline( "UtcDaliWebViewBasic TypeRegistry Test" );
231 TypeRegistry typeRegistry = TypeRegistry::Get();
232 DALI_TEST_CHECK( typeRegistry );
234 TypeInfo typeInfo = typeRegistry.GetTypeInfo( "WebView" );
235 DALI_TEST_CHECK( typeInfo );
237 BaseHandle handle2 = typeInfo.CreateInstance();
238 DALI_TEST_CHECK( handle2 );
240 WebView view3 = WebView::DownCast( handle2 );
241 DALI_TEST_CHECK( view3 );
246 int UtcDaliWebViewPageNavigation(void)
248 ToolkitTestApplication application;
250 WebView view = WebView::New();
251 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
252 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
253 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
254 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
255 application.GetScene().Add( view );
256 application.SendNotification();
257 application.Render();
258 DALI_TEST_CHECK( view );
260 ConnectionTracker* testTracker = new ConnectionTracker();
261 view.PageLoadStartedSignal().Connect( &OnPageLoadStarted );
262 view.PageLoadInProgressSignal().Connect( &OnPageLoadInProgress );
263 view.PageLoadFinishedSignal().Connect( &OnPageLoadFinished );
264 view.PageLoadErrorSignal().Connect( &OnPageLoadError );
265 view.UrlChangedSignal().Connect( &OnUrlChanged );
266 bool signal1 = false;
267 bool signal2 = false;
268 bool signal3 = false;
269 bool signal4 = false;
270 bool signal5 = false;
271 view.ConnectSignal( testTracker, "pageLoadStarted", CallbackFunctor(&signal1) );
272 view.ConnectSignal( testTracker, "pageLoadInProgress", CallbackFunctor(&signal2) );
273 view.ConnectSignal( testTracker, "pageLoadFinished", CallbackFunctor(&signal3) );
274 view.ConnectSignal( testTracker, "urlChanged", CallbackFunctor(&signal4) );
275 view.ConnectSignal( testTracker, "invalidname", CallbackFunctor(&signal5) );
276 DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 0, TEST_LOCATION );
277 DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 0, TEST_LOCATION );
278 DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 0, TEST_LOCATION );
279 DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 0, TEST_LOCATION );
281 view.LoadUrl( TEST_URL1 );
282 view.GetNaturalSize();
283 Test::EmitGlobalTimerSignal();
284 DALI_TEST_EQUALS( view.CanGoBack(), false, TEST_LOCATION );
285 DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 1, TEST_LOCATION );
286 DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 1, TEST_LOCATION );
287 DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 1, TEST_LOCATION );
288 DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 1, TEST_LOCATION );
289 DALI_TEST_CHECK( signal1 & signal2 & signal3 & signal4 );
290 DALI_TEST_CHECK( !signal5 );
292 view.LoadUrl( TEST_URL2 );
294 view.SetProperty( Actor::Property::SIZE, Vector2( 400, 300 ) );
295 application.SendNotification();
296 application.Render();
297 Test::EmitGlobalTimerSignal();
299 DALI_TEST_EQUALS( view.CanGoBack(), true, TEST_LOCATION );
300 DALI_TEST_EQUALS( view.CanGoForward(), false, TEST_LOCATION );
301 DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 2, TEST_LOCATION );
302 DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 2, TEST_LOCATION );
303 DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 2, TEST_LOCATION );
304 DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 2, TEST_LOCATION );
307 Test::EmitGlobalTimerSignal();
308 DALI_TEST_CHECK( !view.CanGoBack() );
309 DALI_TEST_CHECK( view.CanGoForward() );
312 Test::EmitGlobalTimerSignal();
313 DALI_TEST_CHECK( view.CanGoBack() );
314 DALI_TEST_CHECK( !view.CanGoForward() );
319 Test::EmitGlobalTimerSignal();
320 DALI_TEST_CHECK( !view.CanGoBack() );
321 DALI_TEST_CHECK( !view.CanGoForward() );
326 int UtcDaliWebViewTouchAndKeys(void)
328 ToolkitTestApplication application;
330 WebView view = WebView::New();
331 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
332 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
333 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
334 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
336 application.GetScene().Add( view );
337 application.SendNotification();
338 application.Render();
340 view.GetNaturalSize();
341 view.TouchedSignal().Connect( &OnTouched );
344 Dali::Integration::TouchEvent event;
345 Dali::Integration::Point pointDown, pointUp;
347 event = Dali::Integration::TouchEvent();
348 pointDown.SetState( PointState::DOWN );
349 pointDown.SetScreenPosition( Vector2( 10, 10 ) );
350 event.AddPoint( pointDown );
351 application.ProcessEvent( event );
353 event = Dali::Integration::TouchEvent();
354 pointUp.SetState( PointState::UP );
355 pointUp.SetScreenPosition( Vector2( 10, 10 ) );
356 event.AddPoint( pointUp );
357 application.ProcessEvent( event );
360 Toolkit::KeyboardFocusManager::Get().SetCurrentFocusActor( view );
361 application.ProcessEvent( Integration::KeyEvent( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE ) );
362 application.SendNotification();
364 DALI_TEST_CHECK( gTouched );
365 DALI_TEST_CHECK( view );
370 int UtcDaliWebViewFocusGainedAndLost(void)
372 ToolkitTestApplication application;
374 WebView view = WebView::New();
375 DALI_TEST_CHECK( view );
377 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
378 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
379 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
380 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
382 application.GetScene().Add( view );
383 application.SendNotification();
384 application.Render();
386 view.SetKeyInputFocus();
387 DALI_TEST_CHECK( view.HasKeyInputFocus() );
390 view.ClearKeyInputFocus();
391 DALI_TEST_CHECK( !view.HasKeyInputFocus() );
396 int UtcDaliWebViewPropertyPageZoomFactor(void)
398 ToolkitTestApplication application;
400 WebView view = WebView::New();
401 DALI_TEST_CHECK( view );
403 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
404 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
405 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
406 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
408 application.GetScene().Add( view );
409 application.SendNotification();
410 application.Render();
412 view.SetProperty( WebView::Property::PAGE_ZOOM_FACTOR, 1.5f);
413 float zoomFactor = view.GetProperty<float>( WebView::Property::PAGE_ZOOM_FACTOR );
414 DALI_TEST_EQUALS( zoomFactor, 1.5f, TEST_LOCATION );
416 view.SetProperty( WebView::Property::PAGE_ZOOM_FACTOR, 1.0f);
417 zoomFactor = view.GetProperty<float>( WebView::Property::PAGE_ZOOM_FACTOR );
418 DALI_TEST_EQUALS( zoomFactor, 1.0f, TEST_LOCATION );
423 int UtcDaliWebViewPropertyTextZoomFactor(void)
425 ToolkitTestApplication application;
427 WebView view = WebView::New();
428 DALI_TEST_CHECK( view );
430 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
431 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
432 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
433 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
435 application.GetScene().Add( view );
436 application.SendNotification();
437 application.Render();
439 view.SetProperty( WebView::Property::TEXT_ZOOM_FACTOR, 1.5f);
440 float zoomFactor = view.GetProperty<float>( WebView::Property::TEXT_ZOOM_FACTOR );
441 DALI_TEST_EQUALS( zoomFactor, 1.5f, TEST_LOCATION );
443 view.SetProperty( WebView::Property::TEXT_ZOOM_FACTOR, 1.0f);
444 zoomFactor = view.GetProperty<float>( WebView::Property::TEXT_ZOOM_FACTOR );
445 DALI_TEST_EQUALS( zoomFactor, 1.0f, TEST_LOCATION );
450 int UtcDaliWebViewPropertyLoadProgressPercentage(void)
452 ToolkitTestApplication application;
454 WebView view = WebView::New();
455 DALI_TEST_CHECK( view );
457 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
458 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
459 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
460 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
462 application.GetScene().Add( view );
463 application.SendNotification();
464 application.Render();
466 float percentage = view.GetProperty<float>( WebView::Property::LOAD_PROGRESS_PERCENTAGE );
467 DALI_TEST_EQUALS( percentage, 0.5f, TEST_LOCATION );
472 int UtcDaliWebViewMove(void)
474 ToolkitTestApplication application;
476 WebView view = WebView::New();
477 DALI_TEST_CHECK( view );
479 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
480 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
481 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
482 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
484 application.GetScene().Add( view );
485 application.SendNotification();
486 application.Render();
488 view.SetProperty( Actor::Property::POSITION, Vector2( 100, 100 ));
489 Vector3 viewPos = view.GetProperty<Vector3>( Actor::Property::POSITION );
490 DALI_TEST_EQUALS( viewPos, Vector3( 100, 100, 0 ), TEST_LOCATION );
495 int UtcDaliWebViewPropertyVideoHoleEnabled(void)
497 ToolkitTestApplication application;
499 WebView view = WebView::New();
500 DALI_TEST_CHECK( view );
502 const bool kDefaultValue = true;
503 const bool kTestValue = false;
505 // Check default value
507 Property::Value value = view.GetProperty( WebView::Property::VIDEO_HOLE_ENABLED );
508 DALI_TEST_CHECK( value.Get( output ) );
509 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
511 // Check Set/GetProperty
512 view.SetProperty( WebView::Property::VIDEO_HOLE_ENABLED, kTestValue );
513 value = view.GetProperty( WebView::Property::VIDEO_HOLE_ENABLED );
514 DALI_TEST_CHECK( value.Get( output ) );
515 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
520 int UtcDaliWebViewPropertyMouseEventsEnabled(void)
522 ToolkitTestApplication application;
524 WebView view = WebView::New();
525 DALI_TEST_CHECK( view );
527 const bool kDefaultValue = true;
528 const bool kTestValue = false;
530 // Check default value
532 Property::Value value = view.GetProperty( WebView::Property::MOUSE_EVENTS_ENABLED );
533 DALI_TEST_CHECK( value.Get( output ) );
534 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
536 // Check Set/GetProperty
537 view.SetProperty( WebView::Property::MOUSE_EVENTS_ENABLED, kTestValue );
538 value = view.GetProperty( WebView::Property::MOUSE_EVENTS_ENABLED );
539 DALI_TEST_CHECK( value.Get( output ) );
540 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
545 int UtcDaliWebViewPropertyKeyEventsEnabled(void)
547 ToolkitTestApplication application;
549 WebView view = WebView::New();
550 DALI_TEST_CHECK( view );
552 const bool kDefaultValue = true;
553 const bool kTestValue = false;
555 // Check default value
557 Property::Value value = view.GetProperty( WebView::Property::KEY_EVENTS_ENABLED );
558 DALI_TEST_CHECK( value.Get( output ) );
559 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
561 // Check Set/GetProperty
562 view.SetProperty( WebView::Property::KEY_EVENTS_ENABLED, kTestValue );
563 value = view.GetProperty( WebView::Property::KEY_EVENTS_ENABLED );
564 DALI_TEST_CHECK( value.Get( output ) );
565 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
570 int UtcDaliWebViewHoverAndWheel(void)
572 ToolkitTestApplication application;
574 WebView view = WebView::New();
575 DALI_TEST_CHECK( view );
576 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
577 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
578 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
579 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
581 application.GetScene().Add( view );
582 application.SendNotification();
583 application.Render();
585 view.GetNaturalSize();
586 view.HoveredSignal().Connect( &OnHovered );
587 view.WheelEventSignal().Connect( &OnWheelEvent );
590 Dali::Integration::HoverEvent event = Dali::Integration::HoverEvent();
591 Dali::Integration::Point pointDown;
592 pointDown.SetState( PointState::DOWN );
593 pointDown.SetScreenPosition( Vector2( 10, 10 ) );
594 event.AddPoint( pointDown );
595 application.ProcessEvent( event );
597 event = Dali::Integration::HoverEvent();
598 Dali::Integration::Point pointUp;
599 pointUp.SetState( PointState::UP );
600 pointUp.SetScreenPosition( Vector2( 10, 10 ) );
601 event.AddPoint( pointUp );
602 application.ProcessEvent( event );
604 event = Dali::Integration::HoverEvent();
605 Dali::Integration::Point pointMotion;
606 pointUp.SetState( PointState::MOTION );
607 pointUp.SetScreenPosition( Vector2( 10, 10 ) );
608 event.AddPoint( pointMotion );
609 application.ProcessEvent( event );
612 Dali::Integration::WheelEvent wheelEvent;
613 wheelEvent.type = Dali::Integration::WheelEvent::Type::MOUSE_WHEEL;
614 wheelEvent.direction = 0;
615 wheelEvent.point = Vector2( 20, 20 );
616 wheelEvent.delta = 10;
617 application.ProcessEvent( wheelEvent );
618 application.SendNotification();
620 DALI_TEST_CHECK( gHovered );
621 DALI_TEST_CHECK( gWheelEventHandled );
626 int UtcDaliWebViewFormRepostDecisionFrameRendering(void)
628 ToolkitTestApplication application;
630 WebView view = WebView::New();
631 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
632 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
633 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
634 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
635 application.GetScene().Add( view );
636 application.SendNotification();
637 application.Render();
638 DALI_TEST_CHECK( view );
640 ConnectionTracker* testTracker = new ConnectionTracker();
641 view.FormRepostDecisionSignal().Connect(&OnFormRepostDecision);
642 view.FrameRenderedSignal().Connect(&OnFrameRendered);
643 bool signal1 = false;
644 bool signal2 = false;
645 view.ConnectSignal( testTracker, "formRepostDecision", CallbackFunctor(&signal1) );
646 view.ConnectSignal( testTracker, "frameRendered", CallbackFunctor(&signal2) );
647 DALI_TEST_EQUALS( gFormRepostDecisionCallbackCalled, 0, TEST_LOCATION );
648 DALI_TEST_EQUALS( gFrameRenderedCallbackCalled, 0, TEST_LOCATION );
650 view.LoadUrl( TEST_URL1 );
651 Test::EmitGlobalTimerSignal();
652 DALI_TEST_EQUALS( gFormRepostDecisionCallbackCalled, 1, TEST_LOCATION );
653 DALI_TEST_EQUALS( gFrameRenderedCallbackCalled, 1, TEST_LOCATION );
654 DALI_TEST_CHECK( signal1 & signal2);
656 // form repost decision.
657 DALI_TEST_CHECK(gFormRepostDecisionInstance);
658 gFormRepostDecisionInstance->Reply(true);
661 gFormRepostDecisionInstance = nullptr;
666 int UtcDaliWebViewGetWebBackForwardList(void)
668 ToolkitTestApplication application;
670 WebView view = WebView::New();
671 DALI_TEST_CHECK( view );
673 Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
674 DALI_TEST_CHECK( bfList != 0 );
679 int UtcDaliWebViewGetWebContext(void)
681 ToolkitTestApplication application;
683 WebView view = WebView::New();
684 DALI_TEST_CHECK( view );
686 Dali::Toolkit::WebContext* context = view.GetContext();
687 DALI_TEST_CHECK( context != 0 );
692 int UtcDaliWebViewGetWebCookieManager(void)
694 ToolkitTestApplication application;
696 WebView view = WebView::New();
697 DALI_TEST_CHECK( view );
699 Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager();
700 DALI_TEST_CHECK( cookieManager != 0 );
705 int UtcDaliWebViewGetWebSettings(void)
707 ToolkitTestApplication application;
709 WebView view = WebView::New();
710 DALI_TEST_CHECK( view );
712 Dali::Toolkit::WebSettings* settings = view.GetSettings();
713 DALI_TEST_CHECK( settings != 0 );
718 int UtcDaliWebViewProperty1(void)
721 ToolkitTestApplication application;
723 WebView view = WebView::New();
724 DALI_TEST_CHECK( view );
727 view.SetProperty( WebView::Property::URL, TEST_URL1 );
728 Property::Value val = view.GetProperty( WebView::Property::URL );
729 DALI_TEST_CHECK( val.Get( local ) );
730 DALI_TEST_EQUALS( local, TEST_URL1, TEST_LOCATION );
735 int UtcDaliWebViewProperty4(void)
738 ToolkitTestApplication application;
740 WebView view = WebView::New();
741 DALI_TEST_CHECK( view );
743 const std::string kDefaultValue;
744 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";
746 // Check default value
748 Property::Value value = view.GetProperty( WebView::Property::USER_AGENT );
749 DALI_TEST_CHECK( value.Get( output ) );
750 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
752 // Check Set/GetProperty
753 view.SetProperty( WebView::Property::USER_AGENT, kTestValue );
754 value = view.GetProperty( WebView::Property::USER_AGENT );
755 DALI_TEST_CHECK( value.Get( output ) );
756 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
761 int UtcDaliWebViewProperty9(void)
764 ToolkitTestApplication application;
766 WebView view = WebView::New();
767 DALI_TEST_CHECK( view );
769 // Check default value
770 Dali::Vector2 output = Dali::Vector2::ONE;
771 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
772 DALI_TEST_CHECK( output.x == 0 && output.y == 0 );
774 // Check Set/GetProperty
775 Dali::Vector2 testValue = Dali::Vector2( 100, 100 );
776 view.SetProperty( WebView::Property::SCROLL_POSITION, testValue );
777 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
778 DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
780 // Check default value of scroll size
781 output = Dali::Vector2::ONE;
782 view.GetProperty( WebView::Property::SCROLL_SIZE ).Get( output );
783 DALI_TEST_CHECK( output.x == 500 && output.y == 500 );
785 // Check default value of content size
786 output = Dali::Vector2::ONE;
787 view.GetProperty( WebView::Property::CONTENT_SIZE ).Get( output );
788 DALI_TEST_CHECK( output.x == 500 && output.y == 500 );
793 int UtcDaliWebViewPropertyBackgroundColorSelectedTextEtc(void)
795 ToolkitTestApplication application;
797 WebView view = WebView::New();
798 DALI_TEST_CHECK( view );
800 Dali::Vector4 testValue = Dali::Vector4(0.0f, 0.0f, 0.0f, 0.0f);
801 view.SetProperty(WebView::Property::DOCUMENT_BACKGROUND_COLOR, testValue);
802 view.SetProperty(WebView::Property::TILES_CLEARED_WHEN_HIDDEN, true);
803 view.SetProperty(WebView::Property::TILE_COVER_AREA_MULTIPLIER, 1.0f);
804 view.SetProperty(WebView::Property::CURSOR_ENABLED_BY_CLIENT, true);
806 // Check default value
807 std::string testText("test");
809 view.GetProperty(WebView::Property::SELECTED_TEXT).Get(output);
810 DALI_TEST_EQUALS(output, testText, TEST_LOCATION);
815 int UtcDaliWebViewPropertyTitleFavicon(void)
817 ToolkitTestApplication application;
819 char argv[] = "--test";
820 WebView view = WebView::New( 1, (char**)&argv );
821 DALI_TEST_CHECK( view );
824 view.ClearAllTilesResources();
826 // Check default value of title
827 std::string testValue("title");
829 view.GetProperty( WebView::Property::TITLE ).Get( output );
830 DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
832 // Check default value of favicon
833 Dali::Toolkit::ImageView* favicon = &view.GetFavicon();
834 DALI_TEST_CHECK( favicon );
835 Dali::Vector3 iconsize = favicon->GetProperty< Vector3 >( Dali::Actor::Property::SIZE );
836 DALI_TEST_CHECK( ( int )iconsize.width == 2 && ( int )iconsize.height == 2 );
841 int UtcDaliWebViewScrollBy(void)
843 ToolkitTestApplication application;
845 WebView view = WebView::New();
846 DALI_TEST_CHECK( view );
849 ConnectionTracker* testTracker = new ConnectionTracker();
850 view.ScrollEdgeReachedSignal().Connect( &OnScrollEdgeReached );
851 bool signal1 = false;
852 view.ConnectSignal( testTracker, "scrollEdgeReached", CallbackFunctor(&signal1) );
853 DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 0, TEST_LOCATION );
855 view.LoadUrl( TEST_URL1 );
856 Test::EmitGlobalTimerSignal();
858 // set scroll position.
859 Dali::Vector2 output = Dali::Vector2::ONE;
860 Dali::Vector2 testValue = Dali::Vector2( 100, 100 );
861 view.SetProperty( WebView::Property::SCROLL_POSITION, testValue );
862 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
863 DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
865 // scroll by and trigger scrollEdgeReached event.
866 view.ScrollBy( 50, 50 );
867 Test::EmitGlobalTimerSignal();
869 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
870 DALI_TEST_CHECK( output.x == 150 && output.y == 150 );
871 DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 1, TEST_LOCATION );
872 DALI_TEST_CHECK( signal1 );
874 // scroll by and trigger scrollEdgeReached event.
875 bool result = view.ScrollEdgeBy( 50, 50 );
876 DALI_TEST_CHECK( result );
877 Test::EmitGlobalTimerSignal();
879 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
880 DALI_TEST_CHECK( output.x == 200 && output.y == 200 );
881 DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 2, TEST_LOCATION );
882 DALI_TEST_CHECK( signal1 );
887 int UtcDaliWebViewSetGetScaleFactorActivateAccessibility(void)
889 ToolkitTestApplication application;
891 WebView view = WebView::New();
892 DALI_TEST_CHECK( view );
894 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
895 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
896 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
897 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
899 application.GetScene().Add( view );
900 application.SendNotification();
901 application.Render();
903 view.ActivateAccessibility(true);
904 view.AddDynamicCertificatePath("host", "test/to/path");
905 bool found = view.HighlightText("test", Dali::WebEnginePlugin::FindOption::CASE_INSENSITIVE, 2);
906 DALI_TEST_CHECK( found );
908 view.SetScaleFactor(1.5f, Dali::Vector2(0.0f, 0.0f));
909 float result = view.GetScaleFactor();
910 DALI_TEST_EQUALS( result, 1.5f, TEST_LOCATION );
912 view.SetScaleFactor(1.0f, Dali::Vector2(0.0f, 0.0f));
913 result = view.GetScaleFactor();
914 DALI_TEST_EQUALS( result, 1.0f, TEST_LOCATION );
919 int UtcDaliWebViewGetScreenshotSyncAndAsync(void)
922 ToolkitTestApplication application;
924 char argv[] = "--test";
925 WebView view = WebView::New( 1, (char**)&argv );
926 DALI_TEST_CHECK( view );
928 // Check GetScreenshot
929 Dali::Rect<int> viewArea;
933 viewArea.height = 10;
934 Dali::Toolkit::ImageView screenshot = view.GetScreenshot(viewArea, 1.0f);
935 DALI_TEST_CHECK( screenshot );
936 Dali::Vector3 shotsize = screenshot.GetProperty< Vector3 >( Dali::Actor::Property::SIZE );
937 DALI_TEST_CHECK( ( int )shotsize.width == viewArea.width && ( int )shotsize.height == viewArea.height );
939 // Check GetScreenshotAsynchronously
942 viewArea.width = 100;
943 viewArea.height = 100;
944 bool result = view.GetScreenshotAsynchronously(viewArea, 1.0f, &OnScreenshotCaptured);
945 DALI_TEST_CHECK( result );
947 Test::EmitGlobalTimerSignal();
949 Test::EmitGlobalTimerSignal();
950 DALI_TEST_EQUALS( gScreenshotCapturedCallbackCalled, 1, TEST_LOCATION );
955 int UtcDaliWebViewVideoPlayingGeolocationPermission(void)
958 ToolkitTestApplication application;
960 char argv[] = "--test";
961 WebView view = WebView::New( 1, (char**)&argv );
962 DALI_TEST_CHECK( view );
964 // Check CheckVideoPlayingAsynchronously
965 bool result = view.CheckVideoPlayingAsynchronously(&OnVideoPlaying);
966 DALI_TEST_CHECK( result );
967 Test::EmitGlobalTimerSignal();
968 DALI_TEST_EQUALS( gVideoPlayingCallbackCalled, 1, TEST_LOCATION );
970 // Check RegisterGeolocationPermissionCallback
971 view.RegisterGeolocationPermissionCallback(&OnGeolocationPermission);
972 Test::EmitGlobalTimerSignal();
973 DALI_TEST_EQUALS( gGeolocationPermissionCallbackCalled, 1, TEST_LOCATION );
978 int UtcDaliWebViewHttpRequestInterceptor(void)
980 ToolkitTestApplication application;
982 WebView view = WebView::New();
983 DALI_TEST_CHECK( view );
986 ConnectionTracker* testTracker = new ConnectionTracker();
987 view.RequestInterceptorSignal().Connect( &OnRequestInterceptor );
988 bool signal1 = false;
989 view.ConnectSignal( testTracker, "requestInterceptor", CallbackFunctor(&signal1) );
990 DALI_TEST_EQUALS( gRequestInterceptorCallbackCalled, 0, TEST_LOCATION );
991 DALI_TEST_CHECK(gRequestInterceptorInstance == 0);
993 view.LoadUrl( TEST_URL1 );
994 Test::EmitGlobalTimerSignal();
995 DALI_TEST_EQUALS( gRequestInterceptorCallbackCalled, 1, TEST_LOCATION );
996 DALI_TEST_CHECK( signal1 );
998 // check request interceptor.
999 DALI_TEST_CHECK(gRequestInterceptorInstance != 0);
1000 DALI_TEST_CHECK(gRequestInterceptorInstance->Ignore());
1001 DALI_TEST_CHECK(gRequestInterceptorInstance->SetResponseStatus(400, "error"));
1002 DALI_TEST_CHECK(gRequestInterceptorInstance->AddResponseHeader("key", "value"));
1003 DALI_TEST_CHECK(gRequestInterceptorInstance->AddResponseBody("test", 4));
1004 std::string testUrl("http://test.html");
1005 DALI_TEST_EQUALS(gRequestInterceptorInstance->GetUrl(), testUrl, TEST_LOCATION);
1007 gRequestInterceptorInstance = nullptr;
1012 int UtcDaliWebViewEvaluteJavaScript(void)
1014 ToolkitTestApplication application;
1016 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
1018 view.LoadHtmlString( "<body>Hello World!</body>" );
1019 view.EvaluateJavaScript( "jsObject.postMessage('Hello')" );
1020 view.EvaluateJavaScript( "jsObject.postMessage('World')", OnEvaluateJavaScript );
1021 Test::EmitGlobalTimerSignal();
1023 DALI_TEST_EQUALS( gEvaluateJavaScriptCallbackCalled, 1, TEST_LOCATION );
1028 int UtcDaliWebViewJavaScriptAlertConfirmPrompt(void)
1030 ToolkitTestApplication application;
1032 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
1034 view.RegisterJavaScriptAlertCallback( &OnJavaScriptAlert );
1035 view.LoadHtmlString( "<head><script type='text/javascript'>alert('this is an alert popup.');</script></head><body>Hello World!</body>" );
1036 view.JavaScriptAlertReply();
1037 Test::EmitGlobalTimerSignal();
1038 DALI_TEST_EQUALS( gJavaScriptAlertCallbackCalled, 1, TEST_LOCATION );
1040 view.RegisterJavaScriptConfirmCallback( &OnJavaScriptConfirm );
1041 view.LoadHtmlString( "<head><script type='text/javascript'>confirm('this is a confirm popup.');</script></head><body>Hello World!</body>" );
1042 view.JavaScriptConfirmReply( true );
1043 Test::EmitGlobalTimerSignal();
1044 DALI_TEST_EQUALS( gJavaScriptConfirmCallbackCalled, 1, TEST_LOCATION );
1046 view.RegisterJavaScriptPromptCallback( &OnJavaScriptPrompt );
1047 view.LoadHtmlString( "<head><script type='text/javascript'>prompt('this is a prompt popup.');</script></head><body>Hello World!</body>" );
1048 view.JavaScriptPromptReply( "it is a prompt." );
1049 Test::EmitGlobalTimerSignal();
1050 DALI_TEST_EQUALS( gJavaScriptPromptCallbackCalled, 1, TEST_LOCATION );
1055 int UtcDaliWebViewLoadHtmlStringOverrideCurrentEntryAndContents(void)
1057 ToolkitTestApplication application;
1059 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
1060 DALI_TEST_CHECK( view );
1062 std::string html("<body>Hello World!</body>");
1063 std::string basicUri("http://basicurl");
1064 std::string unreachableUrl("http://unreachableurl");
1065 bool result = view.LoadHtmlStringOverrideCurrentEntry( html, basicUri, unreachableUrl );
1066 DALI_TEST_CHECK( result );
1068 application.SendNotification();
1069 application.Render();
1070 Test::EmitGlobalTimerSignal();
1072 result = view.LoadContents( html, html.length(), "html/text", "utf-8", basicUri );
1073 DALI_TEST_CHECK( result );
1078 int UtcDaliWebViewReloadSuspendResumeNetworkLoadingCustomHeader(void)
1080 ToolkitTestApplication application;
1082 WebView view = WebView::New();
1083 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
1084 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
1085 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
1086 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
1088 application.GetScene().Add( view );
1089 application.SendNotification();
1090 application.Render();
1091 DALI_TEST_CHECK( view );
1093 view.LoadUrl( "http://test.html" );
1094 bool result = view.AddCustomHeader("key", "value");
1095 DALI_TEST_CHECK( result );
1097 result = view.ReloadWithoutCache();
1098 DALI_TEST_CHECK( result );
1100 uint32_t portNumber = view.StartInspectorServer(5000);
1101 DALI_TEST_EQUALS( portNumber, 5000, TEST_LOCATION );
1103 application.SendNotification();
1104 application.Render();
1105 Test::EmitGlobalTimerSignal();
1107 result = view.StopInspectorServer();
1108 DALI_TEST_CHECK( result );
1110 view.SuspendNetworkLoading();
1112 result = view.RemoveCustomHeader("key");
1113 DALI_TEST_CHECK( result );
1115 view.ResumeNetworkLoading();
1120 int UtcDaliWebViewMethodsForCoverage(void)
1122 ToolkitTestApplication application;
1124 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
1126 view.LoadHtmlString( "<body>Hello World!</body>" );
1127 view.AddJavaScriptMessageHandler( "jsObject",
1128 []( const std::string& arg ) {
1132 DALI_TEST_CHECK( view );
1137 // test cases for web backforward list.
1139 int UtcDaliWebBackForwardListCheckItem(void)
1141 ToolkitTestApplication application;
1143 WebView view = WebView::New();
1144 DALI_TEST_CHECK( view );
1146 Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
1147 DALI_TEST_CHECK( bfList != 0 )
1149 unsigned int itemCount = bfList->GetItemCount();
1150 DALI_TEST_CHECK( itemCount == 1 )
1152 Dali::Toolkit::WebBackForwardListItem* citem = bfList->GetCurrentItem();
1153 DALI_TEST_CHECK( citem != 0 );
1155 const std::string kDefaultUrl( "http://url" );
1156 std::string testValue = citem->GetUrl();
1157 DALI_TEST_EQUALS( testValue, kDefaultUrl, TEST_LOCATION );
1159 const std::string kDefaultTitle( "title" );
1160 testValue = citem->GetTitle();
1161 DALI_TEST_EQUALS( testValue, kDefaultTitle, TEST_LOCATION );
1163 const std::string kDefaultOriginalUrl( "http://originalurl" );
1164 testValue = citem->GetOriginalUrl();
1165 DALI_TEST_EQUALS( testValue, kDefaultOriginalUrl, TEST_LOCATION );
1167 Dali::Toolkit::WebBackForwardListItem* item = bfList->GetItemAtIndex( 0 );
1168 DALI_TEST_CHECK( item != 0 );
1173 // test cases for web context.
1175 int UtcDaliWebContextGetSetCacheModel(void)
1177 ToolkitTestApplication application;
1179 WebView view = WebView::New();
1180 DALI_TEST_CHECK( view );
1182 Dali::Toolkit::WebContext* context = view.GetContext();
1183 DALI_TEST_CHECK( context != 0 )
1185 std::string kDefaultValue;
1188 context->SetProxyUri( kDefaultValue );
1189 context->SetCertificateFilePath( kDefaultValue );
1190 context->DisableCache( false );
1191 context->SetDefaultProxyAuth( kDefaultValue, kDefaultValue );
1192 context->DeleteWebDatabase();
1193 context->DeleteWebStorage();
1194 context->DeleteLocalFileSystem();
1195 context->ClearCache();
1197 // Check default value
1198 Dali::WebEngineContext::CacheModel value = context->GetCacheModel();
1199 DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER );
1201 // Check Set/GetProperty
1202 context->SetCacheModel( Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
1203 value = context->GetCacheModel();
1204 DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
1209 // test cases for web cookie manager.
1211 int UtcDaliWebCookieManagerGetSetCookieAcceptPolicy(void)
1213 ToolkitTestApplication application;
1215 WebView view = WebView::New();
1216 DALI_TEST_CHECK( view );
1218 Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager();
1219 DALI_TEST_CHECK( cookieManager != 0 )
1221 const std::string kDefaultValue;
1224 cookieManager->SetPersistentStorage( kDefaultValue, Dali::WebEngineCookieManager::CookiePersistentStorage::SQLITE );
1225 cookieManager->ClearCookies();
1227 // Check default value
1228 Dali::WebEngineCookieManager::CookieAcceptPolicy value = cookieManager->GetCookieAcceptPolicy();
1229 DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY );
1231 // Check Set/GetProperty
1232 cookieManager->SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS );
1233 value = cookieManager->GetCookieAcceptPolicy();
1234 DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS );
1239 // test cases for web settings.
1241 int UtcDaliWebSettingsGetSetDefaultFontSize(void)
1243 ToolkitTestApplication application;
1245 WebView view = WebView::New();
1246 DALI_TEST_CHECK( view );
1248 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1249 DALI_TEST_CHECK( settings != 0 )
1252 settings->AllowMixedContents( false );
1253 settings->EnableSpatialNavigation( false );
1254 settings->EnableWebSecurity( false );
1255 settings->EnableCacheBuilder( false );
1256 settings->EnableDoNotTrack( false );
1257 settings->UseScrollbarThumbFocusNotifications( false );
1258 settings->AllowFileAccessFromExternalUrl( false );
1259 settings->AllowScriptsOpenWindows( false );
1261 // Check default value
1262 int value = settings->GetDefaultFontSize();
1263 DALI_TEST_CHECK( value == 16 );
1265 // Check Set/GetProperty
1266 settings->SetDefaultFontSize( 20 );
1267 value = settings->GetDefaultFontSize();
1268 DALI_TEST_CHECK( value == 20 );
1273 int UtcDaliWebSettingsCheckEnableJavaScript(void)
1275 ToolkitTestApplication application;
1277 WebView view = WebView::New();
1278 DALI_TEST_CHECK( view );
1280 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1281 DALI_TEST_CHECK( settings != 0 )
1284 settings->AllowMixedContents( false );
1285 settings->EnableSpatialNavigation( false );
1286 settings->EnableWebSecurity( false );
1287 settings->EnableCacheBuilder( false );
1288 settings->EnableDoNotTrack( false );
1289 settings->UseScrollbarThumbFocusNotifications( false );
1290 settings->AllowFileAccessFromExternalUrl( false );
1291 settings->AllowScriptsOpenWindows( false );
1293 // Check default value is true or not
1294 bool value = settings->IsJavaScriptEnabled();
1295 DALI_TEST_CHECK( value );
1297 // Check Set/GetProperty
1298 settings->EnableJavaScript( false );
1299 value = settings->IsJavaScriptEnabled();
1300 DALI_TEST_CHECK( !value );
1305 int UtcDaliWebSettingsCheckEnableAutoFitting(void)
1307 ToolkitTestApplication application;
1309 WebView view = WebView::New();
1310 DALI_TEST_CHECK( view );
1312 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1313 DALI_TEST_CHECK( settings != 0 )
1316 settings->AllowMixedContents( false );
1317 settings->EnableSpatialNavigation( false );
1318 settings->EnableWebSecurity( false );
1319 settings->EnableCacheBuilder( false );
1320 settings->EnableDoNotTrack( false );
1321 settings->UseScrollbarThumbFocusNotifications( false );
1322 settings->AllowFileAccessFromExternalUrl( false );
1323 settings->AllowScriptsOpenWindows( false );
1325 // Check default value is true or not
1326 bool value = settings->IsAutoFittingEnabled();
1327 DALI_TEST_CHECK( value );
1329 // Check Set/GetProperty
1330 settings->EnableAutoFitting( false );
1331 value = settings->IsAutoFittingEnabled();
1332 DALI_TEST_CHECK( !value );
1337 int UtcDaliWebSettingsCheckEnablePlugins(void)
1339 ToolkitTestApplication application;
1341 WebView view = WebView::New();
1342 DALI_TEST_CHECK( view );
1344 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1345 DALI_TEST_CHECK( settings != 0 )
1348 settings->AllowMixedContents( false );
1349 settings->EnableSpatialNavigation( false );
1350 settings->EnableWebSecurity( false );
1351 settings->EnableCacheBuilder( false );
1352 settings->EnableDoNotTrack( false );
1353 settings->UseScrollbarThumbFocusNotifications( false );
1354 settings->AllowFileAccessFromExternalUrl( false );
1355 settings->AllowScriptsOpenWindows( false );
1357 // Check default value is true or not
1358 bool value = settings->ArePluginsEnabled();
1359 DALI_TEST_CHECK( value );
1361 // Check Set/GetProperty
1362 settings->EnablePlugins( false );
1363 value = settings->ArePluginsEnabled();
1364 DALI_TEST_CHECK( !value );
1369 int UtcDaliWebSettingsCheckEnablePrivateBrowsing(void)
1371 ToolkitTestApplication application;
1373 WebView view = WebView::New();
1374 DALI_TEST_CHECK( view );
1376 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1377 DALI_TEST_CHECK( settings != 0 )
1380 settings->AllowMixedContents( false );
1381 settings->EnableSpatialNavigation( false );
1382 settings->EnableWebSecurity( false );
1383 settings->EnableCacheBuilder( false );
1384 settings->EnableDoNotTrack( false );
1385 settings->UseScrollbarThumbFocusNotifications( false );
1386 settings->AllowFileAccessFromExternalUrl( false );
1387 settings->AllowScriptsOpenWindows( false );
1389 // Check default value is true or not
1390 bool value = settings->IsPrivateBrowsingEnabled();
1391 DALI_TEST_CHECK( value );
1393 // Check Set/GetProperty
1394 settings->EnablePrivateBrowsing( false );
1395 value = settings->IsPrivateBrowsingEnabled();
1396 DALI_TEST_CHECK( !value );
1401 int UtcDaliWebSettingsCheckEnableLinkMagnifier(void)
1403 ToolkitTestApplication application;
1405 WebView view = WebView::New();
1406 DALI_TEST_CHECK( view );
1408 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1409 DALI_TEST_CHECK( settings != 0 )
1412 settings->AllowMixedContents( false );
1413 settings->EnableSpatialNavigation( false );
1414 settings->EnableWebSecurity( false );
1415 settings->EnableCacheBuilder( false );
1416 settings->EnableDoNotTrack( false );
1417 settings->UseScrollbarThumbFocusNotifications( false );
1418 settings->AllowFileAccessFromExternalUrl( false );
1419 settings->AllowScriptsOpenWindows( false );
1421 // Check default value is true or not
1422 bool value = settings->IsLinkMagnifierEnabled();
1423 DALI_TEST_CHECK( value );
1425 // Check Set/GetProperty
1426 settings->EnableLinkMagnifier( false );
1427 value = settings->IsLinkMagnifierEnabled();
1428 DALI_TEST_CHECK( !value );
1433 int UtcDaliWebSettingsCheckUseKeypadWithoutUserAction(void)
1435 ToolkitTestApplication application;
1437 WebView view = WebView::New();
1438 DALI_TEST_CHECK( view );
1440 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1441 DALI_TEST_CHECK( settings != 0 )
1444 settings->AllowMixedContents( false );
1445 settings->EnableSpatialNavigation( false );
1446 settings->EnableWebSecurity( false );
1447 settings->EnableCacheBuilder( false );
1448 settings->EnableDoNotTrack( false );
1449 settings->UseScrollbarThumbFocusNotifications( false );
1450 settings->AllowFileAccessFromExternalUrl( false );
1451 settings->AllowScriptsOpenWindows( false );
1453 // Check default value is true or not
1454 bool value = settings->IsKeypadWithoutUserActionUsed();
1455 DALI_TEST_CHECK( value );
1457 // Check Set/GetProperty
1458 settings->UseKeypadWithoutUserAction( false );
1459 value = settings->IsKeypadWithoutUserActionUsed();
1460 DALI_TEST_CHECK( !value );
1465 int UtcDaliWebSettingsCheckEnableAutofillPasswordForm(void)
1467 ToolkitTestApplication application;
1469 WebView view = WebView::New();
1470 DALI_TEST_CHECK( view );
1472 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1473 DALI_TEST_CHECK( settings != 0 )
1476 settings->AllowMixedContents( false );
1477 settings->EnableSpatialNavigation( false );
1478 settings->EnableWebSecurity( false );
1479 settings->EnableCacheBuilder( false );
1480 settings->EnableDoNotTrack( false );
1481 settings->UseScrollbarThumbFocusNotifications( false );
1482 settings->AllowFileAccessFromExternalUrl( false );
1483 settings->AllowScriptsOpenWindows( false );
1485 // Check default value is true or not
1486 bool value = settings->IsAutofillPasswordFormEnabled();
1487 DALI_TEST_CHECK( value );
1488 settings->EnableAutofillPasswordForm( false );
1489 value = settings->IsAutofillPasswordFormEnabled();
1490 DALI_TEST_CHECK( !value );
1494 int UtcDaliWebSettingsCheckEnableFormCandidateData(void)
1496 ToolkitTestApplication application;
1498 WebView view = WebView::New();
1499 DALI_TEST_CHECK( view );
1501 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1502 DALI_TEST_CHECK( settings != 0 );
1505 settings->AllowMixedContents( false );
1506 settings->EnableSpatialNavigation( false );
1507 settings->EnableWebSecurity( false );
1508 settings->EnableCacheBuilder( false );
1509 settings->EnableDoNotTrack( false );
1510 settings->UseScrollbarThumbFocusNotifications( false );
1511 settings->AllowFileAccessFromExternalUrl( false );
1512 settings->AllowScriptsOpenWindows( false );
1514 // Check default value is true or not
1515 bool value = settings->IsFormCandidateDataEnabled();
1516 DALI_TEST_CHECK( value );
1518 // Check Set/GetProperty
1519 settings->EnableFormCandidateData( false );
1520 value = settings->IsFormCandidateDataEnabled();
1521 DALI_TEST_CHECK( !value );
1526 int UtcDaliWebSettingsCheckEnableTextSelection(void)
1528 ToolkitTestApplication application;
1530 WebView view = WebView::New();
1531 DALI_TEST_CHECK( view );
1533 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1534 DALI_TEST_CHECK( settings != 0 );
1537 settings->AllowMixedContents( false );
1538 settings->EnableSpatialNavigation( false );
1539 settings->EnableWebSecurity( false );
1540 settings->EnableCacheBuilder( false );
1541 settings->EnableDoNotTrack( false );
1542 settings->UseScrollbarThumbFocusNotifications( false );
1543 settings->AllowFileAccessFromExternalUrl( false );
1544 settings->AllowScriptsOpenWindows( false );
1546 // Check default value is true or not
1547 bool value = settings->IsTextSelectionEnabled();
1548 DALI_TEST_CHECK( value );
1550 //Check Set/GetProperty
1551 settings->EnableTextSelection(false);
1552 value = settings->IsTextSelectionEnabled();
1553 DALI_TEST_CHECK( !value );
1558 int UtcDaliWebSettingsCheckEnableTextAutosizing(void)
1560 ToolkitTestApplication application;
1562 WebView view = WebView::New();
1563 DALI_TEST_CHECK( view );
1565 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1566 DALI_TEST_CHECK( settings != 0 );
1569 settings->AllowMixedContents( false );
1570 settings->EnableSpatialNavigation( false );
1571 settings->EnableWebSecurity( false );
1572 settings->EnableCacheBuilder( false );
1573 settings->EnableDoNotTrack( false );
1574 settings->UseScrollbarThumbFocusNotifications( false );
1575 settings->AllowFileAccessFromExternalUrl( false );
1576 settings->AllowScriptsOpenWindows( false );
1578 // Check default value is true or not
1579 bool value = settings->IsTextAutosizingEnabled();
1580 DALI_TEST_CHECK( value );
1582 // Check Set/GetProperty
1583 settings->EnableTextAutosizing(false);
1584 value = settings->IsTextAutosizingEnabled();
1585 DALI_TEST_CHECK( !value );
1590 int UtcDaliWebSettingsCheckEnableArrowScroll(void)
1592 ToolkitTestApplication application;
1594 WebView view = WebView::New();
1595 DALI_TEST_CHECK( view );
1597 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1598 DALI_TEST_CHECK( settings != 0 );
1601 settings->AllowMixedContents( false );
1602 settings->EnableSpatialNavigation( false );
1603 settings->EnableWebSecurity( false );
1604 settings->EnableCacheBuilder( false );
1605 settings->EnableDoNotTrack( false );
1606 settings->UseScrollbarThumbFocusNotifications( false );
1607 settings->AllowFileAccessFromExternalUrl( false );
1608 settings->AllowScriptsOpenWindows( false );
1610 // Check default value is true or not
1611 bool value = settings->IsArrowScrollEnabled();
1612 DALI_TEST_CHECK( value );
1614 // Check Set/GetProperty
1615 settings->EnableArrowScroll(false);
1616 value = settings->IsArrowScrollEnabled();
1617 DALI_TEST_CHECK( !value );
1622 int UtcDaliWebSettingsCheckEnableClipboard(void)
1624 ToolkitTestApplication application;
1626 WebView view = WebView::New();
1627 DALI_TEST_CHECK( view );
1629 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1630 DALI_TEST_CHECK( settings != 0 );
1633 settings->AllowMixedContents( false );
1634 settings->EnableSpatialNavigation( false );
1635 settings->EnableWebSecurity( false );
1636 settings->EnableCacheBuilder( false );
1637 settings->EnableDoNotTrack( false );
1638 settings->UseScrollbarThumbFocusNotifications( false );
1639 settings->AllowFileAccessFromExternalUrl( false );
1640 settings->AllowScriptsOpenWindows( false );
1642 // Check default value is true or not
1643 bool value = settings->IsClipboardEnabled();
1644 DALI_TEST_CHECK( value );
1645 settings->EnableClipboard(false);
1646 value = settings->IsClipboardEnabled();
1647 DALI_TEST_CHECK( !value );
1651 int UtcDaliWebSettingsCheckEnableImePanel(void)
1653 ToolkitTestApplication application;
1655 WebView view = WebView::New();
1656 DALI_TEST_CHECK( view );
1658 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1659 DALI_TEST_CHECK( settings != 0 );
1662 settings->AllowMixedContents( false );
1663 settings->EnableSpatialNavigation( false );
1664 settings->EnableWebSecurity( false );
1665 settings->EnableCacheBuilder( false );
1666 settings->EnableDoNotTrack( false );
1667 settings->UseScrollbarThumbFocusNotifications( false );
1668 settings->AllowFileAccessFromExternalUrl( false );
1669 settings->AllowScriptsOpenWindows( false );
1671 // Check default value is true or not
1672 bool value = settings->IsImePanelEnabled();
1673 DALI_TEST_CHECK( value );
1675 // Check Set/GetProperty
1676 settings->EnableImePanel(false);
1677 value = settings->IsImePanelEnabled();
1678 DALI_TEST_CHECK( !value );
1683 int UtcDaliWebSettingsCheckAllowImagesLoadAutomatically(void)
1685 ToolkitTestApplication application;
1687 WebView view = WebView::New();
1688 DALI_TEST_CHECK( view );
1690 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1691 DALI_TEST_CHECK( settings != 0 )
1694 settings->AllowMixedContents( false );
1695 settings->EnableSpatialNavigation( false );
1696 settings->EnableWebSecurity( false );
1697 settings->EnableCacheBuilder( false );
1698 settings->EnableDoNotTrack( false );
1699 settings->UseScrollbarThumbFocusNotifications( false );
1700 settings->AllowFileAccessFromExternalUrl( false );
1701 settings->AllowScriptsOpenWindows( false );
1703 // Check default value is true or not
1704 bool value = settings->AreImagesLoadedAutomatically();
1705 DALI_TEST_CHECK( value );
1707 // Check Set/GetProperty
1708 settings->AllowImagesLoadAutomatically( false );
1709 value = settings->AreImagesLoadedAutomatically();
1710 DALI_TEST_CHECK( !value );
1715 int UtcDaliWebSettingsGetSetDefaultTextEncodingName(void)
1717 ToolkitTestApplication application;
1719 WebView view = WebView::New();
1720 DALI_TEST_CHECK( view );
1722 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1723 DALI_TEST_CHECK( settings != 0 )
1725 const std::string kDefaultValue;
1726 const std::string kTestValue = "UTF-8";
1729 settings->AllowMixedContents( false );
1730 settings->EnableSpatialNavigation( false );
1731 settings->EnableWebSecurity( false );
1732 settings->EnableCacheBuilder( false );
1733 settings->EnableDoNotTrack( false );
1734 settings->UseScrollbarThumbFocusNotifications( false );
1735 settings->AllowFileAccessFromExternalUrl( false );
1736 settings->AllowScriptsOpenWindows( false );
1738 // Check default value
1739 std::string value = settings->GetDefaultTextEncodingName();
1740 DALI_TEST_EQUALS( value, kDefaultValue, TEST_LOCATION );
1742 // Check Set/GetProperty
1743 settings->SetDefaultTextEncodingName( kTestValue );
1744 value = settings->GetDefaultTextEncodingName();
1745 DALI_TEST_EQUALS( value, kTestValue, TEST_LOCATION );