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-certificate.h>
26 #include <dali/devel-api/adaptor-framework/web-engine-console-message.h>
27 #include <dali/devel-api/adaptor-framework/web-engine-frame.h>
28 #include <dali/devel-api/adaptor-framework/web-engine-http-auth-handler.h>
29 #include <dali/devel-api/adaptor-framework/web-engine-load-error.h>
30 #include <dali/devel-api/adaptor-framework/web-engine-policy-decision.h>
31 #include <dali/devel-api/adaptor-framework/web-engine-request-interceptor.h>
32 #include <dali/integration-api/events/hover-event-integ.h>
33 #include <dali/integration-api/events/key-event-integ.h>
34 #include <dali/integration-api/events/touch-event-integ.h>
35 #include <dali/integration-api/events/wheel-event-integ.h>
36 #include <dali/public-api/images/pixel-data.h>
37 #include <dali-toolkit/public-api/controls/image-view/image-view.h>
38 #include <dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h>
39 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list.h>
40 #include <dali-toolkit/devel-api/controls/web-view/web-context.h>
41 #include <dali-toolkit/devel-api/controls/web-view/web-cookie-manager.h>
42 #include <dali-toolkit/devel-api/controls/web-view/web-form-repost-decision.h>
43 #include <dali-toolkit/devel-api/controls/web-view/web-settings.h>
44 #include <dali-toolkit/devel-api/controls/web-view/web-view.h>
47 using namespace Toolkit;
52 const char* const TEST_URL1( "http://www.somewhere.valid1.com" );
53 const char* const TEST_URL2( "http://www.somewhere.valid2.com" );
55 static int gPageLoadStartedCallbackCalled = 0;
56 static int gPageLoadInProgressCallbackCalled = 0;
57 static int gPageLoadFinishedCallbackCalled = 0;
58 static int gPageLoadErrorCallbackCalled = 0;
59 static std::shared_ptr<Dali::WebEngineLoadError> gPageLoadErrorInstance = nullptr;
60 static int gScrollEdgeReachedCallbackCalled = 0;
61 static int gUrlChangedCallbackCalled = 0;
62 static int gEvaluateJavaScriptCallbackCalled = 0;
63 static int gJavaScriptAlertCallbackCalled = 0;
64 static int gJavaScriptConfirmCallbackCalled = 0;
65 static int gJavaScriptPromptCallbackCalled = 0;
66 static int gScreenshotCapturedCallbackCalled = 0;
67 static int gVideoPlayingCallbackCalled = 0;
68 static int gGeolocationPermissionCallbackCalled = 0;
69 static bool gTouched = false;
70 static bool gHovered = false;
71 static bool gWheelEventHandled = false;
72 static int gFormRepostDecisionCallbackCalled = 0;
73 static std::shared_ptr<Dali::Toolkit::WebFormRepostDecision> gFormRepostDecisionInstance = nullptr;
74 static int gFrameRenderedCallbackCalled = 0;
75 static int gRequestInterceptorCallbackCalled = 0;
76 static std::shared_ptr<Dali::WebEngineRequestInterceptor> gRequestInterceptorInstance = nullptr;
77 static int gConsoleMessageCallbackCalled = 0;
78 static std::shared_ptr<Dali::WebEngineConsoleMessage> gConsoleMessageInstance = nullptr;
79 static int gPolicyDecisionCallbackCalled = 0;
80 static std::shared_ptr<Dali::WebEnginePolicyDecision> gPolicyDecisionInstance = nullptr;
81 static int gCertificateConfirmCallbackCalled = 0;
82 static std::shared_ptr<Dali::WebEngineCertificate> gCertificateConfirmInstance = nullptr;
83 static int gSslCertificateChangedCallbackCalled = 0;
84 static std::shared_ptr<Dali::WebEngineCertificate> gSslCertificateInstance = nullptr;
85 static int gHttpAuthHandlerCallbackCalled = 0;
86 static std::shared_ptr<Dali::WebEngineHttpAuthHandler> gHttpAuthInstance = nullptr;
88 struct CallbackFunctor
90 CallbackFunctor(bool* callbackFlag)
91 : mCallbackFlag( callbackFlag )
97 *mCallbackFlag = true;
102 static void OnPageLoadStarted( WebView view, const std::string& url )
104 gPageLoadStartedCallbackCalled++;
107 static void OnPageLoadInProgress( WebView view, const std::string& url )
109 gPageLoadInProgressCallbackCalled++;
112 static void OnPageLoadFinished( WebView view, const std::string& url )
114 gPageLoadFinishedCallbackCalled++;
117 static void OnScrollEdgeReached( WebView view, Dali::WebEnginePlugin::ScrollEdge edge )
119 gScrollEdgeReachedCallbackCalled++;
122 static void OnPolicyDecisionRequest(WebView view, std::shared_ptr<Dali::WebEnginePolicyDecision> decision)
124 gPolicyDecisionCallbackCalled++;
125 gPolicyDecisionInstance = std::move(decision);
128 static void OnUrlChanged( WebView view, const std::string& url )
130 gUrlChangedCallbackCalled++;
133 static void OnPageLoadError(WebView view, std::shared_ptr<Dali::WebEngineLoadError> error)
135 gPageLoadErrorCallbackCalled++;
136 gPageLoadErrorInstance = std::move(error);
139 static void OnEvaluateJavaScript( const std::string& result )
141 gEvaluateJavaScriptCallbackCalled++;
144 static bool OnJavaScriptAlert( const std::string& result )
146 gJavaScriptAlertCallbackCalled++;
150 static bool OnJavaScriptConfirm( const std::string& result )
152 gJavaScriptConfirmCallbackCalled++;
156 static bool OnJavaScriptPrompt( const std::string& meesage1, const std::string& message2 )
158 gJavaScriptPromptCallbackCalled++;
162 static void OnScreenshotCaptured(Dali::Toolkit::ImageView)
164 gScreenshotCapturedCallbackCalled++;
167 static void OnVideoPlaying(bool isPlaying)
169 gVideoPlayingCallbackCalled++;
172 static bool OnGeolocationPermission(const std::string&, const std::string&)
174 gGeolocationPermissionCallbackCalled++;
178 static bool OnTouched( Actor actor, const Dali::TouchEvent& touch )
184 static bool OnHovered( Actor actor, const Dali::HoverEvent& hover )
190 static bool OnWheelEvent( Actor actor, const Dali::WheelEvent& wheel )
192 gWheelEventHandled = true;
196 static void OnFormRepostDecision(WebView, std::shared_ptr<Dali::Toolkit::WebFormRepostDecision> decision)
198 gFormRepostDecisionCallbackCalled++;
199 gFormRepostDecisionInstance = std::move(decision);
202 static void OnFrameRendered(WebView)
204 gFrameRenderedCallbackCalled++;
207 static void OnRequestInterceptor(WebView view, std::shared_ptr<Dali::WebEngineRequestInterceptor> interceptor)
209 gRequestInterceptorCallbackCalled++;
210 gRequestInterceptorInstance = std::move(interceptor);
213 static void OnConsoleMessage(WebView view, std::shared_ptr<Dali::WebEngineConsoleMessage> message)
215 gConsoleMessageCallbackCalled++;
216 gConsoleMessageInstance = std::move(message);
219 static void OnCertificateConfirm(WebView view, std::shared_ptr<Dali::WebEngineCertificate> certificate )
221 gCertificateConfirmCallbackCalled++;
222 gCertificateConfirmInstance = std::move(certificate);
225 static void OnSslCertificateChanged(WebView view, std::shared_ptr<Dali::WebEngineCertificate> certificate )
227 gSslCertificateChangedCallbackCalled++;
228 gSslCertificateInstance = std::move(certificate);
231 static void OnHttpAuthHandler( WebView view, std::shared_ptr<Dali::WebEngineHttpAuthHandler> hander )
233 gHttpAuthHandlerCallbackCalled++;
234 gHttpAuthInstance = std::move(hander);
239 void web_view_startup(void)
241 test_return_value = TET_UNDEF;
244 void web_view_cleanup(void)
246 test_return_value = TET_PASS;
249 int UtcDaliWebViewBasics(void)
251 ToolkitTestApplication application;
253 // Copy and Assignment Test
254 tet_infoline( "UtcDaliWebViewBasic Copy and Assignment Test" );
255 WebView view = WebView::New();
256 DALI_TEST_CHECK( view );
258 WebView copy( view );
259 DALI_TEST_CHECK( view == copy );
262 DALI_TEST_CHECK( !assign );
265 DALI_TEST_CHECK( assign == view );
268 tet_infoline( "UtcDaliWebViewBasic DownCast Test" );
269 BaseHandle handle(view);
271 WebView view2 = WebView::DownCast( handle );
272 DALI_TEST_CHECK( view );
273 DALI_TEST_CHECK( view2 );
274 DALI_TEST_CHECK( view == view2 );
277 tet_infoline( "UtcDaliWebViewBasic TypeRegistry Test" );
278 TypeRegistry typeRegistry = TypeRegistry::Get();
279 DALI_TEST_CHECK( typeRegistry );
281 TypeInfo typeInfo = typeRegistry.GetTypeInfo( "WebView" );
282 DALI_TEST_CHECK( typeInfo );
284 BaseHandle handle2 = typeInfo.CreateInstance();
285 DALI_TEST_CHECK( handle2 );
287 WebView view3 = WebView::DownCast( handle2 );
288 DALI_TEST_CHECK( view3 );
293 int UtcDaliWebViewPageNavigation(void)
295 ToolkitTestApplication application;
297 WebView view = WebView::New();
298 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
299 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
300 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
301 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
302 application.GetScene().Add( view );
303 application.SendNotification();
304 application.Render();
305 DALI_TEST_CHECK( view );
307 ConnectionTracker* testTracker = new ConnectionTracker();
308 view.PageLoadStartedSignal().Connect( &OnPageLoadStarted );
309 view.PageLoadInProgressSignal().Connect( &OnPageLoadInProgress );
310 view.PageLoadFinishedSignal().Connect( &OnPageLoadFinished );
311 view.UrlChangedSignal().Connect( &OnUrlChanged );
312 bool signal1 = false;
313 bool signal2 = false;
314 bool signal3 = false;
315 bool signal4 = false;
316 bool signal5 = false;
317 view.ConnectSignal( testTracker, "pageLoadStarted", CallbackFunctor(&signal1) );
318 view.ConnectSignal( testTracker, "pageLoadInProgress", CallbackFunctor(&signal2) );
319 view.ConnectSignal( testTracker, "pageLoadFinished", CallbackFunctor(&signal3) );
320 view.ConnectSignal( testTracker, "urlChanged", CallbackFunctor(&signal4) );
321 view.ConnectSignal( testTracker, "invalidname", CallbackFunctor(&signal5) );
322 DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 0, TEST_LOCATION );
323 DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 0, TEST_LOCATION );
324 DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 0, TEST_LOCATION );
325 DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 0, TEST_LOCATION );
327 view.LoadUrl( TEST_URL1 );
328 view.GetNaturalSize();
329 Test::EmitGlobalTimerSignal();
330 DALI_TEST_EQUALS( view.CanGoBack(), false, TEST_LOCATION );
331 DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 1, TEST_LOCATION );
332 DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 1, TEST_LOCATION );
333 DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 1, TEST_LOCATION );
334 DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 1, TEST_LOCATION );
335 DALI_TEST_CHECK( signal1 & signal2 & signal3 & signal4 );
336 DALI_TEST_CHECK( !signal5 );
338 view.LoadUrl( TEST_URL2 );
340 view.SetProperty( Actor::Property::SIZE, Vector2( 400, 300 ) );
341 application.SendNotification();
342 application.Render();
343 Test::EmitGlobalTimerSignal();
345 DALI_TEST_EQUALS( view.CanGoBack(), true, TEST_LOCATION );
346 DALI_TEST_EQUALS( view.CanGoForward(), false, TEST_LOCATION );
347 DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 2, TEST_LOCATION );
348 DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 2, TEST_LOCATION );
349 DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 2, TEST_LOCATION );
350 DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 2, TEST_LOCATION );
353 Test::EmitGlobalTimerSignal();
354 DALI_TEST_CHECK( !view.CanGoBack() );
355 DALI_TEST_CHECK( view.CanGoForward() );
358 Test::EmitGlobalTimerSignal();
359 DALI_TEST_CHECK( view.CanGoBack() );
360 DALI_TEST_CHECK( !view.CanGoForward() );
365 Test::EmitGlobalTimerSignal();
366 DALI_TEST_CHECK( !view.CanGoBack() );
367 DALI_TEST_CHECK( !view.CanGoForward() );
372 int UtcDaliWebViewPageLoadErrorConsoleMessage(void)
374 ToolkitTestApplication application;
376 WebView view = WebView::New();
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 ) );
381 application.GetScene().Add( view );
382 application.SendNotification();
383 application.Render();
384 DALI_TEST_CHECK( view );
386 ConnectionTracker* testTracker = new ConnectionTracker();
387 view.PageLoadErrorSignal().Connect( &OnPageLoadError );
388 view.ConsoleMessageSignal().Connect( &OnConsoleMessage );
389 bool signal1 = false;
390 bool signal2 = false;
391 view.ConnectSignal( testTracker, "pageLoadError", CallbackFunctor(&signal1) );
392 view.ConnectSignal( testTracker, "consoleMessage", CallbackFunctor(&signal2) );
393 DALI_TEST_EQUALS( gPageLoadErrorCallbackCalled, 0, TEST_LOCATION );
394 DALI_TEST_EQUALS( gConsoleMessageCallbackCalled, 0, TEST_LOCATION );
396 view.LoadUrl( TEST_URL1 );
397 Test::EmitGlobalTimerSignal();
398 DALI_TEST_EQUALS( gPageLoadErrorCallbackCalled, 1, TEST_LOCATION );
399 DALI_TEST_EQUALS( gConsoleMessageCallbackCalled, 1, TEST_LOCATION );
400 DALI_TEST_CHECK( signal1 & signal2);
403 DALI_TEST_CHECK(gPageLoadErrorInstance);
404 DALI_TEST_EQUALS(gPageLoadErrorInstance->GetUrl(), TEST_URL1, TEST_LOCATION);
405 DALI_TEST_EQUALS(gPageLoadErrorInstance->GetCode(), Dali::WebEngineLoadError::ErrorCode::UNKNOWN, TEST_LOCATION);
406 std::string testErrorDescription("This is an error.");
407 DALI_TEST_EQUALS(gPageLoadErrorInstance->GetDescription(), testErrorDescription, TEST_LOCATION);
408 DALI_TEST_EQUALS(gPageLoadErrorInstance->GetType(), Dali::WebEngineLoadError::ErrorType::NONE, TEST_LOCATION);
411 DALI_TEST_CHECK(gConsoleMessageInstance);
412 std::string testConsoleSource("source");
413 DALI_TEST_EQUALS(gConsoleMessageInstance->GetSource(), testConsoleSource, TEST_LOCATION);
414 DALI_TEST_EQUALS(gConsoleMessageInstance->GetLine(), 10, TEST_LOCATION);
415 DALI_TEST_EQUALS(gConsoleMessageInstance->GetSeverityLevel(), Dali::WebEngineConsoleMessage::SeverityLevel::EMPTY, TEST_LOCATION);
416 std::string testConsoleText("This is a text.");
417 DALI_TEST_EQUALS(gConsoleMessageInstance->GetText(), testConsoleText, TEST_LOCATION);
420 gPageLoadErrorInstance = nullptr;
421 gConsoleMessageInstance = nullptr;
426 int UtcDaliWebViewTouchAndKeys(void)
428 ToolkitTestApplication application;
430 WebView view = WebView::New();
431 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
432 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
433 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
434 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
436 application.GetScene().Add( view );
437 application.SendNotification();
438 application.Render();
440 view.GetNaturalSize();
441 view.TouchedSignal().Connect( &OnTouched );
444 Dali::Integration::TouchEvent event;
445 Dali::Integration::Point pointDown, pointUp;
447 event = Dali::Integration::TouchEvent();
448 pointDown.SetState( PointState::DOWN );
449 pointDown.SetScreenPosition( Vector2( 10, 10 ) );
450 event.AddPoint( pointDown );
451 application.ProcessEvent( event );
453 event = Dali::Integration::TouchEvent();
454 pointUp.SetState( PointState::UP );
455 pointUp.SetScreenPosition( Vector2( 10, 10 ) );
456 event.AddPoint( pointUp );
457 application.ProcessEvent( event );
460 Toolkit::KeyboardFocusManager::Get().SetCurrentFocusActor( view );
461 application.ProcessEvent( Integration::KeyEvent( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE ) );
462 application.SendNotification();
464 DALI_TEST_CHECK( gTouched );
465 DALI_TEST_CHECK( view );
470 int UtcDaliWebViewFocusGainedAndLost(void)
472 ToolkitTestApplication application;
474 WebView view = WebView::New();
475 DALI_TEST_CHECK( view );
477 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
478 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
479 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
480 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
482 application.GetScene().Add( view );
483 application.SendNotification();
484 application.Render();
486 view.SetKeyInputFocus();
487 DALI_TEST_CHECK( view.HasKeyInputFocus() );
490 view.ClearKeyInputFocus();
491 DALI_TEST_CHECK( !view.HasKeyInputFocus() );
496 int UtcDaliWebViewPropertyPageZoomFactor(void)
498 ToolkitTestApplication application;
500 WebView view = WebView::New();
501 DALI_TEST_CHECK( view );
503 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
504 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
505 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
506 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
508 application.GetScene().Add( view );
509 application.SendNotification();
510 application.Render();
512 view.SetProperty( WebView::Property::PAGE_ZOOM_FACTOR, 1.5f);
513 float zoomFactor = view.GetProperty<float>( WebView::Property::PAGE_ZOOM_FACTOR );
514 DALI_TEST_EQUALS( zoomFactor, 1.5f, TEST_LOCATION );
516 view.SetProperty( WebView::Property::PAGE_ZOOM_FACTOR, 1.0f);
517 zoomFactor = view.GetProperty<float>( WebView::Property::PAGE_ZOOM_FACTOR );
518 DALI_TEST_EQUALS( zoomFactor, 1.0f, TEST_LOCATION );
523 int UtcDaliWebViewPropertyTextZoomFactor(void)
525 ToolkitTestApplication application;
527 WebView view = WebView::New();
528 DALI_TEST_CHECK( view );
530 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
531 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
532 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
533 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
535 application.GetScene().Add( view );
536 application.SendNotification();
537 application.Render();
539 view.SetProperty( WebView::Property::TEXT_ZOOM_FACTOR, 1.5f);
540 float zoomFactor = view.GetProperty<float>( WebView::Property::TEXT_ZOOM_FACTOR );
541 DALI_TEST_EQUALS( zoomFactor, 1.5f, TEST_LOCATION );
543 view.SetProperty( WebView::Property::TEXT_ZOOM_FACTOR, 1.0f);
544 zoomFactor = view.GetProperty<float>( WebView::Property::TEXT_ZOOM_FACTOR );
545 DALI_TEST_EQUALS( zoomFactor, 1.0f, TEST_LOCATION );
550 int UtcDaliWebViewPropertyLoadProgressPercentage(void)
552 ToolkitTestApplication application;
554 WebView view = WebView::New();
555 DALI_TEST_CHECK( view );
557 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
558 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
559 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
560 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
562 application.GetScene().Add( view );
563 application.SendNotification();
564 application.Render();
566 float percentage = view.GetProperty<float>( WebView::Property::LOAD_PROGRESS_PERCENTAGE );
567 DALI_TEST_EQUALS( percentage, 0.5f, TEST_LOCATION );
572 int UtcDaliWebViewMove(void)
574 ToolkitTestApplication application;
576 WebView view = WebView::New();
577 DALI_TEST_CHECK( view );
579 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
580 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
581 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
582 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
584 application.GetScene().Add( view );
585 application.SendNotification();
586 application.Render();
588 view.SetProperty( Actor::Property::POSITION, Vector2( 100, 100 ));
589 Vector3 viewPos = view.GetProperty<Vector3>( Actor::Property::POSITION );
590 DALI_TEST_EQUALS( viewPos, Vector3( 100, 100, 0 ), TEST_LOCATION );
595 int UtcDaliWebViewPropertyVideoHoleEnabled(void)
597 ToolkitTestApplication application;
599 WebView view = WebView::New();
600 DALI_TEST_CHECK( view );
602 const bool kDefaultValue = true;
603 const bool kTestValue = false;
605 // Check default value
607 Property::Value value = view.GetProperty( WebView::Property::VIDEO_HOLE_ENABLED );
608 DALI_TEST_CHECK( value.Get( output ) );
609 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
611 // Check Set/GetProperty
612 view.SetProperty( WebView::Property::VIDEO_HOLE_ENABLED, kTestValue );
613 value = view.GetProperty( WebView::Property::VIDEO_HOLE_ENABLED );
614 DALI_TEST_CHECK( value.Get( output ) );
615 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
620 int UtcDaliWebViewPropertyMouseEventsEnabled(void)
622 ToolkitTestApplication application;
624 WebView view = WebView::New();
625 DALI_TEST_CHECK( view );
627 const bool kDefaultValue = true;
628 const bool kTestValue = false;
630 // Check default value
632 Property::Value value = view.GetProperty( WebView::Property::MOUSE_EVENTS_ENABLED );
633 DALI_TEST_CHECK( value.Get( output ) );
634 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
636 // Check Set/GetProperty
637 view.SetProperty( WebView::Property::MOUSE_EVENTS_ENABLED, kTestValue );
638 value = view.GetProperty( WebView::Property::MOUSE_EVENTS_ENABLED );
639 DALI_TEST_CHECK( value.Get( output ) );
640 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
645 int UtcDaliWebViewPropertyKeyEventsEnabled(void)
647 ToolkitTestApplication application;
649 WebView view = WebView::New();
650 DALI_TEST_CHECK( view );
652 const bool kDefaultValue = true;
653 const bool kTestValue = false;
655 // Check default value
657 Property::Value value = view.GetProperty( WebView::Property::KEY_EVENTS_ENABLED );
658 DALI_TEST_CHECK( value.Get( output ) );
659 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
661 // Check Set/GetProperty
662 view.SetProperty( WebView::Property::KEY_EVENTS_ENABLED, kTestValue );
663 value = view.GetProperty( WebView::Property::KEY_EVENTS_ENABLED );
664 DALI_TEST_CHECK( value.Get( output ) );
665 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
670 int UtcDaliWebViewHoverAndWheel(void)
672 ToolkitTestApplication application;
674 WebView view = WebView::New();
675 DALI_TEST_CHECK( view );
676 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
677 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
678 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
679 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
681 application.GetScene().Add( view );
682 application.SendNotification();
683 application.Render();
685 view.GetNaturalSize();
686 view.HoveredSignal().Connect( &OnHovered );
687 view.WheelEventSignal().Connect( &OnWheelEvent );
690 Dali::Integration::HoverEvent event = Dali::Integration::HoverEvent();
691 Dali::Integration::Point pointDown;
692 pointDown.SetState( PointState::DOWN );
693 pointDown.SetScreenPosition( Vector2( 10, 10 ) );
694 event.AddPoint( pointDown );
695 application.ProcessEvent( event );
697 event = Dali::Integration::HoverEvent();
698 Dali::Integration::Point pointUp;
699 pointUp.SetState( PointState::UP );
700 pointUp.SetScreenPosition( Vector2( 10, 10 ) );
701 event.AddPoint( pointUp );
702 application.ProcessEvent( event );
704 event = Dali::Integration::HoverEvent();
705 Dali::Integration::Point pointMotion;
706 pointUp.SetState( PointState::MOTION );
707 pointUp.SetScreenPosition( Vector2( 10, 10 ) );
708 event.AddPoint( pointMotion );
709 application.ProcessEvent( event );
712 Dali::Integration::WheelEvent wheelEvent;
713 wheelEvent.type = Dali::Integration::WheelEvent::Type::MOUSE_WHEEL;
714 wheelEvent.direction = 0;
715 wheelEvent.point = Vector2( 20, 20 );
716 wheelEvent.delta = 10;
717 application.ProcessEvent( wheelEvent );
718 application.SendNotification();
720 DALI_TEST_CHECK( gHovered );
721 DALI_TEST_CHECK( gWheelEventHandled );
726 int UtcDaliWebViewFormRepostDecisionFrameRendering(void)
728 ToolkitTestApplication application;
730 WebView view = WebView::New();
731 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
732 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
733 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
734 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
735 application.GetScene().Add( view );
736 application.SendNotification();
737 application.Render();
738 DALI_TEST_CHECK( view );
740 ConnectionTracker* testTracker = new ConnectionTracker();
741 view.FormRepostDecisionSignal().Connect(&OnFormRepostDecision);
742 view.FrameRenderedSignal().Connect(&OnFrameRendered);
743 bool signal1 = false;
744 bool signal2 = false;
745 view.ConnectSignal( testTracker, "formRepostDecision", CallbackFunctor(&signal1) );
746 view.ConnectSignal( testTracker, "frameRendered", CallbackFunctor(&signal2) );
747 DALI_TEST_EQUALS( gFormRepostDecisionCallbackCalled, 0, TEST_LOCATION );
748 DALI_TEST_EQUALS( gFrameRenderedCallbackCalled, 0, TEST_LOCATION );
750 view.LoadUrl( TEST_URL1 );
751 Test::EmitGlobalTimerSignal();
752 DALI_TEST_EQUALS( gFormRepostDecisionCallbackCalled, 1, TEST_LOCATION );
753 DALI_TEST_EQUALS( gFrameRenderedCallbackCalled, 1, TEST_LOCATION );
754 DALI_TEST_CHECK( signal1 & signal2);
756 // form repost decision.
757 DALI_TEST_CHECK(gFormRepostDecisionInstance);
758 gFormRepostDecisionInstance->Reply(true);
761 gFormRepostDecisionInstance = nullptr;
766 int UtcDaliWebViewSslCertificateHttpAuthentication(void)
768 ToolkitTestApplication application;
770 WebView view = WebView::New();
771 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
772 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
773 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
774 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
775 application.GetScene().Add( view );
776 application.SendNotification();
777 application.Render();
778 DALI_TEST_CHECK( view );
780 ConnectionTracker* testTracker = new ConnectionTracker();
781 view.CertificateConfirmSignal().Connect(&OnCertificateConfirm);
782 view.SslCertificateChangedSignal().Connect(&OnSslCertificateChanged);
783 view.HttpAuthHandlerSignal().Connect(&OnHttpAuthHandler);
784 bool signal1 = false;
785 bool signal2 = false;
786 bool signal3 = false;
787 view.ConnectSignal( testTracker, "certificateConfirm", CallbackFunctor(&signal1) );
788 view.ConnectSignal( testTracker, "sslCertificateChanged", CallbackFunctor(&signal2) );
789 view.ConnectSignal( testTracker, "httpAuthRequest", CallbackFunctor(&signal3) );
790 DALI_TEST_EQUALS( gCertificateConfirmCallbackCalled, 0, TEST_LOCATION );
791 DALI_TEST_EQUALS( gSslCertificateChangedCallbackCalled, 0, TEST_LOCATION );
792 DALI_TEST_EQUALS( gHttpAuthHandlerCallbackCalled, 0, TEST_LOCATION );
794 view.LoadUrl( TEST_URL1 );
795 Test::EmitGlobalTimerSignal();
796 DALI_TEST_EQUALS( gCertificateConfirmCallbackCalled, 1, TEST_LOCATION );
797 DALI_TEST_EQUALS( gSslCertificateChangedCallbackCalled, 1, TEST_LOCATION );
798 DALI_TEST_EQUALS( gHttpAuthHandlerCallbackCalled, 1, TEST_LOCATION );
799 DALI_TEST_CHECK( signal1 & signal2 & signal3);
802 DALI_TEST_CHECK(gCertificateConfirmInstance);
803 gCertificateConfirmInstance->Allow(true);
804 DALI_TEST_CHECK(gCertificateConfirmInstance->IsFromMainFrame());
806 DALI_TEST_CHECK(gSslCertificateInstance);
807 DALI_TEST_EQUALS(gSslCertificateInstance->GetPem(), "abc", TEST_LOCATION);
808 DALI_TEST_CHECK(gSslCertificateInstance->IsContextSecure());
810 // http authentication.
811 DALI_TEST_CHECK(gHttpAuthInstance);
812 gHttpAuthInstance->Suspend();
813 gHttpAuthInstance->UseCredential("", "");
814 gHttpAuthInstance->CancelCredential();
815 DALI_TEST_EQUALS(gHttpAuthInstance->GetRealm(), "test", TEST_LOCATION);
818 gCertificateConfirmInstance = nullptr;
819 gSslCertificateInstance = nullptr;
820 gHttpAuthInstance = nullptr;
825 int UtcDaliWebViewGetWebBackForwardList(void)
827 ToolkitTestApplication application;
829 WebView view = WebView::New();
830 DALI_TEST_CHECK( view );
832 Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
833 DALI_TEST_CHECK( bfList != 0 );
838 int UtcDaliWebViewGetWebContext(void)
840 ToolkitTestApplication application;
842 WebView view = WebView::New();
843 DALI_TEST_CHECK( view );
845 Dali::Toolkit::WebContext* context = view.GetContext();
846 DALI_TEST_CHECK( context != 0 );
851 int UtcDaliWebViewGetWebCookieManager(void)
853 ToolkitTestApplication application;
855 WebView view = WebView::New();
856 DALI_TEST_CHECK( view );
858 Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager();
859 DALI_TEST_CHECK( cookieManager != 0 );
864 int UtcDaliWebViewGetWebSettings(void)
866 ToolkitTestApplication application;
868 WebView view = WebView::New();
869 DALI_TEST_CHECK( view );
871 Dali::Toolkit::WebSettings* settings = view.GetSettings();
872 DALI_TEST_CHECK( settings != 0 );
877 int UtcDaliWebViewProperty1(void)
880 ToolkitTestApplication application;
882 WebView view = WebView::New();
883 DALI_TEST_CHECK( view );
886 view.SetProperty( WebView::Property::URL, TEST_URL1 );
887 Property::Value val = view.GetProperty( WebView::Property::URL );
888 DALI_TEST_CHECK( val.Get( local ) );
889 DALI_TEST_EQUALS( local, TEST_URL1, TEST_LOCATION );
894 int UtcDaliWebViewProperty4(void)
897 ToolkitTestApplication application;
899 WebView view = WebView::New();
900 DALI_TEST_CHECK( view );
902 const std::string kDefaultValue;
903 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";
905 // Check default value
907 Property::Value value = view.GetProperty( WebView::Property::USER_AGENT );
908 DALI_TEST_CHECK( value.Get( output ) );
909 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
911 // Check Set/GetProperty
912 view.SetProperty( WebView::Property::USER_AGENT, kTestValue );
913 value = view.GetProperty( WebView::Property::USER_AGENT );
914 DALI_TEST_CHECK( value.Get( output ) );
915 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
920 int UtcDaliWebViewProperty9(void)
923 ToolkitTestApplication application;
925 WebView view = WebView::New();
926 DALI_TEST_CHECK( view );
928 // Check default value
929 Dali::Vector2 output = Dali::Vector2::ONE;
930 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
931 DALI_TEST_CHECK( output.x == 0 && output.y == 0 );
933 // Check Set/GetProperty
934 Dali::Vector2 testValue = Dali::Vector2( 100, 100 );
935 view.SetProperty( WebView::Property::SCROLL_POSITION, testValue );
936 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
937 DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
939 // Check default value of scroll size
940 output = Dali::Vector2::ONE;
941 view.GetProperty( WebView::Property::SCROLL_SIZE ).Get( output );
942 DALI_TEST_CHECK( output.x == 500 && output.y == 500 );
944 // Check default value of content size
945 output = Dali::Vector2::ONE;
946 view.GetProperty( WebView::Property::CONTENT_SIZE ).Get( output );
947 DALI_TEST_CHECK( output.x == 500 && output.y == 500 );
952 int UtcDaliWebViewPropertyBackgroundColorSelectedTextEtc(void)
954 ToolkitTestApplication application;
956 WebView view = WebView::New();
957 DALI_TEST_CHECK( view );
959 Dali::Vector4 testValue = Dali::Vector4(0.0f, 0.0f, 0.0f, 0.0f);
960 view.SetProperty(WebView::Property::DOCUMENT_BACKGROUND_COLOR, testValue);
961 view.SetProperty(WebView::Property::TILES_CLEARED_WHEN_HIDDEN, true);
962 view.SetProperty(WebView::Property::TILE_COVER_AREA_MULTIPLIER, 1.0f);
963 view.SetProperty(WebView::Property::CURSOR_ENABLED_BY_CLIENT, true);
965 // Check default value
966 std::string testText("test");
968 view.GetProperty(WebView::Property::SELECTED_TEXT).Get(output);
969 DALI_TEST_EQUALS(output, testText, TEST_LOCATION);
974 int UtcDaliWebViewPropertyTitleFavicon(void)
976 ToolkitTestApplication application;
978 char argv[] = "--test";
979 WebView view = WebView::New( 1, (char**)&argv );
980 DALI_TEST_CHECK( view );
983 view.ClearAllTilesResources();
985 // Check default value of title
986 std::string testValue("title");
988 view.GetProperty( WebView::Property::TITLE ).Get( output );
989 DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
991 // Check default value of favicon
992 Dali::Toolkit::ImageView* favicon = &view.GetFavicon();
993 DALI_TEST_CHECK( favicon );
994 Dali::Vector3 iconsize = favicon->GetProperty< Vector3 >( Dali::Actor::Property::SIZE );
995 DALI_TEST_CHECK( ( int )iconsize.width == 2 && ( int )iconsize.height == 2 );
1000 int UtcDaliWebViewScrollBy(void)
1002 ToolkitTestApplication application;
1004 WebView view = WebView::New();
1005 DALI_TEST_CHECK( view );
1008 ConnectionTracker* testTracker = new ConnectionTracker();
1009 view.ScrollEdgeReachedSignal().Connect( &OnScrollEdgeReached );
1010 bool signal1 = false;
1011 view.ConnectSignal( testTracker, "scrollEdgeReached", CallbackFunctor(&signal1) );
1012 DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 0, TEST_LOCATION );
1014 view.LoadUrl( TEST_URL1 );
1015 Test::EmitGlobalTimerSignal();
1017 // set scroll position.
1018 Dali::Vector2 output = Dali::Vector2::ONE;
1019 Dali::Vector2 testValue = Dali::Vector2( 100, 100 );
1020 view.SetProperty( WebView::Property::SCROLL_POSITION, testValue );
1021 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
1022 DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
1024 // scroll by and trigger scrollEdgeReached event.
1025 view.ScrollBy( 50, 50 );
1026 Test::EmitGlobalTimerSignal();
1028 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
1029 DALI_TEST_CHECK( output.x == 150 && output.y == 150 );
1030 DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 1, TEST_LOCATION );
1031 DALI_TEST_CHECK( signal1 );
1033 // scroll by and trigger scrollEdgeReached event.
1034 bool result = view.ScrollEdgeBy( 50, 50 );
1035 DALI_TEST_CHECK( result );
1036 Test::EmitGlobalTimerSignal();
1038 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
1039 DALI_TEST_CHECK( output.x == 200 && output.y == 200 );
1040 DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 2, TEST_LOCATION );
1041 DALI_TEST_CHECK( signal1 );
1046 int UtcDaliWebViewSetGetScaleFactorActivateAccessibility(void)
1048 ToolkitTestApplication application;
1050 WebView view = WebView::New();
1051 DALI_TEST_CHECK( view );
1053 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
1054 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
1055 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
1056 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
1058 application.GetScene().Add( view );
1059 application.SendNotification();
1060 application.Render();
1062 view.ActivateAccessibility(true);
1063 view.AddDynamicCertificatePath("host", "test/to/path");
1064 bool found = view.HighlightText("test", Dali::WebEnginePlugin::FindOption::CASE_INSENSITIVE, 2);
1065 DALI_TEST_CHECK( found );
1067 view.SetScaleFactor(1.5f, Dali::Vector2(0.0f, 0.0f));
1068 float result = view.GetScaleFactor();
1069 DALI_TEST_EQUALS( result, 1.5f, TEST_LOCATION );
1071 view.SetScaleFactor(1.0f, Dali::Vector2(0.0f, 0.0f));
1072 result = view.GetScaleFactor();
1073 DALI_TEST_EQUALS( result, 1.0f, TEST_LOCATION );
1078 int UtcDaliWebViewGetScreenshotSyncAndAsync(void)
1081 ToolkitTestApplication application;
1083 char argv[] = "--test";
1084 WebView view = WebView::New( 1, (char**)&argv );
1085 DALI_TEST_CHECK( view );
1087 // Check GetScreenshot
1088 Dali::Rect<int> viewArea;
1091 viewArea.width = 10;
1092 viewArea.height = 10;
1093 Dali::Toolkit::ImageView screenshot = view.GetScreenshot(viewArea, 1.0f);
1094 DALI_TEST_CHECK( screenshot );
1095 Dali::Vector3 shotsize = screenshot.GetProperty< Vector3 >( Dali::Actor::Property::SIZE );
1096 DALI_TEST_CHECK( ( int )shotsize.width == viewArea.width && ( int )shotsize.height == viewArea.height );
1098 // Check GetScreenshotAsynchronously
1101 viewArea.width = 100;
1102 viewArea.height = 100;
1103 bool result = view.GetScreenshotAsynchronously(viewArea, 1.0f, &OnScreenshotCaptured);
1104 DALI_TEST_CHECK( result );
1106 Test::EmitGlobalTimerSignal();
1108 Test::EmitGlobalTimerSignal();
1109 DALI_TEST_EQUALS( gScreenshotCapturedCallbackCalled, 1, TEST_LOCATION );
1114 int UtcDaliWebViewVideoPlayingGeolocationPermission(void)
1117 ToolkitTestApplication application;
1119 char argv[] = "--test";
1120 WebView view = WebView::New( 1, (char**)&argv );
1121 DALI_TEST_CHECK( view );
1123 // Check CheckVideoPlayingAsynchronously
1124 bool result = view.CheckVideoPlayingAsynchronously(&OnVideoPlaying);
1125 DALI_TEST_CHECK( result );
1126 Test::EmitGlobalTimerSignal();
1127 DALI_TEST_EQUALS( gVideoPlayingCallbackCalled, 1, TEST_LOCATION );
1129 // Check RegisterGeolocationPermissionCallback
1130 view.RegisterGeolocationPermissionCallback(&OnGeolocationPermission);
1131 Test::EmitGlobalTimerSignal();
1132 DALI_TEST_EQUALS( gGeolocationPermissionCallbackCalled, 1, TEST_LOCATION );
1137 int UtcDaliWebViewHttpRequestInterceptor(void)
1139 ToolkitTestApplication application;
1141 WebView view = WebView::New();
1142 DALI_TEST_CHECK( view );
1145 ConnectionTracker* testTracker = new ConnectionTracker();
1146 view.RequestInterceptorSignal().Connect( &OnRequestInterceptor );
1147 bool signal1 = false;
1148 view.ConnectSignal( testTracker, "requestInterceptor", CallbackFunctor(&signal1) );
1149 DALI_TEST_EQUALS( gRequestInterceptorCallbackCalled, 0, TEST_LOCATION );
1150 DALI_TEST_CHECK(gRequestInterceptorInstance == 0);
1152 view.LoadUrl( TEST_URL1 );
1153 Test::EmitGlobalTimerSignal();
1154 DALI_TEST_EQUALS( gRequestInterceptorCallbackCalled, 1, TEST_LOCATION );
1155 DALI_TEST_CHECK( signal1 );
1157 // check request interceptor.
1158 DALI_TEST_CHECK(gRequestInterceptorInstance != 0);
1159 DALI_TEST_CHECK(gRequestInterceptorInstance->Ignore());
1160 DALI_TEST_CHECK(gRequestInterceptorInstance->SetResponseStatus(400, "error"));
1161 DALI_TEST_CHECK(gRequestInterceptorInstance->AddResponseHeader("key", "value"));
1162 DALI_TEST_CHECK(gRequestInterceptorInstance->AddResponseBody("test", 4));
1163 std::string testUrl("http://test.html");
1164 DALI_TEST_EQUALS(gRequestInterceptorInstance->GetUrl(), testUrl, TEST_LOCATION);
1166 gRequestInterceptorInstance = nullptr;
1171 int UtcDaliWebViewPolicyDecisionRequest(void)
1173 ToolkitTestApplication application;
1175 WebView view = WebView::New();
1176 DALI_TEST_CHECK( view );
1179 ConnectionTracker* testTracker = new ConnectionTracker();
1180 view.PolicyDecisionSignal().Connect( &OnPolicyDecisionRequest );
1181 bool signal1 = false;
1182 view.ConnectSignal( testTracker, "policyDecision", CallbackFunctor(&signal1) );
1183 DALI_TEST_EQUALS( gPolicyDecisionCallbackCalled, 0, TEST_LOCATION );
1184 DALI_TEST_CHECK(gPolicyDecisionInstance == 0);
1186 view.LoadUrl( TEST_URL1 );
1187 Test::EmitGlobalTimerSignal();
1188 DALI_TEST_EQUALS( gPolicyDecisionCallbackCalled, 1, TEST_LOCATION );
1189 DALI_TEST_CHECK( signal1 );
1191 // check policy decision & its frame.
1192 DALI_TEST_CHECK(gPolicyDecisionInstance != 0);
1193 std::string testUrl("http://test.html");
1194 DALI_TEST_EQUALS(gPolicyDecisionInstance->GetUrl(), testUrl, TEST_LOCATION);
1195 std::string testCookie("test:abc");
1196 DALI_TEST_EQUALS(gPolicyDecisionInstance->GetCookie(), testCookie, TEST_LOCATION);
1197 Dali::WebEnginePolicyDecision::DecisionType testDecisionType = Dali::WebEnginePolicyDecision::DecisionType::USE;
1198 DALI_TEST_EQUALS(gPolicyDecisionInstance->GetDecisionType(), testDecisionType, TEST_LOCATION);
1199 std::string testResponseMime("txt/xml");
1200 DALI_TEST_EQUALS(gPolicyDecisionInstance->GetResponseMime(), testResponseMime, TEST_LOCATION);
1201 int32_t ResponseStatusCode = 500;
1202 DALI_TEST_EQUALS(gPolicyDecisionInstance->GetResponseStatusCode(), ResponseStatusCode, TEST_LOCATION);
1203 Dali::WebEnginePolicyDecision::NavigationType testNavigationType = Dali::WebEnginePolicyDecision::NavigationType::LINK_CLICKED;
1204 DALI_TEST_EQUALS(gPolicyDecisionInstance->GetNavigationType(), testNavigationType, TEST_LOCATION);
1205 std::string testScheme("test");
1206 DALI_TEST_EQUALS(gPolicyDecisionInstance->GetScheme(), testScheme, TEST_LOCATION);
1207 DALI_TEST_CHECK(gPolicyDecisionInstance->Use());
1208 DALI_TEST_CHECK(gPolicyDecisionInstance->Ignore());
1209 DALI_TEST_CHECK(gPolicyDecisionInstance->Suspend());
1211 Dali::WebEngineFrame* webFrame = &(gPolicyDecisionInstance->GetFrame());
1212 DALI_TEST_CHECK(webFrame);
1213 DALI_TEST_CHECK(webFrame->IsMainFrame());
1215 gPolicyDecisionInstance = nullptr;
1220 int UtcDaliWebViewEvaluteJavaScript(void)
1222 ToolkitTestApplication application;
1224 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
1226 view.LoadHtmlString( "<body>Hello World!</body>" );
1227 view.EvaluateJavaScript( "jsObject.postMessage('Hello')" );
1228 view.EvaluateJavaScript( "jsObject.postMessage('World')", OnEvaluateJavaScript );
1229 Test::EmitGlobalTimerSignal();
1231 DALI_TEST_EQUALS( gEvaluateJavaScriptCallbackCalled, 1, TEST_LOCATION );
1236 int UtcDaliWebViewJavaScriptAlertConfirmPrompt(void)
1238 ToolkitTestApplication application;
1240 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
1242 view.RegisterJavaScriptAlertCallback( &OnJavaScriptAlert );
1243 view.LoadHtmlString( "<head><script type='text/javascript'>alert('this is an alert popup.');</script></head><body>Hello World!</body>" );
1244 view.JavaScriptAlertReply();
1245 Test::EmitGlobalTimerSignal();
1246 DALI_TEST_EQUALS( gJavaScriptAlertCallbackCalled, 1, TEST_LOCATION );
1248 view.RegisterJavaScriptConfirmCallback( &OnJavaScriptConfirm );
1249 view.LoadHtmlString( "<head><script type='text/javascript'>confirm('this is a confirm popup.');</script></head><body>Hello World!</body>" );
1250 view.JavaScriptConfirmReply( true );
1251 Test::EmitGlobalTimerSignal();
1252 DALI_TEST_EQUALS( gJavaScriptConfirmCallbackCalled, 1, TEST_LOCATION );
1254 view.RegisterJavaScriptPromptCallback( &OnJavaScriptPrompt );
1255 view.LoadHtmlString( "<head><script type='text/javascript'>prompt('this is a prompt popup.');</script></head><body>Hello World!</body>" );
1256 view.JavaScriptPromptReply( "it is a prompt." );
1257 Test::EmitGlobalTimerSignal();
1258 DALI_TEST_EQUALS( gJavaScriptPromptCallbackCalled, 1, TEST_LOCATION );
1263 int UtcDaliWebViewLoadHtmlStringOverrideCurrentEntryAndContents(void)
1265 ToolkitTestApplication application;
1267 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
1268 DALI_TEST_CHECK( view );
1270 std::string html("<body>Hello World!</body>");
1271 std::string basicUri("http://basicurl");
1272 std::string unreachableUrl("http://unreachableurl");
1273 bool result = view.LoadHtmlStringOverrideCurrentEntry( html, basicUri, unreachableUrl );
1274 DALI_TEST_CHECK( result );
1276 application.SendNotification();
1277 application.Render();
1278 Test::EmitGlobalTimerSignal();
1280 result = view.LoadContents( html, html.length(), "html/text", "utf-8", basicUri );
1281 DALI_TEST_CHECK( result );
1286 int UtcDaliWebViewReloadSuspendResumeNetworkLoadingCustomHeader(void)
1288 ToolkitTestApplication application;
1290 WebView view = WebView::New();
1291 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
1292 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
1293 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
1294 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
1296 application.GetScene().Add( view );
1297 application.SendNotification();
1298 application.Render();
1299 DALI_TEST_CHECK( view );
1301 view.LoadUrl( "http://test.html" );
1302 bool result = view.AddCustomHeader("key", "value");
1303 DALI_TEST_CHECK( result );
1305 result = view.ReloadWithoutCache();
1306 DALI_TEST_CHECK( result );
1308 uint32_t portNumber = view.StartInspectorServer(5000);
1309 DALI_TEST_EQUALS( portNumber, 5000, TEST_LOCATION );
1311 application.SendNotification();
1312 application.Render();
1313 Test::EmitGlobalTimerSignal();
1315 result = view.StopInspectorServer();
1316 DALI_TEST_CHECK( result );
1318 view.SuspendNetworkLoading();
1320 result = view.RemoveCustomHeader("key");
1321 DALI_TEST_CHECK( result );
1323 view.ResumeNetworkLoading();
1328 int UtcDaliWebViewMethodsForCoverage(void)
1330 ToolkitTestApplication application;
1332 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
1334 view.LoadHtmlString( "<body>Hello World!</body>" );
1335 view.AddJavaScriptMessageHandler( "jsObject",
1336 []( const std::string& arg ) {
1340 DALI_TEST_CHECK( view );
1345 // test cases for web backforward list.
1347 int UtcDaliWebBackForwardListCheckItem(void)
1349 ToolkitTestApplication application;
1351 WebView view = WebView::New();
1352 DALI_TEST_CHECK( view );
1354 Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
1355 DALI_TEST_CHECK( bfList != 0 )
1357 unsigned int itemCount = bfList->GetItemCount();
1358 DALI_TEST_CHECK( itemCount == 1 )
1360 std::unique_ptr<Dali::WebEngineBackForwardListItem> citem = bfList->GetCurrentItem();
1361 DALI_TEST_CHECK( citem != 0 );
1363 std::unique_ptr<Dali::WebEngineBackForwardListItem> citemP = bfList->GetPreviousItem();
1364 DALI_TEST_CHECK( citemP != 0 );
1366 std::unique_ptr<Dali::WebEngineBackForwardListItem> citemN = bfList->GetNextItem();
1367 DALI_TEST_CHECK( citemN != 0 );
1369 const std::string kDefaultUrl( "http://url" );
1370 std::string testValue = citem->GetUrl();
1371 DALI_TEST_EQUALS( testValue, kDefaultUrl, TEST_LOCATION );
1373 const std::string kDefaultTitle( "title" );
1374 testValue = citem->GetTitle();
1375 DALI_TEST_EQUALS( testValue, kDefaultTitle, TEST_LOCATION );
1377 const std::string kDefaultOriginalUrl( "http://originalurl" );
1378 testValue = citem->GetOriginalUrl();
1379 DALI_TEST_EQUALS( testValue, kDefaultOriginalUrl, TEST_LOCATION );
1381 std::unique_ptr<Dali::WebEngineBackForwardListItem> item = bfList->GetItemAtIndex( 0 );
1382 DALI_TEST_CHECK( item != 0 );
1384 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> vecBack = bfList->GetBackwardItems(-1);
1385 DALI_TEST_CHECK( vecBack.size() == 1 );
1387 std::vector<std::unique_ptr<Dali::WebEngineBackForwardListItem>> vecForward = bfList->GetForwardItems(-1);
1388 DALI_TEST_CHECK( vecForward.size() == 1 );
1393 // test cases for web context.
1395 int UtcDaliWebContextGetSetCacheModel(void)
1397 ToolkitTestApplication application;
1399 WebView view = WebView::New();
1400 DALI_TEST_CHECK( view );
1402 Dali::Toolkit::WebContext* context = view.GetContext();
1403 DALI_TEST_CHECK( context != 0 )
1405 std::string kDefaultValue;
1408 context->SetProxyUri( kDefaultValue );
1409 context->SetCertificateFilePath( kDefaultValue );
1410 context->DisableCache( false );
1411 context->SetDefaultProxyAuth( kDefaultValue, kDefaultValue );
1412 context->DeleteWebDatabase();
1413 context->DeleteWebStorage();
1414 context->DeleteLocalFileSystem();
1415 context->ClearCache();
1417 // Check default value
1418 Dali::WebEngineContext::CacheModel value = context->GetCacheModel();
1419 DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER );
1421 // Check Set/GetProperty
1422 context->SetCacheModel( Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
1423 value = context->GetCacheModel();
1424 DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
1429 // test cases for web cookie manager.
1431 int UtcDaliWebCookieManagerGetSetCookieAcceptPolicy(void)
1433 ToolkitTestApplication application;
1435 WebView view = WebView::New();
1436 DALI_TEST_CHECK( view );
1438 Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager();
1439 DALI_TEST_CHECK( cookieManager != 0 )
1441 const std::string kDefaultValue;
1444 cookieManager->SetPersistentStorage( kDefaultValue, Dali::WebEngineCookieManager::CookiePersistentStorage::SQLITE );
1445 cookieManager->ClearCookies();
1447 // Check default value
1448 Dali::WebEngineCookieManager::CookieAcceptPolicy value = cookieManager->GetCookieAcceptPolicy();
1449 DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY );
1451 // Check Set/GetProperty
1452 cookieManager->SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS );
1453 value = cookieManager->GetCookieAcceptPolicy();
1454 DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS );
1459 // test cases for web settings.
1461 int UtcDaliWebSettingsGetSetDefaultFontSize(void)
1463 ToolkitTestApplication application;
1465 WebView view = WebView::New();
1466 DALI_TEST_CHECK( view );
1468 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1469 DALI_TEST_CHECK( settings != 0 )
1472 settings->AllowMixedContents( false );
1473 settings->EnableSpatialNavigation( false );
1474 settings->EnableWebSecurity( false );
1475 settings->EnableCacheBuilder( false );
1476 settings->EnableDoNotTrack( false );
1477 settings->UseScrollbarThumbFocusNotifications( false );
1478 settings->AllowFileAccessFromExternalUrl( false );
1479 settings->AllowScriptsOpenWindows( false );
1481 // Check default value
1482 int value = settings->GetDefaultFontSize();
1483 DALI_TEST_CHECK( value == 16 );
1485 // Check Set/GetProperty
1486 settings->SetDefaultFontSize( 20 );
1487 value = settings->GetDefaultFontSize();
1488 DALI_TEST_CHECK( value == 20 );
1493 int UtcDaliWebSettingsCheckEnableJavaScript(void)
1495 ToolkitTestApplication application;
1497 WebView view = WebView::New();
1498 DALI_TEST_CHECK( view );
1500 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1501 DALI_TEST_CHECK( settings != 0 )
1504 settings->AllowMixedContents( false );
1505 settings->EnableSpatialNavigation( false );
1506 settings->EnableWebSecurity( false );
1507 settings->EnableCacheBuilder( false );
1508 settings->EnableDoNotTrack( false );
1509 settings->UseScrollbarThumbFocusNotifications( false );
1510 settings->AllowFileAccessFromExternalUrl( false );
1511 settings->AllowScriptsOpenWindows( false );
1513 // Check default value is true or not
1514 bool value = settings->IsJavaScriptEnabled();
1515 DALI_TEST_CHECK( value );
1517 // Check Set/GetProperty
1518 settings->EnableJavaScript( false );
1519 value = settings->IsJavaScriptEnabled();
1520 DALI_TEST_CHECK( !value );
1525 int UtcDaliWebSettingsCheckEnableAutoFitting(void)
1527 ToolkitTestApplication application;
1529 WebView view = WebView::New();
1530 DALI_TEST_CHECK( view );
1532 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1533 DALI_TEST_CHECK( settings != 0 )
1536 settings->AllowMixedContents( false );
1537 settings->EnableSpatialNavigation( false );
1538 settings->EnableWebSecurity( false );
1539 settings->EnableCacheBuilder( false );
1540 settings->EnableDoNotTrack( false );
1541 settings->UseScrollbarThumbFocusNotifications( false );
1542 settings->AllowFileAccessFromExternalUrl( false );
1543 settings->AllowScriptsOpenWindows( false );
1545 // Check default value is true or not
1546 bool value = settings->IsAutoFittingEnabled();
1547 DALI_TEST_CHECK( value );
1549 // Check Set/GetProperty
1550 settings->EnableAutoFitting( false );
1551 value = settings->IsAutoFittingEnabled();
1552 DALI_TEST_CHECK( !value );
1557 int UtcDaliWebSettingsCheckEnablePlugins(void)
1559 ToolkitTestApplication application;
1561 WebView view = WebView::New();
1562 DALI_TEST_CHECK( view );
1564 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1565 DALI_TEST_CHECK( settings != 0 )
1568 settings->AllowMixedContents( false );
1569 settings->EnableSpatialNavigation( false );
1570 settings->EnableWebSecurity( false );
1571 settings->EnableCacheBuilder( false );
1572 settings->EnableDoNotTrack( false );
1573 settings->UseScrollbarThumbFocusNotifications( false );
1574 settings->AllowFileAccessFromExternalUrl( false );
1575 settings->AllowScriptsOpenWindows( false );
1577 // Check default value is true or not
1578 bool value = settings->ArePluginsEnabled();
1579 DALI_TEST_CHECK( value );
1581 // Check Set/GetProperty
1582 settings->EnablePlugins( false );
1583 value = settings->ArePluginsEnabled();
1584 DALI_TEST_CHECK( !value );
1589 int UtcDaliWebSettingsCheckEnablePrivateBrowsing(void)
1591 ToolkitTestApplication application;
1593 WebView view = WebView::New();
1594 DALI_TEST_CHECK( view );
1596 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1597 DALI_TEST_CHECK( settings != 0 )
1600 settings->AllowMixedContents( false );
1601 settings->EnableSpatialNavigation( false );
1602 settings->EnableWebSecurity( false );
1603 settings->EnableCacheBuilder( false );
1604 settings->EnableDoNotTrack( false );
1605 settings->UseScrollbarThumbFocusNotifications( false );
1606 settings->AllowFileAccessFromExternalUrl( false );
1607 settings->AllowScriptsOpenWindows( false );
1609 // Check default value is true or not
1610 bool value = settings->IsPrivateBrowsingEnabled();
1611 DALI_TEST_CHECK( value );
1613 // Check Set/GetProperty
1614 settings->EnablePrivateBrowsing( false );
1615 value = settings->IsPrivateBrowsingEnabled();
1616 DALI_TEST_CHECK( !value );
1621 int UtcDaliWebSettingsCheckEnableLinkMagnifier(void)
1623 ToolkitTestApplication application;
1625 WebView view = WebView::New();
1626 DALI_TEST_CHECK( view );
1628 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1629 DALI_TEST_CHECK( settings != 0 )
1632 settings->AllowMixedContents( false );
1633 settings->EnableSpatialNavigation( false );
1634 settings->EnableWebSecurity( false );
1635 settings->EnableCacheBuilder( false );
1636 settings->EnableDoNotTrack( false );
1637 settings->UseScrollbarThumbFocusNotifications( false );
1638 settings->AllowFileAccessFromExternalUrl( false );
1639 settings->AllowScriptsOpenWindows( false );
1641 // Check default value is true or not
1642 bool value = settings->IsLinkMagnifierEnabled();
1643 DALI_TEST_CHECK( value );
1645 // Check Set/GetProperty
1646 settings->EnableLinkMagnifier( false );
1647 value = settings->IsLinkMagnifierEnabled();
1648 DALI_TEST_CHECK( !value );
1653 int UtcDaliWebSettingsCheckUseKeypadWithoutUserAction(void)
1655 ToolkitTestApplication application;
1657 WebView view = WebView::New();
1658 DALI_TEST_CHECK( view );
1660 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1661 DALI_TEST_CHECK( settings != 0 )
1664 settings->AllowMixedContents( false );
1665 settings->EnableSpatialNavigation( false );
1666 settings->EnableWebSecurity( false );
1667 settings->EnableCacheBuilder( false );
1668 settings->EnableDoNotTrack( false );
1669 settings->UseScrollbarThumbFocusNotifications( false );
1670 settings->AllowFileAccessFromExternalUrl( false );
1671 settings->AllowScriptsOpenWindows( false );
1673 // Check default value is true or not
1674 bool value = settings->IsKeypadWithoutUserActionUsed();
1675 DALI_TEST_CHECK( value );
1677 // Check Set/GetProperty
1678 settings->UseKeypadWithoutUserAction( false );
1679 value = settings->IsKeypadWithoutUserActionUsed();
1680 DALI_TEST_CHECK( !value );
1685 int UtcDaliWebSettingsCheckEnableAutofillPasswordForm(void)
1687 ToolkitTestApplication application;
1689 WebView view = WebView::New();
1690 DALI_TEST_CHECK( view );
1692 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1693 DALI_TEST_CHECK( settings != 0 )
1696 settings->AllowMixedContents( false );
1697 settings->EnableSpatialNavigation( false );
1698 settings->EnableWebSecurity( false );
1699 settings->EnableCacheBuilder( false );
1700 settings->EnableDoNotTrack( false );
1701 settings->UseScrollbarThumbFocusNotifications( false );
1702 settings->AllowFileAccessFromExternalUrl( false );
1703 settings->AllowScriptsOpenWindows( false );
1705 // Check default value is true or not
1706 bool value = settings->IsAutofillPasswordFormEnabled();
1707 DALI_TEST_CHECK( value );
1708 settings->EnableAutofillPasswordForm( false );
1709 value = settings->IsAutofillPasswordFormEnabled();
1710 DALI_TEST_CHECK( !value );
1714 int UtcDaliWebSettingsCheckEnableFormCandidateData(void)
1716 ToolkitTestApplication application;
1718 WebView view = WebView::New();
1719 DALI_TEST_CHECK( view );
1721 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1722 DALI_TEST_CHECK( settings != 0 );
1725 settings->AllowMixedContents( false );
1726 settings->EnableSpatialNavigation( false );
1727 settings->EnableWebSecurity( false );
1728 settings->EnableCacheBuilder( false );
1729 settings->EnableDoNotTrack( false );
1730 settings->UseScrollbarThumbFocusNotifications( false );
1731 settings->AllowFileAccessFromExternalUrl( false );
1732 settings->AllowScriptsOpenWindows( false );
1734 // Check default value is true or not
1735 bool value = settings->IsFormCandidateDataEnabled();
1736 DALI_TEST_CHECK( value );
1738 // Check Set/GetProperty
1739 settings->EnableFormCandidateData( false );
1740 value = settings->IsFormCandidateDataEnabled();
1741 DALI_TEST_CHECK( !value );
1746 int UtcDaliWebSettingsCheckEnableTextSelection(void)
1748 ToolkitTestApplication application;
1750 WebView view = WebView::New();
1751 DALI_TEST_CHECK( view );
1753 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1754 DALI_TEST_CHECK( settings != 0 );
1757 settings->AllowMixedContents( false );
1758 settings->EnableSpatialNavigation( false );
1759 settings->EnableWebSecurity( false );
1760 settings->EnableCacheBuilder( false );
1761 settings->EnableDoNotTrack( false );
1762 settings->UseScrollbarThumbFocusNotifications( false );
1763 settings->AllowFileAccessFromExternalUrl( false );
1764 settings->AllowScriptsOpenWindows( false );
1766 // Check default value is true or not
1767 bool value = settings->IsTextSelectionEnabled();
1768 DALI_TEST_CHECK( value );
1770 //Check Set/GetProperty
1771 settings->EnableTextSelection(false);
1772 value = settings->IsTextSelectionEnabled();
1773 DALI_TEST_CHECK( !value );
1778 int UtcDaliWebSettingsCheckEnableTextAutosizing(void)
1780 ToolkitTestApplication application;
1782 WebView view = WebView::New();
1783 DALI_TEST_CHECK( view );
1785 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1786 DALI_TEST_CHECK( settings != 0 );
1789 settings->AllowMixedContents( false );
1790 settings->EnableSpatialNavigation( false );
1791 settings->EnableWebSecurity( false );
1792 settings->EnableCacheBuilder( false );
1793 settings->EnableDoNotTrack( false );
1794 settings->UseScrollbarThumbFocusNotifications( false );
1795 settings->AllowFileAccessFromExternalUrl( false );
1796 settings->AllowScriptsOpenWindows( false );
1798 // Check default value is true or not
1799 bool value = settings->IsTextAutosizingEnabled();
1800 DALI_TEST_CHECK( value );
1802 // Check Set/GetProperty
1803 settings->EnableTextAutosizing(false);
1804 value = settings->IsTextAutosizingEnabled();
1805 DALI_TEST_CHECK( !value );
1810 int UtcDaliWebSettingsCheckEnableArrowScroll(void)
1812 ToolkitTestApplication application;
1814 WebView view = WebView::New();
1815 DALI_TEST_CHECK( view );
1817 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1818 DALI_TEST_CHECK( settings != 0 );
1821 settings->AllowMixedContents( false );
1822 settings->EnableSpatialNavigation( false );
1823 settings->EnableWebSecurity( false );
1824 settings->EnableCacheBuilder( false );
1825 settings->EnableDoNotTrack( false );
1826 settings->UseScrollbarThumbFocusNotifications( false );
1827 settings->AllowFileAccessFromExternalUrl( false );
1828 settings->AllowScriptsOpenWindows( false );
1830 // Check default value is true or not
1831 bool value = settings->IsArrowScrollEnabled();
1832 DALI_TEST_CHECK( value );
1834 // Check Set/GetProperty
1835 settings->EnableArrowScroll(false);
1836 value = settings->IsArrowScrollEnabled();
1837 DALI_TEST_CHECK( !value );
1842 int UtcDaliWebSettingsCheckEnableClipboard(void)
1844 ToolkitTestApplication application;
1846 WebView view = WebView::New();
1847 DALI_TEST_CHECK( view );
1849 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1850 DALI_TEST_CHECK( settings != 0 );
1853 settings->AllowMixedContents( false );
1854 settings->EnableSpatialNavigation( false );
1855 settings->EnableWebSecurity( false );
1856 settings->EnableCacheBuilder( false );
1857 settings->EnableDoNotTrack( false );
1858 settings->UseScrollbarThumbFocusNotifications( false );
1859 settings->AllowFileAccessFromExternalUrl( false );
1860 settings->AllowScriptsOpenWindows( false );
1862 // Check default value is true or not
1863 bool value = settings->IsClipboardEnabled();
1864 DALI_TEST_CHECK( value );
1865 settings->EnableClipboard(false);
1866 value = settings->IsClipboardEnabled();
1867 DALI_TEST_CHECK( !value );
1871 int UtcDaliWebSettingsCheckEnableImePanel(void)
1873 ToolkitTestApplication application;
1875 WebView view = WebView::New();
1876 DALI_TEST_CHECK( view );
1878 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1879 DALI_TEST_CHECK( settings != 0 );
1882 settings->AllowMixedContents( false );
1883 settings->EnableSpatialNavigation( false );
1884 settings->EnableWebSecurity( false );
1885 settings->EnableCacheBuilder( false );
1886 settings->EnableDoNotTrack( false );
1887 settings->UseScrollbarThumbFocusNotifications( false );
1888 settings->AllowFileAccessFromExternalUrl( false );
1889 settings->AllowScriptsOpenWindows( false );
1891 // Check default value is true or not
1892 bool value = settings->IsImePanelEnabled();
1893 DALI_TEST_CHECK( value );
1895 // Check Set/GetProperty
1896 settings->EnableImePanel(false);
1897 value = settings->IsImePanelEnabled();
1898 DALI_TEST_CHECK( !value );
1903 int UtcDaliWebSettingsCheckAllowImagesLoadAutomatically(void)
1905 ToolkitTestApplication application;
1907 WebView view = WebView::New();
1908 DALI_TEST_CHECK( view );
1910 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1911 DALI_TEST_CHECK( settings != 0 )
1914 settings->AllowMixedContents( false );
1915 settings->EnableSpatialNavigation( false );
1916 settings->EnableWebSecurity( false );
1917 settings->EnableCacheBuilder( false );
1918 settings->EnableDoNotTrack( false );
1919 settings->UseScrollbarThumbFocusNotifications( false );
1920 settings->AllowFileAccessFromExternalUrl( false );
1921 settings->AllowScriptsOpenWindows( false );
1923 // Check default value is true or not
1924 bool value = settings->AreImagesLoadedAutomatically();
1925 DALI_TEST_CHECK( value );
1927 // Check Set/GetProperty
1928 settings->AllowImagesLoadAutomatically( false );
1929 value = settings->AreImagesLoadedAutomatically();
1930 DALI_TEST_CHECK( !value );
1935 int UtcDaliWebSettingsGetSetDefaultTextEncodingName(void)
1937 ToolkitTestApplication application;
1939 WebView view = WebView::New();
1940 DALI_TEST_CHECK( view );
1942 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1943 DALI_TEST_CHECK( settings != 0 )
1945 const std::string kDefaultValue;
1946 const std::string kTestValue = "UTF-8";
1949 settings->AllowMixedContents( false );
1950 settings->EnableSpatialNavigation( false );
1951 settings->EnableWebSecurity( false );
1952 settings->EnableCacheBuilder( false );
1953 settings->EnableDoNotTrack( false );
1954 settings->UseScrollbarThumbFocusNotifications( false );
1955 settings->AllowFileAccessFromExternalUrl( false );
1956 settings->AllowScriptsOpenWindows( false );
1958 // Check default value
1959 std::string value = settings->GetDefaultTextEncodingName();
1960 DALI_TEST_EQUALS( value, kDefaultValue, TEST_LOCATION );
1962 // Check Set/GetProperty
1963 settings->SetDefaultTextEncodingName( kTestValue );
1964 value = settings->GetDefaultTextEncodingName();
1965 DALI_TEST_EQUALS( value, kTestValue, TEST_LOCATION );