Merge "Implement some new ewk apis in web view." into devel/master
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-WebView.cpp
1 /*
2  * Copyright (c) 2020 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/key-event-integ.h>
26 #include <dali/integration-api/events/touch-event-integ.h>
27 #include <dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h>
28 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list.h>
29 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list-item.h>
30 #include <dali-toolkit/devel-api/controls/web-view/web-context.h>
31 #include <dali-toolkit/devel-api/controls/web-view/web-cookie-manager.h>
32 #include <dali-toolkit/devel-api/controls/web-view/web-settings.h>
33 #include <dali-toolkit/devel-api/controls/web-view/web-view.h>
34
35
36 using namespace Dali;
37 using namespace Toolkit;
38
39 namespace
40 {
41
42 const char* const TEST_URL1( "http://www.somewhere.valid1.com" );
43 const char* const TEST_URL2( "http://www.somewhere.valid2.com" );
44
45 static int gPageLoadStartedCallbackCalled = 0;
46 static int gPageLoadFinishedCallbackCalled = 0;
47 static int gScrollEdgeReachedCallbackCalled = 0;
48 static int gEvaluateJavaScriptCallbackCalled = 0;
49 static bool gTouched = false;
50
51 struct CallbackFunctor
52 {
53   CallbackFunctor(bool* callbackFlag)
54   : mCallbackFlag( callbackFlag )
55   {
56   }
57
58   void operator()()
59   {
60     *mCallbackFlag = true;
61   }
62   bool* mCallbackFlag;
63 };
64
65 static void OnPageLoadStarted( WebView view, const std::string& url )
66 {
67   gPageLoadStartedCallbackCalled++;
68 }
69
70 static void OnPageLoadFinished( WebView view, const std::string& url )
71 {
72   gPageLoadFinishedCallbackCalled++;
73 }
74
75 static void OnScrollEdgeReached( WebView view, Dali::WebEnginePlugin::ScrollEdge edge )
76 {
77   gScrollEdgeReachedCallbackCalled++;
78 }
79
80 static void OnPageLoadError( WebView view, const std::string& url, WebView::LoadErrorCode errorCode )
81 {
82 }
83
84 static void OnEvaluateJavaScript( const std::string& result )
85 {
86   gEvaluateJavaScriptCallbackCalled++;
87 }
88
89 static bool OnTouched( Actor actor, const Dali::TouchEvent& touch )
90 {
91   gTouched = true;
92   return true;
93 }
94
95 } // namespace
96
97 void web_view_startup(void)
98 {
99   test_return_value = TET_UNDEF;
100 }
101
102 void web_view_cleanup(void)
103 {
104   test_return_value = TET_PASS;
105 }
106
107 int UtcDaliWebViewBasics(void)
108 {
109   ToolkitTestApplication application;
110
111   // Copy and Assignment Test
112   tet_infoline( "UtcDaliWebViewBasic Copy and Assignment Test" );
113   WebView view = WebView::New();
114   DALI_TEST_CHECK( view );
115
116   WebView copy( view );
117   DALI_TEST_CHECK( view == copy );
118
119   WebView assign;
120   DALI_TEST_CHECK( !assign );
121
122   assign = copy;
123   DALI_TEST_CHECK( assign == view );
124
125
126   // DownCast Test
127   tet_infoline( "UtcDaliWebViewBasic DownCast Test" );
128   BaseHandle handle(view);
129
130   WebView view2 = WebView::DownCast( handle );
131   DALI_TEST_CHECK( view );
132   DALI_TEST_CHECK( view2 );
133   DALI_TEST_CHECK( view == view2 );
134
135
136   // TypeRegistry Test
137   tet_infoline( "UtcDaliWebViewBasic TypeRegistry Test" );
138   TypeRegistry typeRegistry = TypeRegistry::Get();
139   DALI_TEST_CHECK( typeRegistry );
140
141   TypeInfo typeInfo = typeRegistry.GetTypeInfo( "WebView" );
142   DALI_TEST_CHECK( typeInfo );
143
144   BaseHandle handle2 = typeInfo.CreateInstance();
145   DALI_TEST_CHECK( handle2 );
146
147   WebView view3 = WebView::DownCast( handle2 );
148   DALI_TEST_CHECK( view3 );
149
150   END_TEST;
151 }
152
153 int UtcDaliWebViewPageNavigation(void)
154 {
155   ToolkitTestApplication application;
156
157   WebView view = WebView::New();
158   view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
159   view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
160   view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
161   view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
162   application.GetScene().Add( view );
163   application.SendNotification();
164   application.Render();
165   DALI_TEST_CHECK( view );
166
167   ConnectionTracker* testTracker = new ConnectionTracker();
168   view.PageLoadStartedSignal().Connect( &OnPageLoadStarted );
169   view.PageLoadFinishedSignal().Connect( &OnPageLoadFinished );
170   view.PageLoadErrorSignal().Connect( &OnPageLoadError );
171   bool signal1 = false;
172   bool signal2 = false;
173   bool signal3 = false;
174   view.ConnectSignal( testTracker, "pageLoadStarted", CallbackFunctor(&signal1) );
175   view.ConnectSignal( testTracker, "pageLoadFinished", CallbackFunctor(&signal2) );
176   view.ConnectSignal( testTracker, "invalidname", CallbackFunctor(&signal3) );
177   DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 0, TEST_LOCATION );
178   DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 0, TEST_LOCATION );
179
180
181   view.LoadUrl( TEST_URL1 );
182   view.GetNaturalSize();
183   Test::EmitGlobalTimerSignal();
184   DALI_TEST_EQUALS( view.CanGoBack(), false, TEST_LOCATION );
185   DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 1, TEST_LOCATION );
186   DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 1, TEST_LOCATION );
187   DALI_TEST_CHECK( signal1 & signal2 );
188   DALI_TEST_CHECK( !signal3 );
189
190   view.LoadUrl( TEST_URL2 );
191   view.Suspend();
192   view.SetProperty( Actor::Property::SIZE, Vector2( 400, 300 ) );
193   application.SendNotification();
194   application.Render();
195   Test::EmitGlobalTimerSignal();
196   view.Resume();
197   DALI_TEST_EQUALS( view.CanGoBack(), true, TEST_LOCATION );
198   DALI_TEST_EQUALS( view.CanGoForward(), false, TEST_LOCATION );
199   DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 2, TEST_LOCATION );
200   DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 2, TEST_LOCATION );
201
202   view.GoBack();
203   Test::EmitGlobalTimerSignal();
204   DALI_TEST_CHECK( !view.CanGoBack() );
205   DALI_TEST_CHECK( view.CanGoForward() );
206
207   view.GoForward();
208   Test::EmitGlobalTimerSignal();
209   DALI_TEST_CHECK( view.CanGoBack() );
210   DALI_TEST_CHECK( !view.CanGoForward() );
211
212   view.Reload();
213   view.StopLoading();
214   view.ClearHistory();
215   Test::EmitGlobalTimerSignal();
216   DALI_TEST_CHECK( !view.CanGoBack() );
217   DALI_TEST_CHECK( !view.CanGoForward() );
218
219   END_TEST;
220 }
221
222 int UtcDaliWebViewTouchAndKeys(void)
223 {
224   ToolkitTestApplication application;
225
226   WebView view = WebView::New();
227   view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
228   view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
229   view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
230   view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
231
232   application.GetScene().Add( view );
233   application.SendNotification();
234   application.Render();
235
236   view.GetNaturalSize();
237   view.TouchedSignal().Connect( &OnTouched );
238
239   // Touch event
240   Dali::Integration::TouchEvent event;
241   Dali::Integration::Point pointDown, pointUp;
242
243   event = Dali::Integration::TouchEvent();
244   pointDown.SetState( PointState::DOWN );
245   pointDown.SetScreenPosition( Vector2( 10, 10 ) );
246   event.AddPoint( pointDown );
247   application.ProcessEvent( event );
248
249   event = Dali::Integration::TouchEvent();
250   pointUp.SetState( PointState::UP );
251   pointUp.SetScreenPosition( Vector2( 10, 10 ) );
252   event.AddPoint( pointUp );
253   application.ProcessEvent( event );
254
255   // Key event
256   Toolkit::KeyboardFocusManager::Get().SetCurrentFocusActor( view );
257   application.ProcessEvent( Integration::KeyEvent( "", "", "", DALI_KEY_ESCAPE, 0, 0, Integration::KeyEvent::DOWN, "", "", Device::Class::NONE, Device::Subclass::NONE ) );
258   application.SendNotification();
259
260   DALI_TEST_CHECK( gTouched );
261   DALI_TEST_CHECK( view );
262
263   END_TEST;
264 }
265
266 int UtcDaliWebViewFocusGainedAndLost(void)
267 {
268   ToolkitTestApplication application;
269
270   WebView view = WebView::New();
271   DALI_TEST_CHECK( view );
272
273   view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
274   view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
275   view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
276   view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
277
278   application.GetScene().Add( view );
279   application.SendNotification();
280   application.Render();
281
282   view.SetKeyInputFocus();
283   DALI_TEST_CHECK( view.HasKeyInputFocus() );
284
285   // reset
286   view.ClearKeyInputFocus();
287   DALI_TEST_CHECK( !view.HasKeyInputFocus() );
288
289   END_TEST;
290 }
291
292 int UtcDaliWebViewGetWebBackForwardList(void)
293 {
294   ToolkitTestApplication application;
295
296   WebView view = WebView::New();
297   DALI_TEST_CHECK( view );
298
299   Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
300   DALI_TEST_CHECK( bfList != 0 );
301
302   END_TEST;
303 }
304
305 int UtcDaliWebViewGetWebContext(void)
306 {
307   ToolkitTestApplication application;
308
309   WebView view = WebView::New();
310   DALI_TEST_CHECK( view );
311
312   Dali::Toolkit::WebContext* context = view.GetContext();
313   DALI_TEST_CHECK( context != 0 );
314
315   END_TEST;
316 }
317
318 int UtcDaliWebViewGetWebCookieManager(void)
319 {
320   ToolkitTestApplication application;
321
322   WebView view = WebView::New();
323   DALI_TEST_CHECK( view );
324
325   Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager();
326   DALI_TEST_CHECK( cookieManager != 0 );
327
328   END_TEST;
329 }
330
331 int UtcDaliWebViewGetWebSettings(void)
332 {
333   ToolkitTestApplication application;
334
335   WebView view = WebView::New();
336   DALI_TEST_CHECK( view );
337
338   Dali::Toolkit::WebSettings* settings = view.GetSettings();
339   DALI_TEST_CHECK( settings != 0 );
340
341   END_TEST;
342 }
343
344 int UtcDaliWebViewProperty1(void)
345 {
346   // URL
347   ToolkitTestApplication application;
348
349   WebView view = WebView::New();
350   DALI_TEST_CHECK( view );
351
352   std::string local;
353   view.SetProperty( WebView::Property::URL, TEST_URL1 );
354   Property::Value val = view.GetProperty( WebView::Property::URL );
355   DALI_TEST_CHECK( val.Get( local ) );
356   DALI_TEST_EQUALS( local, TEST_URL1, TEST_LOCATION );
357
358   END_TEST;
359 }
360
361 int UtcDaliWebViewProperty4(void)
362 {
363   // USER_AGENT
364   ToolkitTestApplication application;
365
366   WebView view = WebView::New();
367   DALI_TEST_CHECK( view );
368
369   const std::string kDefaultValue;
370   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";
371
372   // Check default value
373   std::string output;
374   Property::Value value = view.GetProperty( WebView::Property::USER_AGENT );
375   DALI_TEST_CHECK( value.Get( output ) );
376   DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
377
378   // Check Set/GetProperty
379   view.SetProperty( WebView::Property::USER_AGENT, kTestValue );
380   value = view.GetProperty( WebView::Property::USER_AGENT );
381   DALI_TEST_CHECK( value.Get( output ) );
382   DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
383
384   END_TEST;
385 }
386
387 int UtcDaliWebViewProperty9(void)
388 {
389   // SCROLL_POSITION
390   ToolkitTestApplication application;
391
392   WebView view = WebView::New();
393   DALI_TEST_CHECK( view );
394
395   // Check default value
396   Dali::Vector2 output = Dali::Vector2::ONE;
397   view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
398   DALI_TEST_CHECK( output.x == 0 && output.y == 0 );
399
400   // Check Set/GetProperty
401   Dali::Vector2 testValue = Dali::Vector2( 100, 100 );
402   view.SetProperty( WebView::Property::SCROLL_POSITION, testValue );
403   view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
404   DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
405
406   // Check default value of scroll size
407   output = Dali::Vector2::ONE;
408   view.GetProperty( WebView::Property::SCROLL_SIZE ).Get( output );
409   DALI_TEST_CHECK( output.x == 500 && output.y == 500 );
410
411   // Check default value of content size
412   output = Dali::Vector2::ONE;
413   view.GetProperty( WebView::Property::CONTENT_SIZE ).Get( output );
414   DALI_TEST_CHECK( output.x == 500 && output.y == 500 );
415
416   END_TEST;
417 }
418
419 int UtcDaliWebViewScrollBy(void)
420 {
421   ToolkitTestApplication application;
422
423   WebView view = WebView::New();
424   DALI_TEST_CHECK( view );
425
426   // load url.
427   ConnectionTracker* testTracker = new ConnectionTracker();
428   view.ScrollEdgeReachedSignal().Connect( &OnScrollEdgeReached );
429   bool signal1 = false;
430   view.ConnectSignal( testTracker, "scrollEdgeReached", CallbackFunctor(&signal1) );
431   DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 0, TEST_LOCATION );
432
433   view.LoadUrl( TEST_URL1 );
434   Test::EmitGlobalTimerSignal();
435
436   // set scroll position.
437   Dali::Vector2 output = Dali::Vector2::ONE;
438   Dali::Vector2 testValue = Dali::Vector2( 100, 100 );
439   view.SetProperty( WebView::Property::SCROLL_POSITION, testValue );
440   view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
441   DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
442
443   // scroll by and trigger scrollEdgeReached event.
444   view.ScrollBy( 50, 50 );
445   view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
446   DALI_TEST_CHECK( output.x == 150 && output.y == 150 );
447   DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 1, TEST_LOCATION );
448   DALI_TEST_CHECK( signal1 );
449
450   END_TEST;
451 }
452
453 int UtcDaliWebViewEvaluteJavaScript(void)
454 {
455   ToolkitTestApplication application;
456
457   WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
458
459   view.LoadHtmlString( "<body>Hello World!</body>" );
460   view.EvaluateJavaScript( "jsObject.postMessage('Hello')" );
461   view.EvaluateJavaScript( "jsObject.postMessage('World')", OnEvaluateJavaScript );
462   Test::EmitGlobalTimerSignal();
463
464   DALI_TEST_EQUALS( gEvaluateJavaScriptCallbackCalled, 1, TEST_LOCATION );
465
466   END_TEST;
467 }
468
469 int UtcDaliWebViewMethodsForCoverage(void)
470 {
471   ToolkitTestApplication application;
472
473   WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
474
475   view.LoadHtmlString( "<body>Hello World!</body>" );
476   view.AddJavaScriptMessageHandler( "jsObject",
477     []( const std::string& arg ) {
478     }
479   );
480
481   DALI_TEST_CHECK( view );
482
483   END_TEST;
484 }
485
486 // test cases for web backforward list.
487
488 int UtcDaliWebBackForwardListCheckItem(void)
489 {
490   ToolkitTestApplication application;
491
492   WebView view = WebView::New();
493   DALI_TEST_CHECK( view );
494
495   Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList();
496   DALI_TEST_CHECK( bfList != 0 )
497
498   unsigned int itemCount = bfList->GetItemCount();
499   DALI_TEST_CHECK( itemCount == 1 )
500
501   Dali::Toolkit::WebBackForwardListItem* citem = bfList->GetCurrentItem();
502   DALI_TEST_CHECK( citem != 0 );
503
504   const std::string kDefaultUrl( "http://url" );
505   std::string testValue = citem->GetUrl();
506   DALI_TEST_EQUALS( testValue, kDefaultUrl, TEST_LOCATION );
507
508   const std::string kDefaultTitle( "title" );
509   testValue = citem->GetTitle();
510   DALI_TEST_EQUALS( testValue, kDefaultTitle, TEST_LOCATION );
511
512   const std::string kDefaultOriginalUrl( "http://originalurl" );
513   testValue = citem->GetOriginalUrl();
514   DALI_TEST_EQUALS( testValue, kDefaultOriginalUrl, TEST_LOCATION );
515
516   Dali::Toolkit::WebBackForwardListItem* item = bfList->GetItemAtIndex( 0 );
517   DALI_TEST_CHECK( item != 0 );
518
519   END_TEST;
520 }
521
522 // test cases for web context.
523
524 int UtcDaliWebContextGetSetCacheModel(void)
525 {
526   ToolkitTestApplication application;
527
528   WebView view = WebView::New();
529   DALI_TEST_CHECK( view );
530
531   Dali::Toolkit::WebContext* context = view.GetContext();
532   DALI_TEST_CHECK( context != 0 )
533
534   std::string kDefaultValue;
535
536   // Reset something
537   context->SetProxyUri( kDefaultValue );
538   context->SetCertificateFilePath( kDefaultValue );
539   context->DisableCache( false );
540   context->SetDefaultProxyAuth( kDefaultValue, kDefaultValue );
541   context->DeleteWebDatabase();
542   context->DeleteWebStorage();
543   context->DeleteLocalFileSystem();
544   context->ClearCache();
545
546   // Check default value
547   Dali::WebEngineContext::CacheModel value = context->GetCacheModel();
548   DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER );
549
550   // Check Set/GetProperty
551   context->SetCacheModel( Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
552   value = context->GetCacheModel();
553   DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
554
555   END_TEST;
556 }
557
558 // test cases for web cookie manager.
559
560 int UtcDaliWebCookieManagerGetSetCookieAcceptPolicy(void)
561 {
562   ToolkitTestApplication application;
563
564   WebView view = WebView::New();
565   DALI_TEST_CHECK( view );
566
567   Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager();
568   DALI_TEST_CHECK( cookieManager != 0 )
569
570   const std::string kDefaultValue;
571
572   // Reset something
573   cookieManager->SetPersistentStorage( kDefaultValue, Dali::WebEngineCookieManager::CookiePersistentStorage::SQLITE );
574   cookieManager->ClearCookies();
575
576   // Check default value
577   Dali::WebEngineCookieManager::CookieAcceptPolicy value = cookieManager->GetCookieAcceptPolicy();
578   DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY );
579
580   // Check Set/GetProperty
581   cookieManager->SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS );
582   value = cookieManager->GetCookieAcceptPolicy();
583   DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS );
584
585   END_TEST;
586 }
587
588 // test cases for web settings.
589
590 int UtcDaliWebSettingsGetSetDefaultFontSize(void)
591 {
592   ToolkitTestApplication application;
593
594   WebView view = WebView::New();
595   DALI_TEST_CHECK( view );
596
597   Dali::Toolkit::WebSettings* settings = view.GetSettings();
598   DALI_TEST_CHECK( settings != 0 )
599
600   // Reset something
601   settings->AllowMixedContents( false );
602   settings->EnableSpatialNavigation( false );
603   settings->EnableWebSecurity( false );
604   settings->AllowFileAccessFromExternalUrl( false );
605   settings->AllowScriptsOpenWindows( false );
606
607   // Check default value
608   int value = settings->GetDefaultFontSize();
609   DALI_TEST_CHECK( value == 16 );
610
611   // Check Set/GetProperty
612   settings->SetDefaultFontSize( 20 );
613   value = settings->GetDefaultFontSize();
614   DALI_TEST_CHECK( value == 20 );
615
616   END_TEST;
617 }
618
619 int UtcDaliWebSettingsCheckEnableJavaScript(void)
620 {
621   ToolkitTestApplication application;
622
623   WebView view = WebView::New();
624   DALI_TEST_CHECK( view );
625
626   Dali::Toolkit::WebSettings* settings = view.GetSettings();
627   DALI_TEST_CHECK( settings != 0 )
628
629   // Reset something
630   settings->AllowMixedContents( false );
631   settings->EnableSpatialNavigation( false );
632   settings->EnableWebSecurity( false );
633   settings->AllowFileAccessFromExternalUrl( false );
634   settings->AllowScriptsOpenWindows( false );
635
636   // Check default value is true or not
637   bool value = settings->IsJavaScriptEnabled();
638   DALI_TEST_CHECK( value );
639
640   // Check Set/GetProperty
641   settings->EnableJavaScript( false );
642   value = settings->IsJavaScriptEnabled();
643   DALI_TEST_CHECK( !value );
644
645   END_TEST;
646 }
647
648 int UtcDaliWebSettingsCheckAllowImagesLoadAutomatically(void)
649 {
650   ToolkitTestApplication application;
651
652   WebView view = WebView::New();
653   DALI_TEST_CHECK( view );
654
655   Dali::Toolkit::WebSettings* settings = view.GetSettings();
656   DALI_TEST_CHECK( settings != 0 )
657
658   // Reset something
659   settings->AllowMixedContents( false );
660   settings->EnableSpatialNavigation( false );
661   settings->EnableWebSecurity( false );
662   settings->AllowFileAccessFromExternalUrl( false );
663   settings->AllowScriptsOpenWindows( false );
664
665   // Check default value is true or not
666   bool value = settings->AreImagesLoadedAutomatically();
667   DALI_TEST_CHECK( value );
668
669   // Check Set/GetProperty
670   settings->AllowImagesLoadAutomatically( false );
671   value = settings->AreImagesLoadedAutomatically();
672   DALI_TEST_CHECK( !value );
673
674   END_TEST;
675 }
676
677 int UtcDaliWebSettingsGetSetDefaultTextEncodingName(void)
678 {
679   ToolkitTestApplication application;
680
681   WebView view = WebView::New();
682   DALI_TEST_CHECK( view );
683
684   Dali::Toolkit::WebSettings* settings = view.GetSettings();
685   DALI_TEST_CHECK( settings != 0 )
686
687   const std::string kDefaultValue;
688   const std::string kTestValue = "UTF-8";
689
690   // Reset something
691   settings->AllowMixedContents( false );
692   settings->EnableSpatialNavigation( false );
693   settings->EnableWebSecurity( false );
694   settings->AllowFileAccessFromExternalUrl( false );
695   settings->AllowScriptsOpenWindows( false );
696
697   // Check default value
698   std::string value = settings->GetDefaultTextEncodingName();
699   DALI_TEST_EQUALS( value, kDefaultValue, TEST_LOCATION );
700
701   // Check Set/GetProperty
702   settings->SetDefaultTextEncodingName( kTestValue );
703   value = settings->GetDefaultTextEncodingName();
704   DALI_TEST_EQUALS( value, kTestValue, TEST_LOCATION );
705
706   END_TEST;
707 }
708