Add some properties into web view
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-WebView.cpp
old mode 100644 (file)
new mode 100755 (executable)
index 2088d90..36a058d
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 #include "dali-toolkit-test-utils/toolkit-timer.h"
 
 #include <dali.h>
+#include <dali/integration-api/events/hover-event-integ.h>
 #include <dali/integration-api/events/key-event-integ.h>
 #include <dali/integration-api/events/touch-event-integ.h>
+#include <dali/integration-api/events/wheel-event-integ.h>
+#include <dali/public-api/images/pixel-data.h>
+#include <dali-toolkit/public-api/controls/image-view/image-view.h>
 #include <dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h>
 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list.h>
 #include <dali-toolkit/devel-api/controls/web-view/web-back-forward-list-item.h>
@@ -32,7 +36,6 @@
 #include <dali-toolkit/devel-api/controls/web-view/web-settings.h>
 #include <dali-toolkit/devel-api/controls/web-view/web-view.h>
 
-
 using namespace Dali;
 using namespace Toolkit;
 
@@ -43,10 +46,17 @@ const char* const TEST_URL1( "http://www.somewhere.valid1.com" );
 const char* const TEST_URL2( "http://www.somewhere.valid2.com" );
 
 static int gPageLoadStartedCallbackCalled = 0;
+static int gPageLoadInProgressCallbackCalled = 0;
 static int gPageLoadFinishedCallbackCalled = 0;
 static int gScrollEdgeReachedCallbackCalled = 0;
+static int gUrlChangedCallbackCalled = 0;
 static int gEvaluateJavaScriptCallbackCalled = 0;
+static int gJavaScriptAlertCallbackCalled = 0;
+static int gJavaScriptConfirmCallbackCalled = 0;
+static int gJavaScriptPromptCallbackCalled = 0;
 static bool gTouched = false;
+static bool gHovered = false;
+static bool gWheelEventHandled = false;
 
 struct CallbackFunctor
 {
@@ -67,6 +77,11 @@ static void OnPageLoadStarted( WebView view, const std::string& url )
   gPageLoadStartedCallbackCalled++;
 }
 
+static void OnPageLoadInProgress( WebView view, const std::string& url )
+{
+  gPageLoadInProgressCallbackCalled++;
+}
+
 static void OnPageLoadFinished( WebView view, const std::string& url )
 {
   gPageLoadFinishedCallbackCalled++;
@@ -77,6 +92,11 @@ static void OnScrollEdgeReached( WebView view, Dali::WebEnginePlugin::ScrollEdge
   gScrollEdgeReachedCallbackCalled++;
 }
 
+static void OnUrlChanged( WebView view, const std::string& url )
+{
+  gUrlChangedCallbackCalled++;
+}
+
 static void OnPageLoadError( WebView view, const std::string& url, WebView::LoadErrorCode errorCode )
 {
 }
@@ -86,12 +106,42 @@ static void OnEvaluateJavaScript( const std::string& result )
   gEvaluateJavaScriptCallbackCalled++;
 }
 
+static bool OnJavaScriptAlert( const std::string& result )
+{
+  gJavaScriptAlertCallbackCalled++;
+  return true;
+}
+
+static bool OnJavaScriptConfirm( const std::string& result )
+{
+  gJavaScriptConfirmCallbackCalled++;
+  return true;
+}
+
+static bool OnJavaScriptPrompt( const std::string& meesage1, const std::string& message2 )
+{
+  gJavaScriptPromptCallbackCalled++;
+  return true;
+}
+
 static bool OnTouched( Actor actor, const Dali::TouchEvent& touch )
 {
   gTouched = true;
   return true;
 }
 
+static bool OnHovered( Actor actor, const Dali::HoverEvent& hover )
+{
+  gHovered = true;
+  return true;
+}
+
+static bool OnWheelEvent( Actor actor, const Dali::WheelEvent& wheel )
+{
+  gWheelEventHandled = true;
+  return true;
+}
+
 } // namespace
 
 void web_view_startup(void)
@@ -166,26 +216,35 @@ int UtcDaliWebViewPageNavigation(void)
 
   ConnectionTracker* testTracker = new ConnectionTracker();
   view.PageLoadStartedSignal().Connect( &OnPageLoadStarted );
+  view.PageLoadInProgressSignal().Connect( &OnPageLoadInProgress );
   view.PageLoadFinishedSignal().Connect( &OnPageLoadFinished );
   view.PageLoadErrorSignal().Connect( &OnPageLoadError );
+  view.UrlChangedSignal().Connect( &OnUrlChanged );
   bool signal1 = false;
   bool signal2 = false;
   bool signal3 = false;
+  bool signal4 = false;
+  bool signal5 = false;
   view.ConnectSignal( testTracker, "pageLoadStarted", CallbackFunctor(&signal1) );
-  view.ConnectSignal( testTracker, "pageLoadFinished", CallbackFunctor(&signal2) );
-  view.ConnectSignal( testTracker, "invalidname", CallbackFunctor(&signal3) );
+  view.ConnectSignal( testTracker, "pageLoadInProgress", CallbackFunctor(&signal2) );
+  view.ConnectSignal( testTracker, "pageLoadFinished", CallbackFunctor(&signal3) );
+  view.ConnectSignal( testTracker, "urlChanged", CallbackFunctor(&signal4) );
+  view.ConnectSignal( testTracker, "invalidname", CallbackFunctor(&signal5) );
   DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 0, TEST_LOCATION );
+  DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 0, TEST_LOCATION );
   DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 0, TEST_LOCATION );
-
+  DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 0, TEST_LOCATION );
 
   view.LoadUrl( TEST_URL1 );
   view.GetNaturalSize();
   Test::EmitGlobalTimerSignal();
   DALI_TEST_EQUALS( view.CanGoBack(), false, TEST_LOCATION );
   DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 1, TEST_LOCATION );
+  DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 1, TEST_LOCATION );
   DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 1, TEST_LOCATION );
-  DALI_TEST_CHECK( signal1 & signal2 );
-  DALI_TEST_CHECK( !signal3 );
+  DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 1, TEST_LOCATION );
+  DALI_TEST_CHECK( signal1 & signal2 & signal3 & signal4 );
+  DALI_TEST_CHECK( !signal5 );
 
   view.LoadUrl( TEST_URL2 );
   view.Suspend();
@@ -197,7 +256,9 @@ int UtcDaliWebViewPageNavigation(void)
   DALI_TEST_EQUALS( view.CanGoBack(), true, TEST_LOCATION );
   DALI_TEST_EQUALS( view.CanGoForward(), false, TEST_LOCATION );
   DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 2, TEST_LOCATION );
+  DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 2, TEST_LOCATION );
   DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 2, TEST_LOCATION );
+  DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 2, TEST_LOCATION );
 
   view.GoBack();
   Test::EmitGlobalTimerSignal();
@@ -289,6 +350,160 @@ int UtcDaliWebViewFocusGainedAndLost(void)
   END_TEST;
 }
 
+int UtcDaliWebViewMove(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+  view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
+  view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
+
+  application.GetScene().Add( view );
+  application.SendNotification();
+  application.Render();
+
+  view.SetProperty( Actor::Property::POSITION, Vector2( 100, 100 ));
+  Vector3 viewPos = view.GetProperty<Vector3>( Actor::Property::POSITION );
+  DALI_TEST_EQUALS( viewPos, Vector3( 100, 100, 0 ), TEST_LOCATION );
+
+  END_TEST;
+}
+
+int UtcDaliWebViewPropertyVideoHoleEnabled(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  const bool kDefaultValue = true;
+  const bool kTestValue = false;
+
+  // Check default value
+  bool output;
+  Property::Value value = view.GetProperty( WebView::Property::VIDEO_HOLE_ENABLED );
+  DALI_TEST_CHECK( value.Get( output ) );
+  DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
+
+  // Check Set/GetProperty
+  view.SetProperty( WebView::Property::VIDEO_HOLE_ENABLED, kTestValue );
+  value = view.GetProperty( WebView::Property::VIDEO_HOLE_ENABLED );
+  DALI_TEST_CHECK( value.Get( output ) );
+  DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
+
+  END_TEST;
+}
+
+int UtcDaliWebViewPropertyMouseEventsEnabled(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  const bool kDefaultValue = true;
+  const bool kTestValue = false;
+
+  // Check default value
+  bool output;
+  Property::Value value = view.GetProperty( WebView::Property::MOUSE_EVENTS_ENABLED );
+  DALI_TEST_CHECK( value.Get( output ) );
+  DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
+
+  // Check Set/GetProperty
+  view.SetProperty( WebView::Property::MOUSE_EVENTS_ENABLED, kTestValue );
+  value = view.GetProperty( WebView::Property::MOUSE_EVENTS_ENABLED );
+  DALI_TEST_CHECK( value.Get( output ) );
+  DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
+
+  END_TEST;
+}
+
+int UtcDaliWebViewPropertyKeyEventsEnabled(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  const bool kDefaultValue = true;
+  const bool kTestValue = false;
+
+  // Check default value
+  bool output;
+  Property::Value value = view.GetProperty( WebView::Property::KEY_EVENTS_ENABLED );
+  DALI_TEST_CHECK( value.Get( output ) );
+  DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION );
+
+  // Check Set/GetProperty
+  view.SetProperty( WebView::Property::KEY_EVENTS_ENABLED, kTestValue );
+  value = view.GetProperty( WebView::Property::KEY_EVENTS_ENABLED );
+  DALI_TEST_CHECK( value.Get( output ) );
+  DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION );
+
+  END_TEST;
+}
+
+int UtcDaliWebViewHoverAndWheel(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+  view.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+  view.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
+  view.SetProperty( Actor::Property::POSITION, Vector2( 0, 0 ));
+  view.SetProperty( Actor::Property::SIZE, Vector2( 800, 600 ) );
+
+  application.GetScene().Add( view );
+  application.SendNotification();
+  application.Render();
+
+  view.GetNaturalSize();
+  view.HoveredSignal().Connect( &OnHovered );
+  view.WheelEventSignal().Connect( &OnWheelEvent );
+
+  // Hover event
+  Dali::Integration::HoverEvent event = Dali::Integration::HoverEvent();
+  Dali::Integration::Point pointDown;
+  pointDown.SetState( PointState::DOWN );
+  pointDown.SetScreenPosition( Vector2( 10, 10 ) );
+  event.AddPoint( pointDown );
+  application.ProcessEvent( event );
+
+  event = Dali::Integration::HoverEvent();
+  Dali::Integration::Point pointUp;
+  pointUp.SetState( PointState::UP );
+  pointUp.SetScreenPosition( Vector2( 10, 10 ) );
+  event.AddPoint( pointUp );
+  application.ProcessEvent( event );
+
+  event = Dali::Integration::HoverEvent();
+  Dali::Integration::Point pointMotion;
+  pointUp.SetState( PointState::MOTION );
+  pointUp.SetScreenPosition( Vector2( 10, 10 ) );
+  event.AddPoint( pointMotion );
+  application.ProcessEvent( event );
+
+  // Wheel event
+  Dali::Integration::WheelEvent wheelEvent;
+  wheelEvent.type = Dali::Integration::WheelEvent::Type::MOUSE_WHEEL;
+  wheelEvent.direction = 0;
+  wheelEvent.point = Vector2( 20, 20 );
+  wheelEvent.delta = 10;
+  application.ProcessEvent( wheelEvent );
+  application.SendNotification();
+
+  DALI_TEST_CHECK( gHovered );
+  DALI_TEST_CHECK( gWheelEventHandled );
+
+  END_TEST;
+}
+
 int UtcDaliWebViewGetWebBackForwardList(void)
 {
   ToolkitTestApplication application;
@@ -416,6 +631,54 @@ int UtcDaliWebViewProperty9(void)
   END_TEST;
 }
 
+int UtcDaliWebViewPropertyBackgroundColorSelectedTextEtc(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Vector4 testValue = Dali::Vector4(0.0f, 0.0f, 0.0f, 0.0f);
+  view.SetProperty(WebView::Property::DOCUMENT_BACKGROUND_COLOR, testValue);
+  view.SetProperty(WebView::Property::TILES_CLEARED_WHEN_HIDDEN, true);
+  view.SetProperty(WebView::Property::TILE_COVER_AREA_MULTIPLIER, 1.0f);
+  view.SetProperty(WebView::Property::CURSOR_ENABLED_BY_CLIENT, true);
+
+  // Check default value
+  std::string testText("test");
+  std::string output;
+  view.GetProperty(WebView::Property::SELECTED_TEXT).Get(output);
+  DALI_TEST_EQUALS(output, testText, TEST_LOCATION);
+
+  END_TEST;
+}
+
+int UtcDaliWebViewPropertyTitleFavicon(void)
+{
+  ToolkitTestApplication application;
+
+  char argv[] = "--test";
+  WebView view = WebView::New( 1, (char**)&argv );
+  DALI_TEST_CHECK( view );
+
+  // reset something
+  view.ClearAllTilesResources();
+
+  // Check default value of title
+  std::string testValue("title");
+  std::string output;
+  view.GetProperty( WebView::Property::TITLE ).Get( output );
+  DALI_TEST_EQUALS( output, testValue, TEST_LOCATION );
+
+  // Check default value of favicon
+  Dali::Toolkit::ImageView* favicon = &view.GetFavicon();
+  DALI_TEST_CHECK( favicon );
+  Dali::Vector3 iconsize = favicon->GetProperty< Vector3 >( Dali::Actor::Property::SIZE );
+  DALI_TEST_CHECK( ( int )iconsize.width == 2 && ( int )iconsize.height == 2 );
+
+  END_TEST;
+}
+
 int UtcDaliWebViewScrollBy(void)
 {
   ToolkitTestApplication application;
@@ -442,6 +705,8 @@ int UtcDaliWebViewScrollBy(void)
 
   // scroll by and trigger scrollEdgeReached event.
   view.ScrollBy( 50, 50 );
+  Test::EmitGlobalTimerSignal();
+
   view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output );
   DALI_TEST_CHECK( output.x == 150 && output.y == 150 );
   DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 1, TEST_LOCATION );
@@ -466,6 +731,33 @@ int UtcDaliWebViewEvaluteJavaScript(void)
   END_TEST;
 }
 
+int UtcDaliWebViewJavaScriptAlertConfirmPrompt(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New( "ko-KR", "Asia/Seoul" );
+
+  view.RegisterJavaScriptAlertCallback( &OnJavaScriptAlert );
+  view.LoadHtmlString( "<head><script type='text/javascript'>alert('this is an alert popup.');</script></head><body>Hello World!</body>" );
+  view.JavaScriptAlertReply();
+  Test::EmitGlobalTimerSignal();
+  DALI_TEST_EQUALS( gJavaScriptAlertCallbackCalled, 1, TEST_LOCATION );
+
+  view.RegisterJavaScriptConfirmCallback( &OnJavaScriptConfirm );
+  view.LoadHtmlString( "<head><script type='text/javascript'>confirm('this is a confirm popup.');</script></head><body>Hello World!</body>" );
+  view.JavaScriptConfirmReply( true );
+  Test::EmitGlobalTimerSignal();
+  DALI_TEST_EQUALS( gJavaScriptConfirmCallbackCalled, 1, TEST_LOCATION );
+
+  view.RegisterJavaScriptPromptCallback( &OnJavaScriptPrompt );
+  view.LoadHtmlString( "<head><script type='text/javascript'>prompt('this is a prompt popup.');</script></head><body>Hello World!</body>" );
+  view.JavaScriptPromptReply( "it is a prompt." );
+  Test::EmitGlobalTimerSignal();
+  DALI_TEST_EQUALS( gJavaScriptPromptCallbackCalled, 1, TEST_LOCATION );
+
+  END_TEST;
+}
+
 int UtcDaliWebViewMethodsForCoverage(void)
 {
   ToolkitTestApplication application;
@@ -601,6 +893,9 @@ int UtcDaliWebSettingsGetSetDefaultFontSize(void)
   settings->AllowMixedContents( false );
   settings->EnableSpatialNavigation( false );
   settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
   settings->AllowFileAccessFromExternalUrl( false );
   settings->AllowScriptsOpenWindows( false );
 
@@ -630,6 +925,9 @@ int UtcDaliWebSettingsCheckEnableJavaScript(void)
   settings->AllowMixedContents( false );
   settings->EnableSpatialNavigation( false );
   settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
   settings->AllowFileAccessFromExternalUrl( false );
   settings->AllowScriptsOpenWindows( false );
 
@@ -645,6 +943,384 @@ int UtcDaliWebSettingsCheckEnableJavaScript(void)
   END_TEST;
 }
 
+int UtcDaliWebSettingsCheckEnableAutoFitting(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Toolkit::WebSettings* settings = view.GetSettings();
+  DALI_TEST_CHECK( settings != 0 )
+
+  // Reset something
+  settings->AllowMixedContents( false );
+  settings->EnableSpatialNavigation( false );
+  settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
+  settings->AllowFileAccessFromExternalUrl( false );
+  settings->AllowScriptsOpenWindows( false );
+
+  // Check default value is true or not
+  bool value = settings->IsAutoFittingEnabled();
+  DALI_TEST_CHECK( value );
+
+  // Check Set/GetProperty
+  settings->EnableAutoFitting( false );
+  value = settings->IsAutoFittingEnabled();
+  DALI_TEST_CHECK( !value );
+
+  END_TEST;
+}
+
+int UtcDaliWebSettingsCheckEnablePlugins(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Toolkit::WebSettings* settings = view.GetSettings();
+  DALI_TEST_CHECK( settings != 0 )
+
+  // Reset something
+  settings->AllowMixedContents( false );
+  settings->EnableSpatialNavigation( false );
+  settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
+  settings->AllowFileAccessFromExternalUrl( false );
+  settings->AllowScriptsOpenWindows( false );
+
+  // Check default value is true or not
+  bool value = settings->ArePluginsEnabled();
+  DALI_TEST_CHECK( value );
+
+  // Check Set/GetProperty
+  settings->EnablePlugins( false );
+  value = settings->ArePluginsEnabled();
+  DALI_TEST_CHECK( !value );
+
+  END_TEST;
+}
+
+int UtcDaliWebSettingsCheckEnablePrivateBrowsing(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Toolkit::WebSettings* settings = view.GetSettings();
+  DALI_TEST_CHECK( settings != 0 )
+
+  // Reset something
+  settings->AllowMixedContents( false );
+  settings->EnableSpatialNavigation( false );
+  settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
+  settings->AllowFileAccessFromExternalUrl( false );
+  settings->AllowScriptsOpenWindows( false );
+
+  // Check default value is true or not
+  bool value = settings->IsPrivateBrowsingEnabled();
+  DALI_TEST_CHECK( value );
+
+  // Check Set/GetProperty
+  settings->EnablePrivateBrowsing( false );
+  value = settings->IsPrivateBrowsingEnabled();
+  DALI_TEST_CHECK( !value );
+
+  END_TEST;
+}
+
+int UtcDaliWebSettingsCheckEnableLinkMagnifier(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Toolkit::WebSettings* settings = view.GetSettings();
+  DALI_TEST_CHECK( settings != 0 )
+
+  // Reset something
+  settings->AllowMixedContents( false );
+  settings->EnableSpatialNavigation( false );
+  settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
+  settings->AllowFileAccessFromExternalUrl( false );
+  settings->AllowScriptsOpenWindows( false );
+
+  // Check default value is true or not
+  bool value = settings->IsLinkMagnifierEnabled();
+  DALI_TEST_CHECK( value );
+
+  // Check Set/GetProperty
+  settings->EnableLinkMagnifier( false );
+  value = settings->IsLinkMagnifierEnabled();
+  DALI_TEST_CHECK( !value );
+
+  END_TEST;
+}
+
+int UtcDaliWebSettingsCheckUseKeypadWithoutUserAction(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Toolkit::WebSettings* settings = view.GetSettings();
+  DALI_TEST_CHECK( settings != 0 )
+
+  // Reset something
+  settings->AllowMixedContents( false );
+  settings->EnableSpatialNavigation( false );
+  settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
+  settings->AllowFileAccessFromExternalUrl( false );
+  settings->AllowScriptsOpenWindows( false );
+
+  // Check default value is true or not
+  bool value = settings->IsKeypadWithoutUserActionUsed();
+  DALI_TEST_CHECK( value );
+
+  // Check Set/GetProperty
+  settings->UseKeypadWithoutUserAction( false );
+  value = settings->IsKeypadWithoutUserActionUsed();
+  DALI_TEST_CHECK( !value );
+
+  END_TEST;
+}
+
+int UtcDaliWebSettingsCheckEnableAutofillPasswordForm(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Toolkit::WebSettings* settings = view.GetSettings();
+  DALI_TEST_CHECK( settings != 0 )
+
+  // Reset something
+  settings->AllowMixedContents( false );
+  settings->EnableSpatialNavigation( false );
+  settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
+  settings->AllowFileAccessFromExternalUrl( false );
+  settings->AllowScriptsOpenWindows( false );
+
+  // Check default value is true or not
+  bool value = settings->IsAutofillPasswordFormEnabled();
+  DALI_TEST_CHECK( value );
+  settings->EnableAutofillPasswordForm( false );
+  value = settings->IsAutofillPasswordFormEnabled();
+  DALI_TEST_CHECK( !value );
+  END_TEST;
+}
+
+int UtcDaliWebSettingsCheckEnableFormCandidateData(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Toolkit::WebSettings* settings = view.GetSettings();
+  DALI_TEST_CHECK( settings != 0 );
+
+  // Reset something
+  settings->AllowMixedContents( false );
+  settings->EnableSpatialNavigation( false );
+  settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
+  settings->AllowFileAccessFromExternalUrl( false );
+  settings->AllowScriptsOpenWindows( false );
+
+  // Check default value is true or not
+  bool value = settings->IsFormCandidateDataEnabled();
+  DALI_TEST_CHECK( value );
+
+  // Check Set/GetProperty
+  settings->EnableFormCandidateData( false );
+  value = settings->IsFormCandidateDataEnabled();
+  DALI_TEST_CHECK( !value );
+
+  END_TEST;
+}
+
+int UtcDaliWebSettingsCheckEnableTextSelection(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Toolkit::WebSettings* settings = view.GetSettings();
+  DALI_TEST_CHECK( settings != 0 );
+
+  // Reset something
+  settings->AllowMixedContents( false );
+  settings->EnableSpatialNavigation( false );
+  settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
+  settings->AllowFileAccessFromExternalUrl( false );
+  settings->AllowScriptsOpenWindows( false );
+
+  // Check default value is true or not
+  bool value = settings->IsTextSelectionEnabled();
+  DALI_TEST_CHECK( value );
+
+  //Check Set/GetProperty
+  settings->EnableTextSelection(false);
+  value = settings->IsTextSelectionEnabled();
+  DALI_TEST_CHECK( !value );
+
+  END_TEST;
+}
+
+int UtcDaliWebSettingsCheckEnableTextAutosizing(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Toolkit::WebSettings* settings = view.GetSettings();
+  DALI_TEST_CHECK( settings != 0 );
+
+  // Reset something
+  settings->AllowMixedContents( false );
+  settings->EnableSpatialNavigation( false );
+  settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
+  settings->AllowFileAccessFromExternalUrl( false );
+  settings->AllowScriptsOpenWindows( false );
+
+  // Check default value is true or not
+  bool value = settings->IsTextAutosizingEnabled();
+  DALI_TEST_CHECK( value );
+
+  // Check Set/GetProperty
+  settings->EnableTextAutosizing(false);
+  value = settings->IsTextAutosizingEnabled();
+  DALI_TEST_CHECK( !value );
+
+  END_TEST;
+}
+
+int UtcDaliWebSettingsCheckEnableArrowScroll(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Toolkit::WebSettings* settings = view.GetSettings();
+  DALI_TEST_CHECK( settings != 0 );
+
+  // Reset something
+  settings->AllowMixedContents( false );
+  settings->EnableSpatialNavigation( false );
+  settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
+  settings->AllowFileAccessFromExternalUrl( false );
+  settings->AllowScriptsOpenWindows( false );
+
+  // Check default value is true or not
+  bool value = settings->IsArrowScrollEnabled();
+  DALI_TEST_CHECK( value );
+
+  // Check Set/GetProperty
+  settings->EnableArrowScroll(false);
+  value = settings->IsArrowScrollEnabled();
+  DALI_TEST_CHECK( !value );
+
+  END_TEST;
+}
+
+int UtcDaliWebSettingsCheckEnableClipboard(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Toolkit::WebSettings* settings = view.GetSettings();
+  DALI_TEST_CHECK( settings != 0 );
+
+  // Reset something
+  settings->AllowMixedContents( false );
+  settings->EnableSpatialNavigation( false );
+  settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
+  settings->AllowFileAccessFromExternalUrl( false );
+  settings->AllowScriptsOpenWindows( false );
+
+  // Check default value is true or not
+  bool value = settings->IsClipboardEnabled();
+  DALI_TEST_CHECK( value );
+  settings->EnableClipboard(false);
+  value = settings->IsClipboardEnabled();
+  DALI_TEST_CHECK( !value );
+  END_TEST;
+}
+
+int UtcDaliWebSettingsCheckEnableImePanel(void)
+{
+  ToolkitTestApplication application;
+
+  WebView view = WebView::New();
+  DALI_TEST_CHECK( view );
+
+  Dali::Toolkit::WebSettings* settings = view.GetSettings();
+  DALI_TEST_CHECK( settings != 0 );
+
+  // Reset something
+  settings->AllowMixedContents( false );
+  settings->EnableSpatialNavigation( false );
+  settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
+  settings->AllowFileAccessFromExternalUrl( false );
+  settings->AllowScriptsOpenWindows( false );
+
+  // Check default value is true or not
+  bool value = settings->IsImePanelEnabled();
+  DALI_TEST_CHECK( value );
+
+  // Check Set/GetProperty
+  settings->EnableImePanel(false);
+  value = settings->IsImePanelEnabled();
+  DALI_TEST_CHECK( !value );
+
+  END_TEST;
+}
+
 int UtcDaliWebSettingsCheckAllowImagesLoadAutomatically(void)
 {
   ToolkitTestApplication application;
@@ -659,6 +1335,9 @@ int UtcDaliWebSettingsCheckAllowImagesLoadAutomatically(void)
   settings->AllowMixedContents( false );
   settings->EnableSpatialNavigation( false );
   settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
   settings->AllowFileAccessFromExternalUrl( false );
   settings->AllowScriptsOpenWindows( false );
 
@@ -691,6 +1370,9 @@ int UtcDaliWebSettingsGetSetDefaultTextEncodingName(void)
   settings->AllowMixedContents( false );
   settings->EnableSpatialNavigation( false );
   settings->EnableWebSecurity( false );
+  settings->EnableCacheBuilder( false );
+  settings->EnableDoNotTrack( false );
+  settings->UseScrollbarThumbFocusNotifications( false );
   settings->AllowFileAccessFromExternalUrl( false );
   settings->AllowScriptsOpenWindows( false );