Add some properties into web view
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-WebView.cpp
1 /*
2  * Copyright (c) 2021 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 #include <iostream>
19 #include <stdlib.h>
20
21 #include <dali-toolkit-test-suite-utils.h>
22 #include "dali-toolkit-test-utils/toolkit-timer.h"
23
24 #include <dali.h>
25 #include <dali/integration-api/events/hover-event-integ.h>
26 #include <dali/integration-api/events/key-event-integ.h>
27 #include <dali/integration-api/events/touch-event-integ.h>
28 #include <dali/integration-api/events/wheel-event-integ.h>
29 #include <dali/public-api/images/pixel-data.h>
30 #include <dali-toolkit/public-api/controls/image-view/image-view.h>
31 #include <dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h>
32 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list.h>
33 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list-item.h>
34 #include <dali-toolkit/devel-api/controls/web-view/web-context.h>
35 #include <dali-toolkit/devel-api/controls/web-view/web-cookie-manager.h>
36 #include <dali-toolkit/devel-api/controls/web-view/web-settings.h>
37 #include <dali-toolkit/devel-api/controls/web-view/web-view.h>
38
39 using namespace Dali;
40 using namespace Toolkit;
41
42 namespace
43 {
44
45 const char* const TEST_URL1( "http://www.somewhere.valid1.com" );
46 const char* const TEST_URL2( "http://www.somewhere.valid2.com" );
47
48 static int gPageLoadStartedCallbackCalled = 0;
49 static int gPageLoadInProgressCallbackCalled = 0;
50 static int gPageLoadFinishedCallbackCalled = 0;
51 static int gScrollEdgeReachedCallbackCalled = 0;
52 static int gUrlChangedCallbackCalled = 0;
53 static int gEvaluateJavaScriptCallbackCalled = 0;
54 static int gJavaScriptAlertCallbackCalled = 0;
55 static int gJavaScriptConfirmCallbackCalled = 0;
56 static int gJavaScriptPromptCallbackCalled = 0;
57 static bool gTouched = false;
58 static bool gHovered = false;
59 static bool gWheelEventHandled = false;
60
61 struct CallbackFunctor
62 {
63   CallbackFunctor(bool* callbackFlag)
64   : mCallbackFlag( callbackFlag )
65   {
66   }
67
68   void operator()()
69   {
70     *mCallbackFlag = true;
71   }
72   bool* mCallbackFlag;
73 };
74
75 static void OnPageLoadStarted( WebView view, const std::string& url )
76 {
77   gPageLoadStartedCallbackCalled++;
78 }
79
80 static void OnPageLoadInProgress( WebView view, const std::string& url )
81 {
82   gPageLoadInProgressCallbackCalled++;
83 }
84
85 static void OnPageLoadFinished( WebView view, const std::string& url )
86 {
87   gPageLoadFinishedCallbackCalled++;
88 }
89
90 static void OnScrollEdgeReached( WebView view, Dali::WebEnginePlugin::ScrollEdge edge )
91 {
92   gScrollEdgeReachedCallbackCalled++;
93 }
94
95 static void OnUrlChanged( WebView view, const std::string& url )
96 {
97   gUrlChangedCallbackCalled++;
98 }
99
100 static void OnPageLoadError( WebView view, const std::string& url, WebView::LoadErrorCode errorCode )
101 {
102 }
103
104 static void OnEvaluateJavaScript( const std::string& result )
105 {
106   gEvaluateJavaScriptCallbackCalled++;
107 }
108
109 static bool OnJavaScriptAlert( const std::string& result )
110 {
111   gJavaScriptAlertCallbackCalled++;
112   return true;
113 }
114
115 static bool OnJavaScriptConfirm( const std::string& result )
116 {
117   gJavaScriptConfirmCallbackCalled++;
118   return true;
119 }
120
121 static bool OnJavaScriptPrompt( const std::string& meesage1, const std::string& message2 )
122 {
123   gJavaScriptPromptCallbackCalled++;
124   return true;
125 }
126
127 static bool OnTouched( Actor actor, const Dali::TouchEvent& touch )
128 {
129   gTouched = true;
130   return true;
131 }
132
133 static bool OnHovered( Actor actor, const Dali::HoverEvent& hover )
134 {
135   gHovered = true;
136   return true;
137 }
138
139 static bool OnWheelEvent( Actor actor, const Dali::WheelEvent& wheel )
140 {
141   gWheelEventHandled = true;
142   return true;
143 }
144
145 } // namespace
146
147 void web_view_startup(void)
148 {
149   test_return_value = TET_UNDEF;
150 }
151
152 void web_view_cleanup(void)
153 {
154   test_return_value = TET_PASS;
155 }
156
157 int UtcDaliWebViewBasics(void)
158 {
159   ToolkitTestApplication application;
160
161   // Copy and Assignment Test
162   tet_infoline( "UtcDaliWebViewBasic Copy and Assignment Test" );
163   WebView view = WebView::New();
164   DALI_TEST_CHECK( view );
165
166   WebView copy( view );
167   DALI_TEST_CHECK( view == copy );
168
169   WebView assign;
170   DALI_TEST_CHECK( !assign );
171
172   assign = copy;
173   DALI_TEST_CHECK( assign == view );
174
175
176   // DownCast Test
177   tet_infoline( "UtcDaliWebViewBasic DownCast Test" );
178   BaseHandle handle(view);
179
180   WebView view2 = WebView::DownCast( handle );
181   DALI_TEST_CHECK( view );
182   DALI_TEST_CHECK( view2 );
183   DALI_TEST_CHECK( view == view2 );
184
185
186   // TypeRegistry Test
187   tet_infoline( "UtcDaliWebViewBasic TypeRegistry Test" );
188   TypeRegistry typeRegistry = TypeRegistry::Get();
189   DALI_TEST_CHECK( typeRegistry );
190
191   TypeInfo typeInfo = typeRegistry.GetTypeInfo( "WebView" );
192   DALI_TEST_CHECK( typeInfo );
193
194   BaseHandle handle2 = typeInfo.CreateInstance();
195   DALI_TEST_CHECK( handle2 );
196
197   WebView view3 = WebView::DownCast( handle2 );
198   DALI_TEST_CHECK( view3 );
199
200   END_TEST;
201 }
202
203 int UtcDaliWebViewPageNavigation(void)
204 {
205   ToolkitTestApplication application;
206
207   WebView view = WebView::New();
208   view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
209   view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
210   view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
211   view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
212   application.GetScene().Add( view );
213   application.SendNotification();
214   application.Render();
215   DALI_TEST_CHECK( view );
216
217   ConnectionTracker* testTracker = new ConnectionTracker();
218   view.PageLoadStartedSignal().Connect( &OnPageLoadStarted );
219   view.PageLoadInProgressSignal().Connect( &OnPageLoadInProgress );
220   view.PageLoadFinishedSignal().Connect( &OnPageLoadFinished );
221   view.PageLoadErrorSignal().Connect( &OnPageLoadError );
222   view.UrlChangedSignal().Connect( &OnUrlChanged );
223   bool signal1 = false;
224   bool signal2 = false;
225   bool signal3 = false;
226   bool signal4 = false;
227   bool signal5 = false;
228   view.ConnectSignal( testTracker, "pageLoadStarted", CallbackFunctor(&signal1) );
229   view.ConnectSignal( testTracker, "pageLoadInProgress", CallbackFunctor(&signal2) );
230   view.ConnectSignal( testTracker, "pageLoadFinished", CallbackFunctor(&signal3) );
231   view.ConnectSignal( testTracker, "urlChanged", CallbackFunctor(&signal4) );
232   view.ConnectSignal( testTracker, "invalidname", CallbackFunctor(&signal5) );
233   DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 0, TEST_LOCATION );
234   DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 0, TEST_LOCATION );
235   DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 0, TEST_LOCATION );
236   DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 0, TEST_LOCATION );
237
238   view.LoadUrl( TEST_URL1 );
239   view.GetNaturalSize();
240   Test::EmitGlobalTimerSignal();
241   DALI_TEST_EQUALS( view.CanGoBack(), false, TEST_LOCATION );
242   DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 1, TEST_LOCATION );
243   DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 1, TEST_LOCATION );
244   DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 1, TEST_LOCATION );
245   DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 1, TEST_LOCATION );
246   DALI_TEST_CHECK( signal1 & signal2 & signal3 & signal4 );
247   DALI_TEST_CHECK( !signal5 );
248
249   view.LoadUrl( TEST_URL2 );
250   view.Suspend();
251   view.SetProperty( Actor::Property::SIZE, Vector2( 400, 300 ) );
252   application.SendNotification();
253   application.Render();
254   Test::EmitGlobalTimerSignal();
255   view.Resume();
256   DALI_TEST_EQUALS( view.CanGoBack(), true, TEST_LOCATION );
257   DALI_TEST_EQUALS( view.CanGoForward(), false, TEST_LOCATION );
258   DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 2, TEST_LOCATION );
259   DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 2, TEST_LOCATION );
260   DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 2, TEST_LOCATION );
261   DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 2, TEST_LOCATION );
262
263   view.GoBack();
264   Test::EmitGlobalTimerSignal();
265   DALI_TEST_CHECK( !view.CanGoBack() );
266   DALI_TEST_CHECK( view.CanGoForward() );
267
268   view.GoForward();
269   Test::EmitGlobalTimerSignal();
270   DALI_TEST_CHECK( view.CanGoBack() );
271   DALI_TEST_CHECK( !view.CanGoForward() );
272
273   view.Reload();
274   view.StopLoading();
275   view.ClearHistory();
276   Test::EmitGlobalTimerSignal();
277   DALI_TEST_CHECK( !view.CanGoBack() );
278   DALI_TEST_CHECK( !view.CanGoForward() );
279
280   END_TEST;
281 }
282
283 int UtcDaliWebViewTouchAndKeys(void)
284 {
285   ToolkitTestApplication application;
286
287   WebView view = WebView::New();
288   view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
289   view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
290   view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
291   view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
292
293   application.GetScene().Add( view );
294   application.SendNotification();
295   application.Render();
296
297   view.GetNaturalSize();
298   view.TouchedSignal().Connect( &OnTouched );
299
300   // Touch event
301   Dali::Integration::TouchEvent event;
302   Dali::Integration::Point pointDown, pointUp;
303
304   event = Dali::Integration::TouchEvent();
305   pointDown.SetState( PointState::DOWN );
306   pointDown.SetScreenPosition( Vector2( 10, 10 ) );
307   event.AddPoint( pointDown );
308   application.ProcessEvent( event );
309
310   event = Dali::Integration::TouchEvent();
311   pointUp.SetState( PointState::UP );
312   pointUp.SetScreenPosition( Vector2( 10, 10 ) );
313   event.AddPoint( pointUp );
314   application.ProcessEvent( event );
315
316   // Key event
317   Toolkit::KeyboardFocusManager::Get().SetCurrentFocusActor( view );
318   application.ProcessEvent( Integration::KeyEvent( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE ) );
319   application.SendNotification();
320
321   DALI_TEST_CHECK( gTouched );
322   DALI_TEST_CHECK( view );
323
324   END_TEST;
325 }
326
327 int UtcDaliWebViewFocusGainedAndLost(void)
328 {
329   ToolkitTestApplication application;
330
331   WebView view = WebView::New();
332   DALI_TEST_CHECK( view );
333
334   view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
335   view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
336   view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
337   view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
338
339   application.GetScene().Add( view );
340   application.SendNotification();
341   application.Render();
342
343   view.SetKeyInputFocus();
344   DALI_TEST_CHECK( view.HasKeyInputFocus() );
345
346   // reset
347   view.ClearKeyInputFocus();
348   DALI_TEST_CHECK( !view.HasKeyInputFocus() );
349
350   END_TEST;
351 }
352
353 int UtcDaliWebViewMove(void)
354 {
355   ToolkitTestApplication application;
356
357   WebView view = WebView::New();
358   DALI_TEST_CHECK( view );
359
360   view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
361   view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
362   view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
363   view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
364
365   application.GetScene().Add( view );
366   application.SendNotification();
367   application.Render();
368
369   view.SetProperty( Actor::Property::POSITION, Vector2( 100, 100 ));
370   Vector3 viewPos = view.GetProperty<Vector3>( Actor::Property::POSITION );
371   DALI_TEST_EQUALS( viewPos, Vector3( 100, 100, 0 ), TEST_LOCATION );
372
373   END_TEST;
374 }
375
376 int UtcDaliWebViewPropertyVideoHoleEnabled(void)
377 {
378   ToolkitTestApplication application;
379
380   WebView view = WebView::New();
381   DALI_TEST_CHECK( view );
382
383   const bool kDefaultValue = true;
384   const bool kTestValue = false;
385
386   // Check default value
387   bool output;
388   Property::Value value = view.GetProperty( WebView::Property::VIDEO_HOLE_ENABLED );
389   DALI_TEST_CHECK( value.Get( output ) );
390   DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
391
392   // Check Set/GetProperty
393   view.SetProperty( WebView::Property::VIDEO_HOLE_ENABLED, kTestValue );
394   value = view.GetProperty( WebView::Property::VIDEO_HOLE_ENABLED );
395   DALI_TEST_CHECK( value.Get( output ) );
396   DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
397
398   END_TEST;
399 }
400
401 int UtcDaliWebViewPropertyMouseEventsEnabled(void)
402 {
403   ToolkitTestApplication application;
404
405   WebView view = WebView::New();
406   DALI_TEST_CHECK( view );
407
408   const bool kDefaultValue = true;
409   const bool kTestValue = false;
410
411   // Check default value
412   bool output;
413   Property::Value value = view.GetProperty( WebView::Property::MOUSE_EVENTS_ENABLED );
414   DALI_TEST_CHECK( value.Get( output ) );
415   DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
416
417   // Check Set/GetProperty
418   view.SetProperty( WebView::Property::MOUSE_EVENTS_ENABLED, kTestValue );
419   value = view.GetProperty( WebView::Property::MOUSE_EVENTS_ENABLED );
420   DALI_TEST_CHECK( value.Get( output ) );
421   DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
422
423   END_TEST;
424 }
425
426 int UtcDaliWebViewPropertyKeyEventsEnabled(void)
427 {
428   ToolkitTestApplication application;
429
430   WebView view = WebView::New();
431   DALI_TEST_CHECK( view );
432
433   const bool kDefaultValue = true;
434   const bool kTestValue = false;
435
436   // Check default value
437   bool output;
438   Property::Value value = view.GetProperty( WebView::Property::KEY_EVENTS_ENABLED );
439   DALI_TEST_CHECK( value.Get( output ) );
440   DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
441
442   // Check Set/GetProperty
443   view.SetProperty( WebView::Property::KEY_EVENTS_ENABLED, kTestValue );
444   value = view.GetProperty( WebView::Property::KEY_EVENTS_ENABLED );
445   DALI_TEST_CHECK( value.Get( output ) );
446   DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
447
448   END_TEST;
449 }
450
451 int UtcDaliWebViewHoverAndWheel(void)
452 {
453   ToolkitTestApplication application;
454
455   WebView view = WebView::New();
456   DALI_TEST_CHECK( view );
457   view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
458   view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
459   view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
460   view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
461
462   application.GetScene().Add( view );
463   application.SendNotification();
464   application.Render();
465
466   view.GetNaturalSize();
467   view.HoveredSignal().Connect( &OnHovered );
468   view.WheelEventSignal().Connect( &OnWheelEvent );
469
470   // Hover event
471   Dali::Integration::HoverEvent event = Dali::Integration::HoverEvent();
472   Dali::Integration::Point pointDown;
473   pointDown.SetState( PointState::DOWN );
474   pointDown.SetScreenPosition( Vector2( 10, 10 ) );
475   event.AddPoint( pointDown );
476   application.ProcessEvent( event );
477
478   event = Dali::Integration::HoverEvent();
479   Dali::Integration::Point pointUp;
480   pointUp.SetState( PointState::UP );
481   pointUp.SetScreenPosition( Vector2( 10, 10 ) );
482   event.AddPoint( pointUp );
483   application.ProcessEvent( event );
484
485   event = Dali::Integration::HoverEvent();
486   Dali::Integration::Point pointMotion;
487   pointUp.SetState( PointState::MOTION );
488   pointUp.SetScreenPosition( Vector2( 10, 10 ) );
489   event.AddPoint( pointMotion );
490   application.ProcessEvent( event );
491
492   // Wheel event
493   Dali::Integration::WheelEvent wheelEvent;
494   wheelEvent.type = Dali::Integration::WheelEvent::Type::MOUSE_WHEEL;
495   wheelEvent.direction = 0;
496   wheelEvent.point = Vector2( 20, 20 );
497   wheelEvent.delta = 10;
498   application.ProcessEvent( wheelEvent );
499   application.SendNotification();
500
501   DALI_TEST_CHECK( gHovered );
502   DALI_TEST_CHECK( gWheelEventHandled );
503
504   END_TEST;
505 }
506
507 int UtcDaliWebViewGetWebBackForwardList(void)
508 {
509   ToolkitTestApplication application;
510
511   WebView view = WebView::New();
512   DALI_TEST_CHECK( view );
513
514   Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
515   DALI_TEST_CHECK( bfList != 0 );
516
517   END_TEST;
518 }
519
520 int UtcDaliWebViewGetWebContext(void)
521 {
522   ToolkitTestApplication application;
523
524   WebView view = WebView::New();
525   DALI_TEST_CHECK( view );
526
527   Dali::Toolkit::WebContext* context = view.GetContext();
528   DALI_TEST_CHECK( context != 0 );
529
530   END_TEST;
531 }
532
533 int UtcDaliWebViewGetWebCookieManager(void)
534 {
535   ToolkitTestApplication application;
536
537   WebView view = WebView::New();
538   DALI_TEST_CHECK( view );
539
540   Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager();
541   DALI_TEST_CHECK( cookieManager != 0 );
542
543   END_TEST;
544 }
545
546 int UtcDaliWebViewGetWebSettings(void)
547 {
548   ToolkitTestApplication application;
549
550   WebView view = WebView::New();
551   DALI_TEST_CHECK( view );
552
553   Dali::Toolkit::WebSettings* settings = view.GetSettings();
554   DALI_TEST_CHECK( settings != 0 );
555
556   END_TEST;
557 }
558
559 int UtcDaliWebViewProperty1(void)
560 {
561   // URL
562   ToolkitTestApplication application;
563
564   WebView view = WebView::New();
565   DALI_TEST_CHECK( view );
566
567   std::string local;
568   view.SetProperty( WebView::Property::URL, TEST_URL1 );
569   Property::Value val = view.GetProperty( WebView::Property::URL );
570   DALI_TEST_CHECK( val.Get( local ) );
571   DALI_TEST_EQUALS( local, TEST_URL1, TEST_LOCATION );
572
573   END_TEST;
574 }
575
576 int UtcDaliWebViewProperty4(void)
577 {
578   // USER_AGENT
579   ToolkitTestApplication application;
580
581   WebView view = WebView::New();
582   DALI_TEST_CHECK( view );
583
584   const std::string kDefaultValue;
585   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";
586
587   // Check default value
588   std::string output;
589   Property::Value value = view.GetProperty( WebView::Property::USER_AGENT );
590   DALI_TEST_CHECK( value.Get( output ) );
591   DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
592
593   // Check Set/GetProperty
594   view.SetProperty( WebView::Property::USER_AGENT, kTestValue );
595   value = view.GetProperty( WebView::Property::USER_AGENT );
596   DALI_TEST_CHECK( value.Get( output ) );
597   DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
598
599   END_TEST;
600 }
601
602 int UtcDaliWebViewProperty9(void)
603 {
604   // SCROLL_POSITION
605   ToolkitTestApplication application;
606
607   WebView view = WebView::New();
608   DALI_TEST_CHECK( view );
609
610   // Check default value
611   Dali::Vector2 output = Dali::Vector2::ONE;
612   view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
613   DALI_TEST_CHECK( output.x == 0 && output.y == 0 );
614
615   // Check Set/GetProperty
616   Dali::Vector2 testValue = Dali::Vector2( 100, 100 );
617   view.SetProperty( WebView::Property::SCROLL_POSITION, testValue );
618   view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
619   DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
620
621   // Check default value of scroll size
622   output = Dali::Vector2::ONE;
623   view.GetProperty( WebView::Property::SCROLL_SIZE ).Get( output );
624   DALI_TEST_CHECK( output.x == 500 && output.y == 500 );
625
626   // Check default value of content size
627   output = Dali::Vector2::ONE;
628   view.GetProperty( WebView::Property::CONTENT_SIZE ).Get( output );
629   DALI_TEST_CHECK( output.x == 500 && output.y == 500 );
630
631   END_TEST;
632 }
633
634 int UtcDaliWebViewPropertyBackgroundColorSelectedTextEtc(void)
635 {
636   ToolkitTestApplication application;
637
638   WebView view = WebView::New();
639   DALI_TEST_CHECK( view );
640
641   Dali::Vector4 testValue = Dali::Vector4(0.0f, 0.0f, 0.0f, 0.0f);
642   view.SetProperty(WebView::Property::DOCUMENT_BACKGROUND_COLOR, testValue);
643   view.SetProperty(WebView::Property::TILES_CLEARED_WHEN_HIDDEN, true);
644   view.SetProperty(WebView::Property::TILE_COVER_AREA_MULTIPLIER, 1.0f);
645   view.SetProperty(WebView::Property::CURSOR_ENABLED_BY_CLIENT, true);
646
647   // Check default value
648   std::string testText("test");
649   std::string output;
650   view.GetProperty(WebView::Property::SELECTED_TEXT).Get(output);
651   DALI_TEST_EQUALS(output, testText, TEST_LOCATION);
652
653   END_TEST;
654 }
655
656 int UtcDaliWebViewPropertyTitleFavicon(void)
657 {
658   ToolkitTestApplication application;
659
660   char argv[] = "--test";
661   WebView view = WebView::New( 1, (char**)&argv );
662   DALI_TEST_CHECK( view );
663
664   // reset something
665   view.ClearAllTilesResources();
666
667   // Check default value of title
668   std::string testValue("title");
669   std::string output;
670   view.GetProperty( WebView::Property::TITLE ).Get( output );
671   DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
672
673   // Check default value of favicon
674   Dali::Toolkit::ImageView* favicon = &view.GetFavicon();
675   DALI_TEST_CHECK( favicon );
676   Dali::Vector3 iconsize = favicon->GetProperty< Vector3 >( Dali::Actor::Property::SIZE );
677   DALI_TEST_CHECK( ( int )iconsize.width == 2 && ( int )iconsize.height == 2 );
678
679   END_TEST;
680 }
681
682 int UtcDaliWebViewScrollBy(void)
683 {
684   ToolkitTestApplication application;
685
686   WebView view = WebView::New();
687   DALI_TEST_CHECK( view );
688
689   // load url.
690   ConnectionTracker* testTracker = new ConnectionTracker();
691   view.ScrollEdgeReachedSignal().Connect( &OnScrollEdgeReached );
692   bool signal1 = false;
693   view.ConnectSignal( testTracker, "scrollEdgeReached", CallbackFunctor(&signal1) );
694   DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 0, TEST_LOCATION );
695
696   view.LoadUrl( TEST_URL1 );
697   Test::EmitGlobalTimerSignal();
698
699   // set scroll position.
700   Dali::Vector2 output = Dali::Vector2::ONE;
701   Dali::Vector2 testValue = Dali::Vector2( 100, 100 );
702   view.SetProperty( WebView::Property::SCROLL_POSITION, testValue );
703   view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
704   DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
705
706   // scroll by and trigger scrollEdgeReached event.
707   view.ScrollBy( 50, 50 );
708   Test::EmitGlobalTimerSignal();
709
710   view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
711   DALI_TEST_CHECK( output.x == 150 && output.y == 150 );
712   DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 1, TEST_LOCATION );
713   DALI_TEST_CHECK( signal1 );
714
715   END_TEST;
716 }
717
718 int UtcDaliWebViewEvaluteJavaScript(void)
719 {
720   ToolkitTestApplication application;
721
722   WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
723
724   view.LoadHtmlString( "<body>Hello World!</body>" );
725   view.EvaluateJavaScript( "jsObject.postMessage('Hello')" );
726   view.EvaluateJavaScript( "jsObject.postMessage('World')", OnEvaluateJavaScript );
727   Test::EmitGlobalTimerSignal();
728
729   DALI_TEST_EQUALS( gEvaluateJavaScriptCallbackCalled, 1, TEST_LOCATION );
730
731   END_TEST;
732 }
733
734 int UtcDaliWebViewJavaScriptAlertConfirmPrompt(void)
735 {
736   ToolkitTestApplication application;
737
738   WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
739
740   view.RegisterJavaScriptAlertCallback( &OnJavaScriptAlert );
741   view.LoadHtmlString( "<head><script type='text/javascript'>alert('this is an alert popup.');</script></head><body>Hello World!</body>" );
742   view.JavaScriptAlertReply();
743   Test::EmitGlobalTimerSignal();
744   DALI_TEST_EQUALS( gJavaScriptAlertCallbackCalled, 1, TEST_LOCATION );
745
746   view.RegisterJavaScriptConfirmCallback( &OnJavaScriptConfirm );
747   view.LoadHtmlString( "<head><script type='text/javascript'>confirm('this is a confirm popup.');</script></head><body>Hello World!</body>" );
748   view.JavaScriptConfirmReply( true );
749   Test::EmitGlobalTimerSignal();
750   DALI_TEST_EQUALS( gJavaScriptConfirmCallbackCalled, 1, TEST_LOCATION );
751
752   view.RegisterJavaScriptPromptCallback( &OnJavaScriptPrompt );
753   view.LoadHtmlString( "<head><script type='text/javascript'>prompt('this is a prompt popup.');</script></head><body>Hello World!</body>" );
754   view.JavaScriptPromptReply( "it is a prompt." );
755   Test::EmitGlobalTimerSignal();
756   DALI_TEST_EQUALS( gJavaScriptPromptCallbackCalled, 1, TEST_LOCATION );
757
758   END_TEST;
759 }
760
761 int UtcDaliWebViewMethodsForCoverage(void)
762 {
763   ToolkitTestApplication application;
764
765   WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
766
767   view.LoadHtmlString( "<body>Hello World!</body>" );
768   view.AddJavaScriptMessageHandler( "jsObject",
769     []( const std::string& arg ) {
770     }
771   );
772
773   DALI_TEST_CHECK( view );
774
775   END_TEST;
776 }
777
778 // test cases for web backforward list.
779
780 int UtcDaliWebBackForwardListCheckItem(void)
781 {
782   ToolkitTestApplication application;
783
784   WebView view = WebView::New();
785   DALI_TEST_CHECK( view );
786
787   Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
788   DALI_TEST_CHECK( bfList != 0 )
789
790   unsigned int itemCount = bfList->GetItemCount();
791   DALI_TEST_CHECK( itemCount == 1 )
792
793   Dali::Toolkit::WebBackForwardListItem* citem = bfList->GetCurrentItem();
794   DALI_TEST_CHECK( citem != 0 );
795
796   const std::string kDefaultUrl( "http://url" );
797   std::string testValue = citem->GetUrl();
798   DALI_TEST_EQUALS( testValue, kDefaultUrl, TEST_LOCATION );
799
800   const std::string kDefaultTitle( "title" );
801   testValue = citem->GetTitle();
802   DALI_TEST_EQUALS( testValue, kDefaultTitle, TEST_LOCATION );
803
804   const std::string kDefaultOriginalUrl( "http://originalurl" );
805   testValue = citem->GetOriginalUrl();
806   DALI_TEST_EQUALS( testValue, kDefaultOriginalUrl, TEST_LOCATION );
807
808   Dali::Toolkit::WebBackForwardListItem* item = bfList->GetItemAtIndex( 0 );
809   DALI_TEST_CHECK( item != 0 );
810
811   END_TEST;
812 }
813
814 // test cases for web context.
815
816 int UtcDaliWebContextGetSetCacheModel(void)
817 {
818   ToolkitTestApplication application;
819
820   WebView view = WebView::New();
821   DALI_TEST_CHECK( view );
822
823   Dali::Toolkit::WebContext* context = view.GetContext();
824   DALI_TEST_CHECK( context != 0 )
825
826   std::string kDefaultValue;
827
828   // Reset something
829   context->SetProxyUri( kDefaultValue );
830   context->SetCertificateFilePath( kDefaultValue );
831   context->DisableCache( false );
832   context->SetDefaultProxyAuth( kDefaultValue, kDefaultValue );
833   context->DeleteWebDatabase();
834   context->DeleteWebStorage();
835   context->DeleteLocalFileSystem();
836   context->ClearCache();
837
838   // Check default value
839   Dali::WebEngineContext::CacheModel value = context->GetCacheModel();
840   DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER );
841
842   // Check Set/GetProperty
843   context->SetCacheModel( Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
844   value = context->GetCacheModel();
845   DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
846
847   END_TEST;
848 }
849
850 // test cases for web cookie manager.
851
852 int UtcDaliWebCookieManagerGetSetCookieAcceptPolicy(void)
853 {
854   ToolkitTestApplication application;
855
856   WebView view = WebView::New();
857   DALI_TEST_CHECK( view );
858
859   Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager();
860   DALI_TEST_CHECK( cookieManager != 0 )
861
862   const std::string kDefaultValue;
863
864   // Reset something
865   cookieManager->SetPersistentStorage( kDefaultValue, Dali::WebEngineCookieManager::CookiePersistentStorage::SQLITE );
866   cookieManager->ClearCookies();
867
868   // Check default value
869   Dali::WebEngineCookieManager::CookieAcceptPolicy value = cookieManager->GetCookieAcceptPolicy();
870   DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY );
871
872   // Check Set/GetProperty
873   cookieManager->SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS );
874   value = cookieManager->GetCookieAcceptPolicy();
875   DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS );
876
877   END_TEST;
878 }
879
880 // test cases for web settings.
881
882 int UtcDaliWebSettingsGetSetDefaultFontSize(void)
883 {
884   ToolkitTestApplication application;
885
886   WebView view = WebView::New();
887   DALI_TEST_CHECK( view );
888
889   Dali::Toolkit::WebSettings* settings = view.GetSettings();
890   DALI_TEST_CHECK( settings != 0 )
891
892   // Reset something
893   settings->AllowMixedContents( false );
894   settings->EnableSpatialNavigation( false );
895   settings->EnableWebSecurity( false );
896   settings->EnableCacheBuilder( false );
897   settings->EnableDoNotTrack( false );
898   settings->UseScrollbarThumbFocusNotifications( false );
899   settings->AllowFileAccessFromExternalUrl( false );
900   settings->AllowScriptsOpenWindows( false );
901
902   // Check default value
903   int value = settings->GetDefaultFontSize();
904   DALI_TEST_CHECK( value == 16 );
905
906   // Check Set/GetProperty
907   settings->SetDefaultFontSize( 20 );
908   value = settings->GetDefaultFontSize();
909   DALI_TEST_CHECK( value == 20 );
910
911   END_TEST;
912 }
913
914 int UtcDaliWebSettingsCheckEnableJavaScript(void)
915 {
916   ToolkitTestApplication application;
917
918   WebView view = WebView::New();
919   DALI_TEST_CHECK( view );
920
921   Dali::Toolkit::WebSettings* settings = view.GetSettings();
922   DALI_TEST_CHECK( settings != 0 )
923
924   // Reset something
925   settings->AllowMixedContents( false );
926   settings->EnableSpatialNavigation( false );
927   settings->EnableWebSecurity( false );
928   settings->EnableCacheBuilder( false );
929   settings->EnableDoNotTrack( false );
930   settings->UseScrollbarThumbFocusNotifications( false );
931   settings->AllowFileAccessFromExternalUrl( false );
932   settings->AllowScriptsOpenWindows( false );
933
934   // Check default value is true or not
935   bool value = settings->IsJavaScriptEnabled();
936   DALI_TEST_CHECK( value );
937
938   // Check Set/GetProperty
939   settings->EnableJavaScript( false );
940   value = settings->IsJavaScriptEnabled();
941   DALI_TEST_CHECK( !value );
942
943   END_TEST;
944 }
945
946 int UtcDaliWebSettingsCheckEnableAutoFitting(void)
947 {
948   ToolkitTestApplication application;
949
950   WebView view = WebView::New();
951   DALI_TEST_CHECK( view );
952
953   Dali::Toolkit::WebSettings* settings = view.GetSettings();
954   DALI_TEST_CHECK( settings != 0 )
955
956   // Reset something
957   settings->AllowMixedContents( false );
958   settings->EnableSpatialNavigation( false );
959   settings->EnableWebSecurity( false );
960   settings->EnableCacheBuilder( false );
961   settings->EnableDoNotTrack( false );
962   settings->UseScrollbarThumbFocusNotifications( false );
963   settings->AllowFileAccessFromExternalUrl( false );
964   settings->AllowScriptsOpenWindows( false );
965
966   // Check default value is true or not
967   bool value = settings->IsAutoFittingEnabled();
968   DALI_TEST_CHECK( value );
969
970   // Check Set/GetProperty
971   settings->EnableAutoFitting( false );
972   value = settings->IsAutoFittingEnabled();
973   DALI_TEST_CHECK( !value );
974
975   END_TEST;
976 }
977
978 int UtcDaliWebSettingsCheckEnablePlugins(void)
979 {
980   ToolkitTestApplication application;
981
982   WebView view = WebView::New();
983   DALI_TEST_CHECK( view );
984
985   Dali::Toolkit::WebSettings* settings = view.GetSettings();
986   DALI_TEST_CHECK( settings != 0 )
987
988   // Reset something
989   settings->AllowMixedContents( false );
990   settings->EnableSpatialNavigation( false );
991   settings->EnableWebSecurity( false );
992   settings->EnableCacheBuilder( false );
993   settings->EnableDoNotTrack( false );
994   settings->UseScrollbarThumbFocusNotifications( false );
995   settings->AllowFileAccessFromExternalUrl( false );
996   settings->AllowScriptsOpenWindows( false );
997
998   // Check default value is true or not
999   bool value = settings->ArePluginsEnabled();
1000   DALI_TEST_CHECK( value );
1001
1002   // Check Set/GetProperty
1003   settings->EnablePlugins( false );
1004   value = settings->ArePluginsEnabled();
1005   DALI_TEST_CHECK( !value );
1006
1007   END_TEST;
1008 }
1009
1010 int UtcDaliWebSettingsCheckEnablePrivateBrowsing(void)
1011 {
1012   ToolkitTestApplication application;
1013
1014   WebView view = WebView::New();
1015   DALI_TEST_CHECK( view );
1016
1017   Dali::Toolkit::WebSettings* settings = view.GetSettings();
1018   DALI_TEST_CHECK( settings != 0 )
1019
1020   // Reset something
1021   settings->AllowMixedContents( false );
1022   settings->EnableSpatialNavigation( false );
1023   settings->EnableWebSecurity( false );
1024   settings->EnableCacheBuilder( false );
1025   settings->EnableDoNotTrack( false );
1026   settings->UseScrollbarThumbFocusNotifications( false );
1027   settings->AllowFileAccessFromExternalUrl( false );
1028   settings->AllowScriptsOpenWindows( false );
1029
1030   // Check default value is true or not
1031   bool value = settings->IsPrivateBrowsingEnabled();
1032   DALI_TEST_CHECK( value );
1033
1034   // Check Set/GetProperty
1035   settings->EnablePrivateBrowsing( false );
1036   value = settings->IsPrivateBrowsingEnabled();
1037   DALI_TEST_CHECK( !value );
1038
1039   END_TEST;
1040 }
1041
1042 int UtcDaliWebSettingsCheckEnableLinkMagnifier(void)
1043 {
1044   ToolkitTestApplication application;
1045
1046   WebView view = WebView::New();
1047   DALI_TEST_CHECK( view );
1048
1049   Dali::Toolkit::WebSettings* settings = view.GetSettings();
1050   DALI_TEST_CHECK( settings != 0 )
1051
1052   // Reset something
1053   settings->AllowMixedContents( false );
1054   settings->EnableSpatialNavigation( false );
1055   settings->EnableWebSecurity( false );
1056   settings->EnableCacheBuilder( false );
1057   settings->EnableDoNotTrack( false );
1058   settings->UseScrollbarThumbFocusNotifications( false );
1059   settings->AllowFileAccessFromExternalUrl( false );
1060   settings->AllowScriptsOpenWindows( false );
1061
1062   // Check default value is true or not
1063   bool value = settings->IsLinkMagnifierEnabled();
1064   DALI_TEST_CHECK( value );
1065
1066   // Check Set/GetProperty
1067   settings->EnableLinkMagnifier( false );
1068   value = settings->IsLinkMagnifierEnabled();
1069   DALI_TEST_CHECK( !value );
1070
1071   END_TEST;
1072 }
1073
1074 int UtcDaliWebSettingsCheckUseKeypadWithoutUserAction(void)
1075 {
1076   ToolkitTestApplication application;
1077
1078   WebView view = WebView::New();
1079   DALI_TEST_CHECK( view );
1080
1081   Dali::Toolkit::WebSettings* settings = view.GetSettings();
1082   DALI_TEST_CHECK( settings != 0 )
1083
1084   // Reset something
1085   settings->AllowMixedContents( false );
1086   settings->EnableSpatialNavigation( false );
1087   settings->EnableWebSecurity( false );
1088   settings->EnableCacheBuilder( false );
1089   settings->EnableDoNotTrack( false );
1090   settings->UseScrollbarThumbFocusNotifications( false );
1091   settings->AllowFileAccessFromExternalUrl( false );
1092   settings->AllowScriptsOpenWindows( false );
1093
1094   // Check default value is true or not
1095   bool value = settings->IsKeypadWithoutUserActionUsed();
1096   DALI_TEST_CHECK( value );
1097
1098   // Check Set/GetProperty
1099   settings->UseKeypadWithoutUserAction( false );
1100   value = settings->IsKeypadWithoutUserActionUsed();
1101   DALI_TEST_CHECK( !value );
1102
1103   END_TEST;
1104 }
1105
1106 int UtcDaliWebSettingsCheckEnableAutofillPasswordForm(void)
1107 {
1108   ToolkitTestApplication application;
1109
1110   WebView view = WebView::New();
1111   DALI_TEST_CHECK( view );
1112
1113   Dali::Toolkit::WebSettings* settings = view.GetSettings();
1114   DALI_TEST_CHECK( settings != 0 )
1115
1116   // Reset something
1117   settings->AllowMixedContents( false );
1118   settings->EnableSpatialNavigation( false );
1119   settings->EnableWebSecurity( false );
1120   settings->EnableCacheBuilder( false );
1121   settings->EnableDoNotTrack( false );
1122   settings->UseScrollbarThumbFocusNotifications( false );
1123   settings->AllowFileAccessFromExternalUrl( false );
1124   settings->AllowScriptsOpenWindows( false );
1125
1126   // Check default value is true or not
1127   bool value = settings->IsAutofillPasswordFormEnabled();
1128   DALI_TEST_CHECK( value );
1129   settings->EnableAutofillPasswordForm( false );
1130   value = settings->IsAutofillPasswordFormEnabled();
1131   DALI_TEST_CHECK( !value );
1132   END_TEST;
1133 }
1134
1135 int UtcDaliWebSettingsCheckEnableFormCandidateData(void)
1136 {
1137   ToolkitTestApplication application;
1138
1139   WebView view = WebView::New();
1140   DALI_TEST_CHECK( view );
1141
1142   Dali::Toolkit::WebSettings* settings = view.GetSettings();
1143   DALI_TEST_CHECK( settings != 0 );
1144
1145   // Reset something
1146   settings->AllowMixedContents( false );
1147   settings->EnableSpatialNavigation( false );
1148   settings->EnableWebSecurity( false );
1149   settings->EnableCacheBuilder( false );
1150   settings->EnableDoNotTrack( false );
1151   settings->UseScrollbarThumbFocusNotifications( false );
1152   settings->AllowFileAccessFromExternalUrl( false );
1153   settings->AllowScriptsOpenWindows( false );
1154
1155   // Check default value is true or not
1156   bool value = settings->IsFormCandidateDataEnabled();
1157   DALI_TEST_CHECK( value );
1158
1159   // Check Set/GetProperty
1160   settings->EnableFormCandidateData( false );
1161   value = settings->IsFormCandidateDataEnabled();
1162   DALI_TEST_CHECK( !value );
1163
1164   END_TEST;
1165 }
1166
1167 int UtcDaliWebSettingsCheckEnableTextSelection(void)
1168 {
1169   ToolkitTestApplication application;
1170
1171   WebView view = WebView::New();
1172   DALI_TEST_CHECK( view );
1173
1174   Dali::Toolkit::WebSettings* settings = view.GetSettings();
1175   DALI_TEST_CHECK( settings != 0 );
1176
1177   // Reset something
1178   settings->AllowMixedContents( false );
1179   settings->EnableSpatialNavigation( false );
1180   settings->EnableWebSecurity( false );
1181   settings->EnableCacheBuilder( false );
1182   settings->EnableDoNotTrack( false );
1183   settings->UseScrollbarThumbFocusNotifications( false );
1184   settings->AllowFileAccessFromExternalUrl( false );
1185   settings->AllowScriptsOpenWindows( false );
1186
1187   // Check default value is true or not
1188   bool value = settings->IsTextSelectionEnabled();
1189   DALI_TEST_CHECK( value );
1190
1191   //Check Set/GetProperty
1192   settings->EnableTextSelection(false);
1193   value = settings->IsTextSelectionEnabled();
1194   DALI_TEST_CHECK( !value );
1195
1196   END_TEST;
1197 }
1198
1199 int UtcDaliWebSettingsCheckEnableTextAutosizing(void)
1200 {
1201   ToolkitTestApplication application;
1202
1203   WebView view = WebView::New();
1204   DALI_TEST_CHECK( view );
1205
1206   Dali::Toolkit::WebSettings* settings = view.GetSettings();
1207   DALI_TEST_CHECK( settings != 0 );
1208
1209   // Reset something
1210   settings->AllowMixedContents( false );
1211   settings->EnableSpatialNavigation( false );
1212   settings->EnableWebSecurity( false );
1213   settings->EnableCacheBuilder( false );
1214   settings->EnableDoNotTrack( false );
1215   settings->UseScrollbarThumbFocusNotifications( false );
1216   settings->AllowFileAccessFromExternalUrl( false );
1217   settings->AllowScriptsOpenWindows( false );
1218
1219   // Check default value is true or not
1220   bool value = settings->IsTextAutosizingEnabled();
1221   DALI_TEST_CHECK( value );
1222
1223   // Check Set/GetProperty
1224   settings->EnableTextAutosizing(false);
1225   value = settings->IsTextAutosizingEnabled();
1226   DALI_TEST_CHECK( !value );
1227
1228   END_TEST;
1229 }
1230
1231 int UtcDaliWebSettingsCheckEnableArrowScroll(void)
1232 {
1233   ToolkitTestApplication application;
1234
1235   WebView view = WebView::New();
1236   DALI_TEST_CHECK( view );
1237
1238   Dali::Toolkit::WebSettings* settings = view.GetSettings();
1239   DALI_TEST_CHECK( settings != 0 );
1240
1241   // Reset something
1242   settings->AllowMixedContents( false );
1243   settings->EnableSpatialNavigation( false );
1244   settings->EnableWebSecurity( false );
1245   settings->EnableCacheBuilder( false );
1246   settings->EnableDoNotTrack( false );
1247   settings->UseScrollbarThumbFocusNotifications( false );
1248   settings->AllowFileAccessFromExternalUrl( false );
1249   settings->AllowScriptsOpenWindows( false );
1250
1251   // Check default value is true or not
1252   bool value = settings->IsArrowScrollEnabled();
1253   DALI_TEST_CHECK( value );
1254
1255   // Check Set/GetProperty
1256   settings->EnableArrowScroll(false);
1257   value = settings->IsArrowScrollEnabled();
1258   DALI_TEST_CHECK( !value );
1259
1260   END_TEST;
1261 }
1262
1263 int UtcDaliWebSettingsCheckEnableClipboard(void)
1264 {
1265   ToolkitTestApplication application;
1266
1267   WebView view = WebView::New();
1268   DALI_TEST_CHECK( view );
1269
1270   Dali::Toolkit::WebSettings* settings = view.GetSettings();
1271   DALI_TEST_CHECK( settings != 0 );
1272
1273   // Reset something
1274   settings->AllowMixedContents( false );
1275   settings->EnableSpatialNavigation( false );
1276   settings->EnableWebSecurity( false );
1277   settings->EnableCacheBuilder( false );
1278   settings->EnableDoNotTrack( false );
1279   settings->UseScrollbarThumbFocusNotifications( false );
1280   settings->AllowFileAccessFromExternalUrl( false );
1281   settings->AllowScriptsOpenWindows( false );
1282
1283   // Check default value is true or not
1284   bool value = settings->IsClipboardEnabled();
1285   DALI_TEST_CHECK( value );
1286   settings->EnableClipboard(false);
1287   value = settings->IsClipboardEnabled();
1288   DALI_TEST_CHECK( !value );
1289   END_TEST;
1290 }
1291
1292 int UtcDaliWebSettingsCheckEnableImePanel(void)
1293 {
1294   ToolkitTestApplication application;
1295
1296   WebView view = WebView::New();
1297   DALI_TEST_CHECK( view );
1298
1299   Dali::Toolkit::WebSettings* settings = view.GetSettings();
1300   DALI_TEST_CHECK( settings != 0 );
1301
1302   // Reset something
1303   settings->AllowMixedContents( false );
1304   settings->EnableSpatialNavigation( false );
1305   settings->EnableWebSecurity( false );
1306   settings->EnableCacheBuilder( false );
1307   settings->EnableDoNotTrack( false );
1308   settings->UseScrollbarThumbFocusNotifications( false );
1309   settings->AllowFileAccessFromExternalUrl( false );
1310   settings->AllowScriptsOpenWindows( false );
1311
1312   // Check default value is true or not
1313   bool value = settings->IsImePanelEnabled();
1314   DALI_TEST_CHECK( value );
1315
1316   // Check Set/GetProperty
1317   settings->EnableImePanel(false);
1318   value = settings->IsImePanelEnabled();
1319   DALI_TEST_CHECK( !value );
1320
1321   END_TEST;
1322 }
1323
1324 int UtcDaliWebSettingsCheckAllowImagesLoadAutomatically(void)
1325 {
1326   ToolkitTestApplication application;
1327
1328   WebView view = WebView::New();
1329   DALI_TEST_CHECK( view );
1330
1331   Dali::Toolkit::WebSettings* settings = view.GetSettings();
1332   DALI_TEST_CHECK( settings != 0 )
1333
1334   // Reset something
1335   settings->AllowMixedContents( false );
1336   settings->EnableSpatialNavigation( false );
1337   settings->EnableWebSecurity( false );
1338   settings->EnableCacheBuilder( false );
1339   settings->EnableDoNotTrack( false );
1340   settings->UseScrollbarThumbFocusNotifications( false );
1341   settings->AllowFileAccessFromExternalUrl( false );
1342   settings->AllowScriptsOpenWindows( false );
1343
1344   // Check default value is true or not
1345   bool value = settings->AreImagesLoadedAutomatically();
1346   DALI_TEST_CHECK( value );
1347
1348   // Check Set/GetProperty
1349   settings->AllowImagesLoadAutomatically( false );
1350   value = settings->AreImagesLoadedAutomatically();
1351   DALI_TEST_CHECK( !value );
1352
1353   END_TEST;
1354 }
1355
1356 int UtcDaliWebSettingsGetSetDefaultTextEncodingName(void)
1357 {
1358   ToolkitTestApplication application;
1359
1360   WebView view = WebView::New();
1361   DALI_TEST_CHECK( view );
1362
1363   Dali::Toolkit::WebSettings* settings = view.GetSettings();
1364   DALI_TEST_CHECK( settings != 0 )
1365
1366   const std::string kDefaultValue;
1367   const std::string kTestValue = "UTF-8";
1368
1369   // Reset something
1370   settings->AllowMixedContents( false );
1371   settings->EnableSpatialNavigation( false );
1372   settings->EnableWebSecurity( false );
1373   settings->EnableCacheBuilder( false );
1374   settings->EnableDoNotTrack( false );
1375   settings->UseScrollbarThumbFocusNotifications( false );
1376   settings->AllowFileAccessFromExternalUrl( false );
1377   settings->AllowScriptsOpenWindows( false );
1378
1379   // Check default value
1380   std::string value = settings->GetDefaultTextEncodingName();
1381   DALI_TEST_EQUALS( value, kDefaultValue, TEST_LOCATION );
1382
1383   // Check Set/GetProperty
1384   settings->SetDefaultTextEncodingName( kTestValue );
1385   value = settings->GetDefaultTextEncodingName();
1386   DALI_TEST_EQUALS( value, kTestValue, TEST_LOCATION );
1387
1388   END_TEST;
1389 }
1390