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/devel-api/adaptor-framework/web-engine-console-message.h>
27 #include <dali/devel-api/adaptor-framework/web-engine-load-error.h>
28 #include <dali/integration-api/events/hover-event-integ.h>
29 #include <dali/integration-api/events/key-event-integ.h>
30 #include <dali/integration-api/events/touch-event-integ.h>
31 #include <dali/integration-api/events/wheel-event-integ.h>
32 #include <dali/public-api/images/pixel-data.h>
33 #include <dali-toolkit/public-api/controls/image-view/image-view.h>
34 #include <dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h>
35 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list.h>
36 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list-item.h>
37 #include <dali-toolkit/devel-api/controls/web-view/web-context.h>
38 #include <dali-toolkit/devel-api/controls/web-view/web-cookie-manager.h>
39 #include <dali-toolkit/devel-api/controls/web-view/web-form-repost-decision.h>
40 #include <dali-toolkit/devel-api/controls/web-view/web-settings.h>
41 #include <dali-toolkit/devel-api/controls/web-view/web-view.h>
44 using namespace Toolkit;
49 const char* const TEST_URL1( "http://www.somewhere.valid1.com" );
50 const char* const TEST_URL2( "http://www.somewhere.valid2.com" );
52 static int gPageLoadStartedCallbackCalled = 0;
53 static int gPageLoadInProgressCallbackCalled = 0;
54 static int gPageLoadFinishedCallbackCalled = 0;
55 static int gPageLoadErrorCallbackCalled = 0;
56 static std::shared_ptr<Dali::WebEngineLoadError> gPageLoadErrorInstance = nullptr;
57 static int gScrollEdgeReachedCallbackCalled = 0;
58 static int gUrlChangedCallbackCalled = 0;
59 static int gEvaluateJavaScriptCallbackCalled = 0;
60 static int gJavaScriptAlertCallbackCalled = 0;
61 static int gJavaScriptConfirmCallbackCalled = 0;
62 static int gJavaScriptPromptCallbackCalled = 0;
63 static int gScreenshotCapturedCallbackCalled = 0;
64 static int gVideoPlayingCallbackCalled = 0;
65 static int gGeolocationPermissionCallbackCalled = 0;
66 static bool gTouched = false;
67 static bool gHovered = false;
68 static bool gWheelEventHandled = false;
69 static int gFormRepostDecisionCallbackCalled = 0;
70 static std::shared_ptr<Dali::Toolkit::WebFormRepostDecision> gFormRepostDecisionInstance;
71 static int gFrameRenderedCallbackCalled = 0;
72 static int gRequestInterceptorCallbackCalled = 0;
73 static std::shared_ptr<Dali::WebEngineRequestInterceptor> gRequestInterceptorInstance = nullptr;
74 static int gConsoleMessageCallbackCalled = 0;
75 static std::shared_ptr<Dali::WebEngineConsoleMessage> gConsoleMessageInstance = nullptr;
77 struct CallbackFunctor
79 CallbackFunctor(bool* callbackFlag)
80 : mCallbackFlag( callbackFlag )
86 *mCallbackFlag = true;
91 static void OnPageLoadStarted( WebView view, const std::string& url )
93 gPageLoadStartedCallbackCalled++;
96 static void OnPageLoadInProgress( WebView view, const std::string& url )
98 gPageLoadInProgressCallbackCalled++;
101 static void OnPageLoadFinished( WebView view, const std::string& url )
103 gPageLoadFinishedCallbackCalled++;
106 static void OnScrollEdgeReached( WebView view, Dali::WebEnginePlugin::ScrollEdge edge )
108 gScrollEdgeReachedCallbackCalled++;
111 static void OnUrlChanged( WebView view, const std::string& url )
113 gUrlChangedCallbackCalled++;
116 static void OnPageLoadError(WebView view, std::shared_ptr<Dali::WebEngineLoadError> error)
118 gPageLoadErrorCallbackCalled++;
119 gPageLoadErrorInstance = std::move(error);
122 static void OnEvaluateJavaScript( const std::string& result )
124 gEvaluateJavaScriptCallbackCalled++;
127 static bool OnJavaScriptAlert( const std::string& result )
129 gJavaScriptAlertCallbackCalled++;
133 static bool OnJavaScriptConfirm( const std::string& result )
135 gJavaScriptConfirmCallbackCalled++;
139 static bool OnJavaScriptPrompt( const std::string& meesage1, const std::string& message2 )
141 gJavaScriptPromptCallbackCalled++;
145 static void OnScreenshotCaptured(Dali::Toolkit::ImageView)
147 gScreenshotCapturedCallbackCalled++;
\r
150 static void OnVideoPlaying(bool isPlaying)
152 gVideoPlayingCallbackCalled++;
155 static bool OnGeolocationPermission(const std::string&, const std::string&)
157 gGeolocationPermissionCallbackCalled++;
161 static bool OnTouched( Actor actor, const Dali::TouchEvent& touch )
167 static bool OnHovered( Actor actor, const Dali::HoverEvent& hover )
173 static bool OnWheelEvent( Actor actor, const Dali::WheelEvent& wheel )
175 gWheelEventHandled = true;
179 static void OnFormRepostDecision(WebView, std::shared_ptr<Dali::Toolkit::WebFormRepostDecision> decision)
181 gFormRepostDecisionCallbackCalled++;
182 gFormRepostDecisionInstance = decision;
185 static void OnFrameRendered(WebView)
187 gFrameRenderedCallbackCalled++;
190 static void OnRequestInterceptor(WebView view, std::shared_ptr<Dali::WebEngineRequestInterceptor> interceptor)
192 gRequestInterceptorCallbackCalled++;
193 gRequestInterceptorInstance = std::move(interceptor);
196 static void OnConsoleMessage(WebView view, std::shared_ptr<Dali::WebEngineConsoleMessage> message)
198 gConsoleMessageCallbackCalled++;
199 gConsoleMessageInstance = std::move(message);
204 void web_view_startup(void)
206 test_return_value = TET_UNDEF;
209 void web_view_cleanup(void)
211 test_return_value = TET_PASS;
214 int UtcDaliWebViewBasics(void)
216 ToolkitTestApplication application;
218 // Copy and Assignment Test
219 tet_infoline( "UtcDaliWebViewBasic Copy and Assignment Test" );
220 WebView view = WebView::New();
221 DALI_TEST_CHECK( view );
223 WebView copy( view );
224 DALI_TEST_CHECK( view == copy );
227 DALI_TEST_CHECK( !assign );
230 DALI_TEST_CHECK( assign == view );
234 tet_infoline( "UtcDaliWebViewBasic DownCast Test" );
235 BaseHandle handle(view);
237 WebView view2 = WebView::DownCast( handle );
238 DALI_TEST_CHECK( view );
239 DALI_TEST_CHECK( view2 );
240 DALI_TEST_CHECK( view == view2 );
244 tet_infoline( "UtcDaliWebViewBasic TypeRegistry Test" );
245 TypeRegistry typeRegistry = TypeRegistry::Get();
246 DALI_TEST_CHECK( typeRegistry );
248 TypeInfo typeInfo = typeRegistry.GetTypeInfo( "WebView" );
249 DALI_TEST_CHECK( typeInfo );
251 BaseHandle handle2 = typeInfo.CreateInstance();
252 DALI_TEST_CHECK( handle2 );
254 WebView view3 = WebView::DownCast( handle2 );
255 DALI_TEST_CHECK( view3 );
260 int UtcDaliWebViewPageNavigation(void)
262 ToolkitTestApplication application;
264 WebView view = WebView::New();
265 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
266 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
267 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
268 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
269 application.GetScene().Add( view );
270 application.SendNotification();
271 application.Render();
272 DALI_TEST_CHECK( view );
274 ConnectionTracker* testTracker = new ConnectionTracker();
275 view.PageLoadStartedSignal().Connect( &OnPageLoadStarted );
276 view.PageLoadInProgressSignal().Connect( &OnPageLoadInProgress );
277 view.PageLoadFinishedSignal().Connect( &OnPageLoadFinished );
278 view.UrlChangedSignal().Connect( &OnUrlChanged );
279 bool signal1 = false;
280 bool signal2 = false;
281 bool signal3 = false;
282 bool signal4 = false;
283 bool signal5 = false;
284 view.ConnectSignal( testTracker, "pageLoadStarted", CallbackFunctor(&signal1) );
285 view.ConnectSignal( testTracker, "pageLoadInProgress", CallbackFunctor(&signal2) );
286 view.ConnectSignal( testTracker, "pageLoadFinished", CallbackFunctor(&signal3) );
287 view.ConnectSignal( testTracker, "urlChanged", CallbackFunctor(&signal4) );
288 view.ConnectSignal( testTracker, "invalidname", CallbackFunctor(&signal5) );
289 DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 0, TEST_LOCATION );
290 DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 0, TEST_LOCATION );
291 DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 0, TEST_LOCATION );
292 DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 0, TEST_LOCATION );
294 view.LoadUrl( TEST_URL1 );
295 view.GetNaturalSize();
296 Test::EmitGlobalTimerSignal();
297 DALI_TEST_EQUALS( view.CanGoBack(), false, TEST_LOCATION );
298 DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 1, TEST_LOCATION );
299 DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 1, TEST_LOCATION );
300 DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 1, TEST_LOCATION );
301 DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 1, TEST_LOCATION );
302 DALI_TEST_CHECK( signal1 & signal2 & signal3 & signal4 );
303 DALI_TEST_CHECK( !signal5 );
305 view.LoadUrl( TEST_URL2 );
307 view.SetProperty( Actor::Property::SIZE, Vector2( 400, 300 ) );
308 application.SendNotification();
309 application.Render();
310 Test::EmitGlobalTimerSignal();
312 DALI_TEST_EQUALS( view.CanGoBack(), true, TEST_LOCATION );
313 DALI_TEST_EQUALS( view.CanGoForward(), false, TEST_LOCATION );
314 DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 2, TEST_LOCATION );
315 DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 2, TEST_LOCATION );
316 DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 2, TEST_LOCATION );
317 DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 2, TEST_LOCATION );
320 Test::EmitGlobalTimerSignal();
321 DALI_TEST_CHECK( !view.CanGoBack() );
322 DALI_TEST_CHECK( view.CanGoForward() );
325 Test::EmitGlobalTimerSignal();
326 DALI_TEST_CHECK( view.CanGoBack() );
327 DALI_TEST_CHECK( !view.CanGoForward() );
332 Test::EmitGlobalTimerSignal();
333 DALI_TEST_CHECK( !view.CanGoBack() );
334 DALI_TEST_CHECK( !view.CanGoForward() );
339 int UtcDaliWebViewPageLoadErrorConsoleMessage(void)
341 ToolkitTestApplication application;
343 WebView view = WebView::New();
344 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
345 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
346 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
347 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
348 application.GetScene().Add( view );
349 application.SendNotification();
350 application.Render();
351 DALI_TEST_CHECK( view );
353 ConnectionTracker* testTracker = new ConnectionTracker();
354 view.PageLoadErrorSignal().Connect( &OnPageLoadError );
355 view.ConsoleMessageSignal().Connect( &OnConsoleMessage );
356 bool signal1 = false;
357 bool signal2 = false;
358 view.ConnectSignal( testTracker, "pageLoadError", CallbackFunctor(&signal1) );
359 view.ConnectSignal( testTracker, "consoleMessage", CallbackFunctor(&signal2) );
360 DALI_TEST_EQUALS( gPageLoadErrorCallbackCalled, 0, TEST_LOCATION );
361 DALI_TEST_EQUALS( gConsoleMessageCallbackCalled, 0, TEST_LOCATION );
363 view.LoadUrl( TEST_URL1 );
364 Test::EmitGlobalTimerSignal();
365 DALI_TEST_EQUALS( gPageLoadErrorCallbackCalled, 1, TEST_LOCATION );
366 DALI_TEST_EQUALS( gConsoleMessageCallbackCalled, 1, TEST_LOCATION );
367 DALI_TEST_CHECK( signal1 & signal2);
370 DALI_TEST_CHECK(gPageLoadErrorInstance);
371 DALI_TEST_EQUALS(gPageLoadErrorInstance->GetUrl(), TEST_URL1, TEST_LOCATION);
372 DALI_TEST_EQUALS(gPageLoadErrorInstance->GetCode(), Dali::WebEngineLoadError::ErrorCode::UNKNOWN, TEST_LOCATION);
373 std::string testErrorDescription("This is an error.");
374 DALI_TEST_EQUALS(gPageLoadErrorInstance->GetDescription(), testErrorDescription, TEST_LOCATION);
375 DALI_TEST_EQUALS(gPageLoadErrorInstance->GetType(), Dali::WebEngineLoadError::ErrorType::NONE, TEST_LOCATION);
378 DALI_TEST_CHECK(gConsoleMessageInstance);
379 std::string testConsoleSource("source");
380 DALI_TEST_EQUALS(gConsoleMessageInstance->GetSource(), testConsoleSource, TEST_LOCATION);
381 DALI_TEST_EQUALS(gConsoleMessageInstance->GetLine(), 10, TEST_LOCATION);
382 DALI_TEST_EQUALS(gConsoleMessageInstance->GetSeverityLevel(), Dali::WebEngineConsoleMessage::SeverityLevel::EMPTY, TEST_LOCATION);
383 std::string testConsoleText("This is a text.");
384 DALI_TEST_EQUALS(gConsoleMessageInstance->GetText(), testConsoleText, TEST_LOCATION);
387 gPageLoadErrorInstance = nullptr;
388 gConsoleMessageInstance = nullptr;
393 int UtcDaliWebViewTouchAndKeys(void)
395 ToolkitTestApplication application;
397 WebView view = WebView::New();
398 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
399 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
400 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
401 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
403 application.GetScene().Add( view );
404 application.SendNotification();
405 application.Render();
407 view.GetNaturalSize();
408 view.TouchedSignal().Connect( &OnTouched );
411 Dali::Integration::TouchEvent event;
412 Dali::Integration::Point pointDown, pointUp;
414 event = Dali::Integration::TouchEvent();
415 pointDown.SetState( PointState::DOWN );
416 pointDown.SetScreenPosition( Vector2( 10, 10 ) );
417 event.AddPoint( pointDown );
418 application.ProcessEvent( event );
420 event = Dali::Integration::TouchEvent();
421 pointUp.SetState( PointState::UP );
422 pointUp.SetScreenPosition( Vector2( 10, 10 ) );
423 event.AddPoint( pointUp );
424 application.ProcessEvent( event );
427 Toolkit::KeyboardFocusManager::Get().SetCurrentFocusActor( view );
428 application.ProcessEvent( Integration::KeyEvent( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE ) );
429 application.SendNotification();
431 DALI_TEST_CHECK( gTouched );
432 DALI_TEST_CHECK( view );
437 int UtcDaliWebViewFocusGainedAndLost(void)
439 ToolkitTestApplication application;
441 WebView view = WebView::New();
442 DALI_TEST_CHECK( view );
444 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
445 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
446 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
447 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
449 application.GetScene().Add( view );
450 application.SendNotification();
451 application.Render();
453 view.SetKeyInputFocus();
454 DALI_TEST_CHECK( view.HasKeyInputFocus() );
457 view.ClearKeyInputFocus();
458 DALI_TEST_CHECK( !view.HasKeyInputFocus() );
463 int UtcDaliWebViewPropertyPageZoomFactor(void)
465 ToolkitTestApplication application;
467 WebView view = WebView::New();
468 DALI_TEST_CHECK( view );
470 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
471 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
472 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
473 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
475 application.GetScene().Add( view );
476 application.SendNotification();
477 application.Render();
479 view.SetProperty( WebView::Property::PAGE_ZOOM_FACTOR, 1.5f);
480 float zoomFactor = view.GetProperty<float>( WebView::Property::PAGE_ZOOM_FACTOR );
481 DALI_TEST_EQUALS( zoomFactor, 1.5f, TEST_LOCATION );
483 view.SetProperty( WebView::Property::PAGE_ZOOM_FACTOR, 1.0f);
484 zoomFactor = view.GetProperty<float>( WebView::Property::PAGE_ZOOM_FACTOR );
485 DALI_TEST_EQUALS( zoomFactor, 1.0f, TEST_LOCATION );
490 int UtcDaliWebViewPropertyTextZoomFactor(void)
492 ToolkitTestApplication application;
494 WebView view = WebView::New();
495 DALI_TEST_CHECK( view );
497 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
498 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
499 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
500 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
502 application.GetScene().Add( view );
503 application.SendNotification();
504 application.Render();
506 view.SetProperty( WebView::Property::TEXT_ZOOM_FACTOR, 1.5f);
507 float zoomFactor = view.GetProperty<float>( WebView::Property::TEXT_ZOOM_FACTOR );
508 DALI_TEST_EQUALS( zoomFactor, 1.5f, TEST_LOCATION );
510 view.SetProperty( WebView::Property::TEXT_ZOOM_FACTOR, 1.0f);
511 zoomFactor = view.GetProperty<float>( WebView::Property::TEXT_ZOOM_FACTOR );
512 DALI_TEST_EQUALS( zoomFactor, 1.0f, TEST_LOCATION );
517 int UtcDaliWebViewPropertyLoadProgressPercentage(void)
519 ToolkitTestApplication application;
521 WebView view = WebView::New();
522 DALI_TEST_CHECK( view );
524 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
525 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
526 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
527 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
529 application.GetScene().Add( view );
530 application.SendNotification();
531 application.Render();
533 float percentage = view.GetProperty<float>( WebView::Property::LOAD_PROGRESS_PERCENTAGE );
534 DALI_TEST_EQUALS( percentage, 0.5f, TEST_LOCATION );
539 int UtcDaliWebViewMove(void)
541 ToolkitTestApplication application;
543 WebView view = WebView::New();
544 DALI_TEST_CHECK( view );
546 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
547 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
548 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
549 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
551 application.GetScene().Add( view );
552 application.SendNotification();
553 application.Render();
555 view.SetProperty( Actor::Property::POSITION, Vector2( 100, 100 ));
556 Vector3 viewPos = view.GetProperty<Vector3>( Actor::Property::POSITION );
557 DALI_TEST_EQUALS( viewPos, Vector3( 100, 100, 0 ), TEST_LOCATION );
562 int UtcDaliWebViewPropertyVideoHoleEnabled(void)
564 ToolkitTestApplication application;
566 WebView view = WebView::New();
567 DALI_TEST_CHECK( view );
569 const bool kDefaultValue = true;
570 const bool kTestValue = false;
572 // Check default value
574 Property::Value value = view.GetProperty( WebView::Property::VIDEO_HOLE_ENABLED );
575 DALI_TEST_CHECK( value.Get( output ) );
576 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
578 // Check Set/GetProperty
579 view.SetProperty( WebView::Property::VIDEO_HOLE_ENABLED, kTestValue );
580 value = view.GetProperty( WebView::Property::VIDEO_HOLE_ENABLED );
581 DALI_TEST_CHECK( value.Get( output ) );
582 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
587 int UtcDaliWebViewPropertyMouseEventsEnabled(void)
589 ToolkitTestApplication application;
591 WebView view = WebView::New();
592 DALI_TEST_CHECK( view );
594 const bool kDefaultValue = true;
595 const bool kTestValue = false;
597 // Check default value
599 Property::Value value = view.GetProperty( WebView::Property::MOUSE_EVENTS_ENABLED );
600 DALI_TEST_CHECK( value.Get( output ) );
601 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
603 // Check Set/GetProperty
604 view.SetProperty( WebView::Property::MOUSE_EVENTS_ENABLED, kTestValue );
605 value = view.GetProperty( WebView::Property::MOUSE_EVENTS_ENABLED );
606 DALI_TEST_CHECK( value.Get( output ) );
607 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
612 int UtcDaliWebViewPropertyKeyEventsEnabled(void)
614 ToolkitTestApplication application;
616 WebView view = WebView::New();
617 DALI_TEST_CHECK( view );
619 const bool kDefaultValue = true;
620 const bool kTestValue = false;
622 // Check default value
624 Property::Value value = view.GetProperty( WebView::Property::KEY_EVENTS_ENABLED );
625 DALI_TEST_CHECK( value.Get( output ) );
626 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
628 // Check Set/GetProperty
629 view.SetProperty( WebView::Property::KEY_EVENTS_ENABLED, kTestValue );
630 value = view.GetProperty( WebView::Property::KEY_EVENTS_ENABLED );
631 DALI_TEST_CHECK( value.Get( output ) );
632 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
637 int UtcDaliWebViewHoverAndWheel(void)
639 ToolkitTestApplication application;
641 WebView view = WebView::New();
642 DALI_TEST_CHECK( view );
643 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
644 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
645 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
646 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
648 application.GetScene().Add( view );
649 application.SendNotification();
650 application.Render();
652 view.GetNaturalSize();
653 view.HoveredSignal().Connect( &OnHovered );
654 view.WheelEventSignal().Connect( &OnWheelEvent );
657 Dali::Integration::HoverEvent event = Dali::Integration::HoverEvent();
658 Dali::Integration::Point pointDown;
659 pointDown.SetState( PointState::DOWN );
660 pointDown.SetScreenPosition( Vector2( 10, 10 ) );
661 event.AddPoint( pointDown );
662 application.ProcessEvent( event );
664 event = Dali::Integration::HoverEvent();
665 Dali::Integration::Point pointUp;
666 pointUp.SetState( PointState::UP );
667 pointUp.SetScreenPosition( Vector2( 10, 10 ) );
668 event.AddPoint( pointUp );
669 application.ProcessEvent( event );
671 event = Dali::Integration::HoverEvent();
672 Dali::Integration::Point pointMotion;
673 pointUp.SetState( PointState::MOTION );
674 pointUp.SetScreenPosition( Vector2( 10, 10 ) );
675 event.AddPoint( pointMotion );
676 application.ProcessEvent( event );
679 Dali::Integration::WheelEvent wheelEvent;
680 wheelEvent.type = Dali::Integration::WheelEvent::Type::MOUSE_WHEEL;
681 wheelEvent.direction = 0;
682 wheelEvent.point = Vector2( 20, 20 );
683 wheelEvent.delta = 10;
684 application.ProcessEvent( wheelEvent );
685 application.SendNotification();
687 DALI_TEST_CHECK( gHovered );
688 DALI_TEST_CHECK( gWheelEventHandled );
693 int UtcDaliWebViewFormRepostDecisionFrameRendering(void)
695 ToolkitTestApplication application;
697 WebView view = WebView::New();
698 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
699 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
700 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
701 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
702 application.GetScene().Add( view );
703 application.SendNotification();
704 application.Render();
705 DALI_TEST_CHECK( view );
707 ConnectionTracker* testTracker = new ConnectionTracker();
708 view.FormRepostDecisionSignal().Connect(&OnFormRepostDecision);
709 view.FrameRenderedSignal().Connect(&OnFrameRendered);
710 bool signal1 = false;
711 bool signal2 = false;
712 view.ConnectSignal( testTracker, "formRepostDecision", CallbackFunctor(&signal1) );
713 view.ConnectSignal( testTracker, "frameRendered", CallbackFunctor(&signal2) );
714 DALI_TEST_EQUALS( gFormRepostDecisionCallbackCalled, 0, TEST_LOCATION );
715 DALI_TEST_EQUALS( gFrameRenderedCallbackCalled, 0, TEST_LOCATION );
717 view.LoadUrl( TEST_URL1 );
718 Test::EmitGlobalTimerSignal();
719 DALI_TEST_EQUALS( gFormRepostDecisionCallbackCalled, 1, TEST_LOCATION );
720 DALI_TEST_EQUALS( gFrameRenderedCallbackCalled, 1, TEST_LOCATION );
721 DALI_TEST_CHECK( signal1 & signal2);
723 // form repost decision.
724 DALI_TEST_CHECK(gFormRepostDecisionInstance);
725 gFormRepostDecisionInstance->Reply(true);
728 gFormRepostDecisionInstance = nullptr;
733 int UtcDaliWebViewGetWebBackForwardList(void)
735 ToolkitTestApplication application;
737 WebView view = WebView::New();
738 DALI_TEST_CHECK( view );
740 Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
741 DALI_TEST_CHECK( bfList != 0 );
746 int UtcDaliWebViewGetWebContext(void)
748 ToolkitTestApplication application;
750 WebView view = WebView::New();
751 DALI_TEST_CHECK( view );
753 Dali::Toolkit::WebContext* context = view.GetContext();
754 DALI_TEST_CHECK( context != 0 );
759 int UtcDaliWebViewGetWebCookieManager(void)
761 ToolkitTestApplication application;
763 WebView view = WebView::New();
764 DALI_TEST_CHECK( view );
766 Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager();
767 DALI_TEST_CHECK( cookieManager != 0 );
772 int UtcDaliWebViewGetWebSettings(void)
774 ToolkitTestApplication application;
776 WebView view = WebView::New();
777 DALI_TEST_CHECK( view );
779 Dali::Toolkit::WebSettings* settings = view.GetSettings();
780 DALI_TEST_CHECK( settings != 0 );
785 int UtcDaliWebViewProperty1(void)
788 ToolkitTestApplication application;
790 WebView view = WebView::New();
791 DALI_TEST_CHECK( view );
794 view.SetProperty( WebView::Property::URL, TEST_URL1 );
795 Property::Value val = view.GetProperty( WebView::Property::URL );
796 DALI_TEST_CHECK( val.Get( local ) );
797 DALI_TEST_EQUALS( local, TEST_URL1, TEST_LOCATION );
802 int UtcDaliWebViewProperty4(void)
805 ToolkitTestApplication application;
807 WebView view = WebView::New();
808 DALI_TEST_CHECK( view );
810 const std::string kDefaultValue;
811 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";
813 // Check default value
815 Property::Value value = view.GetProperty( WebView::Property::USER_AGENT );
816 DALI_TEST_CHECK( value.Get( output ) );
817 DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
819 // Check Set/GetProperty
820 view.SetProperty( WebView::Property::USER_AGENT, kTestValue );
821 value = view.GetProperty( WebView::Property::USER_AGENT );
822 DALI_TEST_CHECK( value.Get( output ) );
823 DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
828 int UtcDaliWebViewProperty9(void)
831 ToolkitTestApplication application;
833 WebView view = WebView::New();
834 DALI_TEST_CHECK( view );
836 // Check default value
837 Dali::Vector2 output = Dali::Vector2::ONE;
838 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
839 DALI_TEST_CHECK( output.x == 0 && output.y == 0 );
841 // Check Set/GetProperty
842 Dali::Vector2 testValue = Dali::Vector2( 100, 100 );
843 view.SetProperty( WebView::Property::SCROLL_POSITION, testValue );
844 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
845 DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
847 // Check default value of scroll size
848 output = Dali::Vector2::ONE;
849 view.GetProperty( WebView::Property::SCROLL_SIZE ).Get( output );
850 DALI_TEST_CHECK( output.x == 500 && output.y == 500 );
852 // Check default value of content size
853 output = Dali::Vector2::ONE;
854 view.GetProperty( WebView::Property::CONTENT_SIZE ).Get( output );
855 DALI_TEST_CHECK( output.x == 500 && output.y == 500 );
860 int UtcDaliWebViewPropertyBackgroundColorSelectedTextEtc(void)
862 ToolkitTestApplication application;
864 WebView view = WebView::New();
865 DALI_TEST_CHECK( view );
867 Dali::Vector4 testValue = Dali::Vector4(0.0f, 0.0f, 0.0f, 0.0f);
868 view.SetProperty(WebView::Property::DOCUMENT_BACKGROUND_COLOR, testValue);
869 view.SetProperty(WebView::Property::TILES_CLEARED_WHEN_HIDDEN, true);
870 view.SetProperty(WebView::Property::TILE_COVER_AREA_MULTIPLIER, 1.0f);
871 view.SetProperty(WebView::Property::CURSOR_ENABLED_BY_CLIENT, true);
873 // Check default value
874 std::string testText("test");
876 view.GetProperty(WebView::Property::SELECTED_TEXT).Get(output);
877 DALI_TEST_EQUALS(output, testText, TEST_LOCATION);
882 int UtcDaliWebViewPropertyTitleFavicon(void)
884 ToolkitTestApplication application;
886 char argv[] = "--test";
887 WebView view = WebView::New( 1, (char**)&argv );
888 DALI_TEST_CHECK( view );
891 view.ClearAllTilesResources();
893 // Check default value of title
894 std::string testValue("title");
896 view.GetProperty( WebView::Property::TITLE ).Get( output );
897 DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
899 // Check default value of favicon
900 Dali::Toolkit::ImageView* favicon = &view.GetFavicon();
901 DALI_TEST_CHECK( favicon );
902 Dali::Vector3 iconsize = favicon->GetProperty< Vector3 >( Dali::Actor::Property::SIZE );
903 DALI_TEST_CHECK( ( int )iconsize.width == 2 && ( int )iconsize.height == 2 );
908 int UtcDaliWebViewScrollBy(void)
910 ToolkitTestApplication application;
912 WebView view = WebView::New();
913 DALI_TEST_CHECK( view );
916 ConnectionTracker* testTracker = new ConnectionTracker();
917 view.ScrollEdgeReachedSignal().Connect( &OnScrollEdgeReached );
918 bool signal1 = false;
919 view.ConnectSignal( testTracker, "scrollEdgeReached", CallbackFunctor(&signal1) );
920 DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 0, TEST_LOCATION );
922 view.LoadUrl( TEST_URL1 );
923 Test::EmitGlobalTimerSignal();
925 // set scroll position.
926 Dali::Vector2 output = Dali::Vector2::ONE;
927 Dali::Vector2 testValue = Dali::Vector2( 100, 100 );
928 view.SetProperty( WebView::Property::SCROLL_POSITION, testValue );
929 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
930 DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
932 // scroll by and trigger scrollEdgeReached event.
933 view.ScrollBy( 50, 50 );
934 Test::EmitGlobalTimerSignal();
936 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
937 DALI_TEST_CHECK( output.x == 150 && output.y == 150 );
938 DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 1, TEST_LOCATION );
939 DALI_TEST_CHECK( signal1 );
941 // scroll by and trigger scrollEdgeReached event.
942 bool result = view.ScrollEdgeBy( 50, 50 );
943 DALI_TEST_CHECK( result );
944 Test::EmitGlobalTimerSignal();
946 view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
947 DALI_TEST_CHECK( output.x == 200 && output.y == 200 );
948 DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 2, TEST_LOCATION );
949 DALI_TEST_CHECK( signal1 );
954 int UtcDaliWebViewSetGetScaleFactorActivateAccessibility(void)
956 ToolkitTestApplication application;
958 WebView view = WebView::New();
959 DALI_TEST_CHECK( view );
961 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
962 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
963 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
964 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
966 application.GetScene().Add( view );
967 application.SendNotification();
968 application.Render();
970 view.ActivateAccessibility(true);
971 view.AddDynamicCertificatePath("host", "test/to/path");
972 bool found = view.HighlightText("test", Dali::WebEnginePlugin::FindOption::CASE_INSENSITIVE, 2);
973 DALI_TEST_CHECK( found );
975 view.SetScaleFactor(1.5f, Dali::Vector2(0.0f, 0.0f));
976 float result = view.GetScaleFactor();
977 DALI_TEST_EQUALS( result, 1.5f, TEST_LOCATION );
979 view.SetScaleFactor(1.0f, Dali::Vector2(0.0f, 0.0f));
980 result = view.GetScaleFactor();
981 DALI_TEST_EQUALS( result, 1.0f, TEST_LOCATION );
986 int UtcDaliWebViewGetScreenshotSyncAndAsync(void)
989 ToolkitTestApplication application;
991 char argv[] = "--test";
992 WebView view = WebView::New( 1, (char**)&argv );
993 DALI_TEST_CHECK( view );
995 // Check GetScreenshot
996 Dali::Rect<int> viewArea;
1000 viewArea.height = 10;
1001 Dali::Toolkit::ImageView screenshot = view.GetScreenshot(viewArea, 1.0f);
1002 DALI_TEST_CHECK( screenshot );
1003 Dali::Vector3 shotsize = screenshot.GetProperty< Vector3 >( Dali::Actor::Property::SIZE );
1004 DALI_TEST_CHECK( ( int )shotsize.width == viewArea.width && ( int )shotsize.height == viewArea.height );
1006 // Check GetScreenshotAsynchronously
1009 viewArea.width = 100;
1010 viewArea.height = 100;
1011 bool result = view.GetScreenshotAsynchronously(viewArea, 1.0f, &OnScreenshotCaptured);
1012 DALI_TEST_CHECK( result );
1014 Test::EmitGlobalTimerSignal();
1016 Test::EmitGlobalTimerSignal();
1017 DALI_TEST_EQUALS( gScreenshotCapturedCallbackCalled, 1, TEST_LOCATION );
1022 int UtcDaliWebViewVideoPlayingGeolocationPermission(void)
1025 ToolkitTestApplication application;
1027 char argv[] = "--test";
1028 WebView view = WebView::New( 1, (char**)&argv );
1029 DALI_TEST_CHECK( view );
1031 // Check CheckVideoPlayingAsynchronously
1032 bool result = view.CheckVideoPlayingAsynchronously(&OnVideoPlaying);
1033 DALI_TEST_CHECK( result );
1034 Test::EmitGlobalTimerSignal();
1035 DALI_TEST_EQUALS( gVideoPlayingCallbackCalled, 1, TEST_LOCATION );
1037 // Check RegisterGeolocationPermissionCallback
1038 view.RegisterGeolocationPermissionCallback(&OnGeolocationPermission);
1039 Test::EmitGlobalTimerSignal();
1040 DALI_TEST_EQUALS( gGeolocationPermissionCallbackCalled, 1, TEST_LOCATION );
1045 int UtcDaliWebViewHttpRequestInterceptor(void)
1047 ToolkitTestApplication application;
1049 WebView view = WebView::New();
1050 DALI_TEST_CHECK( view );
1053 ConnectionTracker* testTracker = new ConnectionTracker();
1054 view.RequestInterceptorSignal().Connect( &OnRequestInterceptor );
1055 bool signal1 = false;
1056 view.ConnectSignal( testTracker, "requestInterceptor", CallbackFunctor(&signal1) );
1057 DALI_TEST_EQUALS( gRequestInterceptorCallbackCalled, 0, TEST_LOCATION );
1058 DALI_TEST_CHECK(gRequestInterceptorInstance == 0);
1060 view.LoadUrl( TEST_URL1 );
1061 Test::EmitGlobalTimerSignal();
1062 DALI_TEST_EQUALS( gRequestInterceptorCallbackCalled, 1, TEST_LOCATION );
1063 DALI_TEST_CHECK( signal1 );
1065 // check request interceptor.
1066 DALI_TEST_CHECK(gRequestInterceptorInstance != 0);
1067 DALI_TEST_CHECK(gRequestInterceptorInstance->Ignore());
1068 DALI_TEST_CHECK(gRequestInterceptorInstance->SetResponseStatus(400, "error"));
1069 DALI_TEST_CHECK(gRequestInterceptorInstance->AddResponseHeader("key", "value"));
1070 DALI_TEST_CHECK(gRequestInterceptorInstance->AddResponseBody("test", 4));
1071 std::string testUrl("http://test.html");
1072 DALI_TEST_EQUALS(gRequestInterceptorInstance->GetUrl(), testUrl, TEST_LOCATION);
1074 gRequestInterceptorInstance = nullptr;
1079 int UtcDaliWebViewEvaluteJavaScript(void)
1081 ToolkitTestApplication application;
1083 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
1085 view.LoadHtmlString( "<body>Hello World!</body>" );
1086 view.EvaluateJavaScript( "jsObject.postMessage('Hello')" );
1087 view.EvaluateJavaScript( "jsObject.postMessage('World')", OnEvaluateJavaScript );
1088 Test::EmitGlobalTimerSignal();
1090 DALI_TEST_EQUALS( gEvaluateJavaScriptCallbackCalled, 1, TEST_LOCATION );
1095 int UtcDaliWebViewJavaScriptAlertConfirmPrompt(void)
1097 ToolkitTestApplication application;
1099 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
1101 view.RegisterJavaScriptAlertCallback( &OnJavaScriptAlert );
1102 view.LoadHtmlString( "<head><script type='text/javascript'>alert('this is an alert popup.');</script></head><body>Hello World!</body>" );
1103 view.JavaScriptAlertReply();
1104 Test::EmitGlobalTimerSignal();
1105 DALI_TEST_EQUALS( gJavaScriptAlertCallbackCalled, 1, TEST_LOCATION );
1107 view.RegisterJavaScriptConfirmCallback( &OnJavaScriptConfirm );
1108 view.LoadHtmlString( "<head><script type='text/javascript'>confirm('this is a confirm popup.');</script></head><body>Hello World!</body>" );
1109 view.JavaScriptConfirmReply( true );
1110 Test::EmitGlobalTimerSignal();
1111 DALI_TEST_EQUALS( gJavaScriptConfirmCallbackCalled, 1, TEST_LOCATION );
1113 view.RegisterJavaScriptPromptCallback( &OnJavaScriptPrompt );
1114 view.LoadHtmlString( "<head><script type='text/javascript'>prompt('this is a prompt popup.');</script></head><body>Hello World!</body>" );
1115 view.JavaScriptPromptReply( "it is a prompt." );
1116 Test::EmitGlobalTimerSignal();
1117 DALI_TEST_EQUALS( gJavaScriptPromptCallbackCalled, 1, TEST_LOCATION );
1122 int UtcDaliWebViewLoadHtmlStringOverrideCurrentEntryAndContents(void)
1124 ToolkitTestApplication application;
1126 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
1127 DALI_TEST_CHECK( view );
1129 std::string html("<body>Hello World!</body>");
1130 std::string basicUri("http://basicurl");
1131 std::string unreachableUrl("http://unreachableurl");
1132 bool result = view.LoadHtmlStringOverrideCurrentEntry( html, basicUri, unreachableUrl );
1133 DALI_TEST_CHECK( result );
1135 application.SendNotification();
1136 application.Render();
1137 Test::EmitGlobalTimerSignal();
1139 result = view.LoadContents( html, html.length(), "html/text", "utf-8", basicUri );
1140 DALI_TEST_CHECK( result );
1145 int UtcDaliWebViewReloadSuspendResumeNetworkLoadingCustomHeader(void)
1147 ToolkitTestApplication application;
1149 WebView view = WebView::New();
1150 view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
1151 view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
1152 view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
1153 view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
1155 application.GetScene().Add( view );
1156 application.SendNotification();
1157 application.Render();
1158 DALI_TEST_CHECK( view );
1160 view.LoadUrl( "http://test.html" );
1161 bool result = view.AddCustomHeader("key", "value");
1162 DALI_TEST_CHECK( result );
1164 result = view.ReloadWithoutCache();
1165 DALI_TEST_CHECK( result );
1167 uint32_t portNumber = view.StartInspectorServer(5000);
1168 DALI_TEST_EQUALS( portNumber, 5000, TEST_LOCATION );
1170 application.SendNotification();
1171 application.Render();
1172 Test::EmitGlobalTimerSignal();
1174 result = view.StopInspectorServer();
1175 DALI_TEST_CHECK( result );
1177 view.SuspendNetworkLoading();
1179 result = view.RemoveCustomHeader("key");
1180 DALI_TEST_CHECK( result );
1182 view.ResumeNetworkLoading();
1187 int UtcDaliWebViewMethodsForCoverage(void)
1189 ToolkitTestApplication application;
1191 WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
1193 view.LoadHtmlString( "<body>Hello World!</body>" );
1194 view.AddJavaScriptMessageHandler( "jsObject",
1195 []( const std::string& arg ) {
1199 DALI_TEST_CHECK( view );
1204 // test cases for web backforward list.
1206 int UtcDaliWebBackForwardListCheckItem(void)
1208 ToolkitTestApplication application;
1210 WebView view = WebView::New();
1211 DALI_TEST_CHECK( view );
1213 Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
1214 DALI_TEST_CHECK( bfList != 0 )
1216 unsigned int itemCount = bfList->GetItemCount();
1217 DALI_TEST_CHECK( itemCount == 1 )
1219 Dali::Toolkit::WebBackForwardListItem* citem = bfList->GetCurrentItem();
1220 DALI_TEST_CHECK( citem != 0 );
1222 const std::string kDefaultUrl( "http://url" );
1223 std::string testValue = citem->GetUrl();
1224 DALI_TEST_EQUALS( testValue, kDefaultUrl, TEST_LOCATION );
1226 const std::string kDefaultTitle( "title" );
1227 testValue = citem->GetTitle();
1228 DALI_TEST_EQUALS( testValue, kDefaultTitle, TEST_LOCATION );
1230 const std::string kDefaultOriginalUrl( "http://originalurl" );
1231 testValue = citem->GetOriginalUrl();
1232 DALI_TEST_EQUALS( testValue, kDefaultOriginalUrl, TEST_LOCATION );
1234 Dali::Toolkit::WebBackForwardListItem* item = bfList->GetItemAtIndex( 0 );
1235 DALI_TEST_CHECK( item != 0 );
1240 // test cases for web context.
1242 int UtcDaliWebContextGetSetCacheModel(void)
1244 ToolkitTestApplication application;
1246 WebView view = WebView::New();
1247 DALI_TEST_CHECK( view );
1249 Dali::Toolkit::WebContext* context = view.GetContext();
1250 DALI_TEST_CHECK( context != 0 )
1252 std::string kDefaultValue;
1255 context->SetProxyUri( kDefaultValue );
1256 context->SetCertificateFilePath( kDefaultValue );
1257 context->DisableCache( false );
1258 context->SetDefaultProxyAuth( kDefaultValue, kDefaultValue );
1259 context->DeleteWebDatabase();
1260 context->DeleteWebStorage();
1261 context->DeleteLocalFileSystem();
1262 context->ClearCache();
1264 // Check default value
1265 Dali::WebEngineContext::CacheModel value = context->GetCacheModel();
1266 DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER );
1268 // Check Set/GetProperty
1269 context->SetCacheModel( Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
1270 value = context->GetCacheModel();
1271 DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
1276 // test cases for web cookie manager.
1278 int UtcDaliWebCookieManagerGetSetCookieAcceptPolicy(void)
1280 ToolkitTestApplication application;
1282 WebView view = WebView::New();
1283 DALI_TEST_CHECK( view );
1285 Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager();
1286 DALI_TEST_CHECK( cookieManager != 0 )
1288 const std::string kDefaultValue;
1291 cookieManager->SetPersistentStorage( kDefaultValue, Dali::WebEngineCookieManager::CookiePersistentStorage::SQLITE );
1292 cookieManager->ClearCookies();
1294 // Check default value
1295 Dali::WebEngineCookieManager::CookieAcceptPolicy value = cookieManager->GetCookieAcceptPolicy();
1296 DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY );
1298 // Check Set/GetProperty
1299 cookieManager->SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS );
1300 value = cookieManager->GetCookieAcceptPolicy();
1301 DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS );
1306 // test cases for web settings.
1308 int UtcDaliWebSettingsGetSetDefaultFontSize(void)
1310 ToolkitTestApplication application;
1312 WebView view = WebView::New();
1313 DALI_TEST_CHECK( view );
1315 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1316 DALI_TEST_CHECK( settings != 0 )
1319 settings->AllowMixedContents( false );
1320 settings->EnableSpatialNavigation( false );
1321 settings->EnableWebSecurity( false );
1322 settings->EnableCacheBuilder( false );
1323 settings->EnableDoNotTrack( false );
1324 settings->UseScrollbarThumbFocusNotifications( false );
1325 settings->AllowFileAccessFromExternalUrl( false );
1326 settings->AllowScriptsOpenWindows( false );
1328 // Check default value
1329 int value = settings->GetDefaultFontSize();
1330 DALI_TEST_CHECK( value == 16 );
1332 // Check Set/GetProperty
1333 settings->SetDefaultFontSize( 20 );
1334 value = settings->GetDefaultFontSize();
1335 DALI_TEST_CHECK( value == 20 );
1340 int UtcDaliWebSettingsCheckEnableJavaScript(void)
1342 ToolkitTestApplication application;
1344 WebView view = WebView::New();
1345 DALI_TEST_CHECK( view );
1347 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1348 DALI_TEST_CHECK( settings != 0 )
1351 settings->AllowMixedContents( false );
1352 settings->EnableSpatialNavigation( false );
1353 settings->EnableWebSecurity( false );
1354 settings->EnableCacheBuilder( false );
1355 settings->EnableDoNotTrack( false );
1356 settings->UseScrollbarThumbFocusNotifications( false );
1357 settings->AllowFileAccessFromExternalUrl( false );
1358 settings->AllowScriptsOpenWindows( false );
1360 // Check default value is true or not
1361 bool value = settings->IsJavaScriptEnabled();
1362 DALI_TEST_CHECK( value );
1364 // Check Set/GetProperty
1365 settings->EnableJavaScript( false );
1366 value = settings->IsJavaScriptEnabled();
1367 DALI_TEST_CHECK( !value );
1372 int UtcDaliWebSettingsCheckEnableAutoFitting(void)
1374 ToolkitTestApplication application;
1376 WebView view = WebView::New();
1377 DALI_TEST_CHECK( view );
1379 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1380 DALI_TEST_CHECK( settings != 0 )
1383 settings->AllowMixedContents( false );
1384 settings->EnableSpatialNavigation( false );
1385 settings->EnableWebSecurity( false );
1386 settings->EnableCacheBuilder( false );
1387 settings->EnableDoNotTrack( false );
1388 settings->UseScrollbarThumbFocusNotifications( false );
1389 settings->AllowFileAccessFromExternalUrl( false );
1390 settings->AllowScriptsOpenWindows( false );
1392 // Check default value is true or not
1393 bool value = settings->IsAutoFittingEnabled();
1394 DALI_TEST_CHECK( value );
1396 // Check Set/GetProperty
1397 settings->EnableAutoFitting( false );
1398 value = settings->IsAutoFittingEnabled();
1399 DALI_TEST_CHECK( !value );
1404 int UtcDaliWebSettingsCheckEnablePlugins(void)
1406 ToolkitTestApplication application;
1408 WebView view = WebView::New();
1409 DALI_TEST_CHECK( view );
1411 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1412 DALI_TEST_CHECK( settings != 0 )
1415 settings->AllowMixedContents( false );
1416 settings->EnableSpatialNavigation( false );
1417 settings->EnableWebSecurity( false );
1418 settings->EnableCacheBuilder( false );
1419 settings->EnableDoNotTrack( false );
1420 settings->UseScrollbarThumbFocusNotifications( false );
1421 settings->AllowFileAccessFromExternalUrl( false );
1422 settings->AllowScriptsOpenWindows( false );
1424 // Check default value is true or not
1425 bool value = settings->ArePluginsEnabled();
1426 DALI_TEST_CHECK( value );
1428 // Check Set/GetProperty
1429 settings->EnablePlugins( false );
1430 value = settings->ArePluginsEnabled();
1431 DALI_TEST_CHECK( !value );
1436 int UtcDaliWebSettingsCheckEnablePrivateBrowsing(void)
1438 ToolkitTestApplication application;
1440 WebView view = WebView::New();
1441 DALI_TEST_CHECK( view );
1443 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1444 DALI_TEST_CHECK( settings != 0 )
1447 settings->AllowMixedContents( false );
1448 settings->EnableSpatialNavigation( false );
1449 settings->EnableWebSecurity( false );
1450 settings->EnableCacheBuilder( false );
1451 settings->EnableDoNotTrack( false );
1452 settings->UseScrollbarThumbFocusNotifications( false );
1453 settings->AllowFileAccessFromExternalUrl( false );
1454 settings->AllowScriptsOpenWindows( false );
1456 // Check default value is true or not
1457 bool value = settings->IsPrivateBrowsingEnabled();
1458 DALI_TEST_CHECK( value );
1460 // Check Set/GetProperty
1461 settings->EnablePrivateBrowsing( false );
1462 value = settings->IsPrivateBrowsingEnabled();
1463 DALI_TEST_CHECK( !value );
1468 int UtcDaliWebSettingsCheckEnableLinkMagnifier(void)
1470 ToolkitTestApplication application;
1472 WebView view = WebView::New();
1473 DALI_TEST_CHECK( view );
1475 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1476 DALI_TEST_CHECK( settings != 0 )
1479 settings->AllowMixedContents( false );
1480 settings->EnableSpatialNavigation( false );
1481 settings->EnableWebSecurity( false );
1482 settings->EnableCacheBuilder( false );
1483 settings->EnableDoNotTrack( false );
1484 settings->UseScrollbarThumbFocusNotifications( false );
1485 settings->AllowFileAccessFromExternalUrl( false );
1486 settings->AllowScriptsOpenWindows( false );
1488 // Check default value is true or not
1489 bool value = settings->IsLinkMagnifierEnabled();
1490 DALI_TEST_CHECK( value );
1492 // Check Set/GetProperty
1493 settings->EnableLinkMagnifier( false );
1494 value = settings->IsLinkMagnifierEnabled();
1495 DALI_TEST_CHECK( !value );
1500 int UtcDaliWebSettingsCheckUseKeypadWithoutUserAction(void)
1502 ToolkitTestApplication application;
1504 WebView view = WebView::New();
1505 DALI_TEST_CHECK( view );
1507 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1508 DALI_TEST_CHECK( settings != 0 )
1511 settings->AllowMixedContents( false );
1512 settings->EnableSpatialNavigation( false );
1513 settings->EnableWebSecurity( false );
1514 settings->EnableCacheBuilder( false );
1515 settings->EnableDoNotTrack( false );
1516 settings->UseScrollbarThumbFocusNotifications( false );
1517 settings->AllowFileAccessFromExternalUrl( false );
1518 settings->AllowScriptsOpenWindows( false );
1520 // Check default value is true or not
1521 bool value = settings->IsKeypadWithoutUserActionUsed();
1522 DALI_TEST_CHECK( value );
1524 // Check Set/GetProperty
1525 settings->UseKeypadWithoutUserAction( false );
1526 value = settings->IsKeypadWithoutUserActionUsed();
1527 DALI_TEST_CHECK( !value );
1532 int UtcDaliWebSettingsCheckEnableAutofillPasswordForm(void)
1534 ToolkitTestApplication application;
1536 WebView view = WebView::New();
1537 DALI_TEST_CHECK( view );
1539 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1540 DALI_TEST_CHECK( settings != 0 )
1543 settings->AllowMixedContents( false );
1544 settings->EnableSpatialNavigation( false );
1545 settings->EnableWebSecurity( false );
1546 settings->EnableCacheBuilder( false );
1547 settings->EnableDoNotTrack( false );
1548 settings->UseScrollbarThumbFocusNotifications( false );
1549 settings->AllowFileAccessFromExternalUrl( false );
1550 settings->AllowScriptsOpenWindows( false );
1552 // Check default value is true or not
1553 bool value = settings->IsAutofillPasswordFormEnabled();
1554 DALI_TEST_CHECK( value );
1555 settings->EnableAutofillPasswordForm( false );
1556 value = settings->IsAutofillPasswordFormEnabled();
1557 DALI_TEST_CHECK( !value );
1561 int UtcDaliWebSettingsCheckEnableFormCandidateData(void)
1563 ToolkitTestApplication application;
1565 WebView view = WebView::New();
1566 DALI_TEST_CHECK( view );
1568 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1569 DALI_TEST_CHECK( settings != 0 );
1572 settings->AllowMixedContents( false );
1573 settings->EnableSpatialNavigation( false );
1574 settings->EnableWebSecurity( false );
1575 settings->EnableCacheBuilder( false );
1576 settings->EnableDoNotTrack( false );
1577 settings->UseScrollbarThumbFocusNotifications( false );
1578 settings->AllowFileAccessFromExternalUrl( false );
1579 settings->AllowScriptsOpenWindows( false );
1581 // Check default value is true or not
1582 bool value = settings->IsFormCandidateDataEnabled();
1583 DALI_TEST_CHECK( value );
1585 // Check Set/GetProperty
1586 settings->EnableFormCandidateData( false );
1587 value = settings->IsFormCandidateDataEnabled();
1588 DALI_TEST_CHECK( !value );
1593 int UtcDaliWebSettingsCheckEnableTextSelection(void)
1595 ToolkitTestApplication application;
1597 WebView view = WebView::New();
1598 DALI_TEST_CHECK( view );
1600 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1601 DALI_TEST_CHECK( settings != 0 );
1604 settings->AllowMixedContents( false );
1605 settings->EnableSpatialNavigation( false );
1606 settings->EnableWebSecurity( false );
1607 settings->EnableCacheBuilder( false );
1608 settings->EnableDoNotTrack( false );
1609 settings->UseScrollbarThumbFocusNotifications( false );
1610 settings->AllowFileAccessFromExternalUrl( false );
1611 settings->AllowScriptsOpenWindows( false );
1613 // Check default value is true or not
1614 bool value = settings->IsTextSelectionEnabled();
1615 DALI_TEST_CHECK( value );
1617 //Check Set/GetProperty
1618 settings->EnableTextSelection(false);
1619 value = settings->IsTextSelectionEnabled();
1620 DALI_TEST_CHECK( !value );
1625 int UtcDaliWebSettingsCheckEnableTextAutosizing(void)
1627 ToolkitTestApplication application;
1629 WebView view = WebView::New();
1630 DALI_TEST_CHECK( view );
1632 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1633 DALI_TEST_CHECK( settings != 0 );
1636 settings->AllowMixedContents( false );
1637 settings->EnableSpatialNavigation( false );
1638 settings->EnableWebSecurity( false );
1639 settings->EnableCacheBuilder( false );
1640 settings->EnableDoNotTrack( false );
1641 settings->UseScrollbarThumbFocusNotifications( false );
1642 settings->AllowFileAccessFromExternalUrl( false );
1643 settings->AllowScriptsOpenWindows( false );
1645 // Check default value is true or not
1646 bool value = settings->IsTextAutosizingEnabled();
1647 DALI_TEST_CHECK( value );
1649 // Check Set/GetProperty
1650 settings->EnableTextAutosizing(false);
1651 value = settings->IsTextAutosizingEnabled();
1652 DALI_TEST_CHECK( !value );
1657 int UtcDaliWebSettingsCheckEnableArrowScroll(void)
1659 ToolkitTestApplication application;
1661 WebView view = WebView::New();
1662 DALI_TEST_CHECK( view );
1664 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1665 DALI_TEST_CHECK( settings != 0 );
1668 settings->AllowMixedContents( false );
1669 settings->EnableSpatialNavigation( false );
1670 settings->EnableWebSecurity( false );
1671 settings->EnableCacheBuilder( false );
1672 settings->EnableDoNotTrack( false );
1673 settings->UseScrollbarThumbFocusNotifications( false );
1674 settings->AllowFileAccessFromExternalUrl( false );
1675 settings->AllowScriptsOpenWindows( false );
1677 // Check default value is true or not
1678 bool value = settings->IsArrowScrollEnabled();
1679 DALI_TEST_CHECK( value );
1681 // Check Set/GetProperty
1682 settings->EnableArrowScroll(false);
1683 value = settings->IsArrowScrollEnabled();
1684 DALI_TEST_CHECK( !value );
1689 int UtcDaliWebSettingsCheckEnableClipboard(void)
1691 ToolkitTestApplication application;
1693 WebView view = WebView::New();
1694 DALI_TEST_CHECK( view );
1696 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1697 DALI_TEST_CHECK( settings != 0 );
1700 settings->AllowMixedContents( false );
1701 settings->EnableSpatialNavigation( false );
1702 settings->EnableWebSecurity( false );
1703 settings->EnableCacheBuilder( false );
1704 settings->EnableDoNotTrack( false );
1705 settings->UseScrollbarThumbFocusNotifications( false );
1706 settings->AllowFileAccessFromExternalUrl( false );
1707 settings->AllowScriptsOpenWindows( false );
1709 // Check default value is true or not
1710 bool value = settings->IsClipboardEnabled();
1711 DALI_TEST_CHECK( value );
1712 settings->EnableClipboard(false);
1713 value = settings->IsClipboardEnabled();
1714 DALI_TEST_CHECK( !value );
1718 int UtcDaliWebSettingsCheckEnableImePanel(void)
1720 ToolkitTestApplication application;
1722 WebView view = WebView::New();
1723 DALI_TEST_CHECK( view );
1725 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1726 DALI_TEST_CHECK( settings != 0 );
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 is true or not
1739 bool value = settings->IsImePanelEnabled();
1740 DALI_TEST_CHECK( value );
1742 // Check Set/GetProperty
1743 settings->EnableImePanel(false);
1744 value = settings->IsImePanelEnabled();
1745 DALI_TEST_CHECK( !value );
1750 int UtcDaliWebSettingsCheckAllowImagesLoadAutomatically(void)
1752 ToolkitTestApplication application;
1754 WebView view = WebView::New();
1755 DALI_TEST_CHECK( view );
1757 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1758 DALI_TEST_CHECK( settings != 0 )
1761 settings->AllowMixedContents( false );
1762 settings->EnableSpatialNavigation( false );
1763 settings->EnableWebSecurity( false );
1764 settings->EnableCacheBuilder( false );
1765 settings->EnableDoNotTrack( false );
1766 settings->UseScrollbarThumbFocusNotifications( false );
1767 settings->AllowFileAccessFromExternalUrl( false );
1768 settings->AllowScriptsOpenWindows( false );
1770 // Check default value is true or not
1771 bool value = settings->AreImagesLoadedAutomatically();
1772 DALI_TEST_CHECK( value );
1774 // Check Set/GetProperty
1775 settings->AllowImagesLoadAutomatically( false );
1776 value = settings->AreImagesLoadedAutomatically();
1777 DALI_TEST_CHECK( !value );
1782 int UtcDaliWebSettingsGetSetDefaultTextEncodingName(void)
1784 ToolkitTestApplication application;
1786 WebView view = WebView::New();
1787 DALI_TEST_CHECK( view );
1789 Dali::Toolkit::WebSettings* settings = view.GetSettings();
1790 DALI_TEST_CHECK( settings != 0 )
1792 const std::string kDefaultValue;
1793 const std::string kTestValue = "UTF-8";
1796 settings->AllowMixedContents( false );
1797 settings->EnableSpatialNavigation( false );
1798 settings->EnableWebSecurity( false );
1799 settings->EnableCacheBuilder( false );
1800 settings->EnableDoNotTrack( false );
1801 settings->UseScrollbarThumbFocusNotifications( false );
1802 settings->AllowFileAccessFromExternalUrl( false );
1803 settings->AllowScriptsOpenWindows( false );
1805 // Check default value
1806 std::string value = settings->GetDefaultTextEncodingName();
1807 DALI_TEST_EQUALS( value, kDefaultValue, TEST_LOCATION );
1809 // Check Set/GetProperty
1810 settings->SetDefaultTextEncodingName( kTestValue );
1811 value = settings->GetDefaultTextEncodingName();
1812 DALI_TEST_EQUALS( value, kTestValue, TEST_LOCATION );