Add WebView SetTtsFocus
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-WebView.cpp
index a4ae7e1..302deb6 100755 (executable)
@@ -81,8 +81,8 @@ static int gRequestInterceptorCallbackCalled = 0;
 static std::shared_ptr<Dali::WebEngineRequestInterceptor> gRequestInterceptorInstance = nullptr;
 static int gConsoleMessageCallbackCalled = 0;
 static std::shared_ptr<Dali::WebEngineConsoleMessage> gConsoleMessageInstance = nullptr;
-static int gPolicyDecisionCallbackCalled = 0;
-static std::shared_ptr<Dali::WebEnginePolicyDecision> gPolicyDecisionInstance = nullptr;
+static int gResponsePolicyDecidedCallbackCalled = 0;
+static std::shared_ptr<Dali::WebEnginePolicyDecision> gResponsePolicyDecisionInstance = nullptr;
 static int gCertificateConfirmCallbackCalled = 0;
 static std::shared_ptr<Dali::WebEngineCertificate> gCertificateConfirmInstance = nullptr;
 static int gSslCertificateChangedCallbackCalled = 0;
@@ -96,10 +96,10 @@ static int gDownloadStartedCallbackCalled = 0;
 static int gMimeOverriddenCallbackCalled = 0;
 static std::vector<std::unique_ptr<Dali::WebEngineSecurityOrigin>> gSecurityOriginList;
 static std::vector<std::unique_ptr<Dali::WebEngineContext::PasswordData>> gPasswordDataList;
-static int gContextMenuCustomizedCallbackCalled = 0;
-static std::shared_ptr<Dali::WebEngineContextMenu> gContextMenuInstance = nullptr;
-static int gContextMenuItemSelectedCallbackCalled = 0;
-static std::shared_ptr<Dali::WebEngineContextMenuItem> gContextMenuItemInstance = nullptr;
+static int gContextMenuShownCallbackCalled = 0;
+static std::shared_ptr<Dali::WebEngineContextMenu> gContextMenuShownInstance = nullptr;
+static int gContextMenuHiddenCallbackCalled = 0;
+static std::shared_ptr<Dali::WebEngineContextMenu> gContextMenuHiddenInstance = nullptr;
 static int gHitTestCreatedCallbackCalled = 0;
 static int gCookieManagerChangsWatchCallbackCalled = 0;
 
@@ -137,10 +137,10 @@ static void OnScrollEdgeReached( WebView view, Dali::WebEnginePlugin::ScrollEdge
   gScrollEdgeReachedCallbackCalled++;
 }
 
-static void OnPolicyDecisionRequest(WebView view, std::shared_ptr<Dali::WebEnginePolicyDecision> decision)
+static void OnResponsePolicyDecided(WebView view, std::shared_ptr<Dali::WebEnginePolicyDecision> decision)
 {
-  gPolicyDecisionCallbackCalled++;
-  gPolicyDecisionInstance = std::move(decision);
+  gResponsePolicyDecidedCallbackCalled++;
+  gResponsePolicyDecisionInstance = std::move(decision);
 }
 
 static void OnUrlChanged( WebView view, const std::string& url )
@@ -293,16 +293,16 @@ static bool OnMimeOverridden(const std::string&, const std::string&, std::string
   return false;
 }
 
-static void OnContextMenuCustomized(WebView view, std::shared_ptr<Dali::WebEngineContextMenu> menu)
+static void OnContextMenuShown(WebView view, std::shared_ptr<Dali::WebEngineContextMenu> menu)
 {
-  gContextMenuCustomizedCallbackCalled++;
-  gContextMenuInstance = std::move(menu);
+  gContextMenuShownCallbackCalled++;
+  gContextMenuShownInstance = std::move(menu);
 }
 
-static void OnContextMenuItemSelected(WebView view, std::shared_ptr<Dali::WebEngineContextMenuItem> item)
+static void OnContextMenuHidden(WebView view, std::shared_ptr<Dali::WebEngineContextMenu> menu)
 {
-  gContextMenuItemSelectedCallbackCalled++;
-  gContextMenuItemInstance = std::move(item);
+  gContextMenuHiddenCallbackCalled++;
+  gContextMenuHiddenInstance = std::move(menu);
 }
 
 } // namespace
@@ -1059,16 +1059,20 @@ int UtcDaliWebViewPropertyTitleFavicon(void)
   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();
+  // Check the case that favicon is not null.
+  Dali::Toolkit::ImageView favicon = view.GetFavicon();
   DALI_TEST_CHECK( favicon );
-  Dali::Vector3 iconsize = favicon->GetProperty< Vector3 >( Dali::Actor::Property::SIZE );
+  Dali::Vector3 iconsize = favicon.GetProperty< Vector3 >( Dali::Actor::Property::SIZE );
   DALI_TEST_CHECK( ( int )iconsize.width == 2 && ( int )iconsize.height == 2 );
 
+  // Check the case that favicon is null.
+  favicon = view.GetFavicon();
+  DALI_TEST_CHECK( !favicon );
+
   END_TEST;
 }
 
-int UtcDaliWebViewContextMenuCustomizedAndItemSelected(void)
+int UtcDaliWebViewContextMenuShownAndHidden(void)
 {
   ToolkitTestApplication application;
 
@@ -1077,54 +1081,53 @@ int UtcDaliWebViewContextMenuCustomizedAndItemSelected(void)
 
   // load url.
   ConnectionTracker* testTracker = new ConnectionTracker();
-  view.ContextMenuCustomizedSignal().Connect( &OnContextMenuCustomized );
-  view.ContextMenuItemSelectedSignal().Connect( &OnContextMenuItemSelected );
+  view.ContextMenuShownSignal().Connect( &OnContextMenuShown );
+  view.ContextMenuHiddenSignal().Connect( &OnContextMenuHidden );
   bool signal1 = false;
   bool signal2 = false;
-  view.ConnectSignal( testTracker, "contextMenuCustomized", CallbackFunctor(&signal1) );
-  view.ConnectSignal( testTracker, "contextMenuItemSelected", CallbackFunctor(&signal2) );
-  DALI_TEST_EQUALS( gContextMenuCustomizedCallbackCalled, 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( gContextMenuItemSelectedCallbackCalled, 0, TEST_LOCATION );
-  DALI_TEST_CHECK(gContextMenuInstance == 0);
-  DALI_TEST_CHECK(gContextMenuItemInstance == 0);
+  view.ConnectSignal( testTracker, "contextMenuShown", CallbackFunctor(&signal1) );
+  view.ConnectSignal( testTracker, "contextMenuHidden", CallbackFunctor(&signal2) );
+  DALI_TEST_EQUALS( gContextMenuShownCallbackCalled, 0, TEST_LOCATION );
+  DALI_TEST_EQUALS( gContextMenuHiddenCallbackCalled, 0, TEST_LOCATION );
+  DALI_TEST_CHECK(gContextMenuShownInstance == 0);
+  DALI_TEST_CHECK(gContextMenuHiddenInstance == 0);
 
   view.LoadUrl( TEST_URL1 );
   Test::EmitGlobalTimerSignal();
-  DALI_TEST_EQUALS( gContextMenuCustomizedCallbackCalled, 1, TEST_LOCATION );
-  DALI_TEST_EQUALS( gContextMenuItemSelectedCallbackCalled, 1, TEST_LOCATION );
+  DALI_TEST_EQUALS( gContextMenuShownCallbackCalled, 1, TEST_LOCATION );
+  DALI_TEST_EQUALS( gContextMenuHiddenCallbackCalled, 1, TEST_LOCATION );
   DALI_TEST_CHECK( signal1 );
   DALI_TEST_CHECK( signal2 );
 
   // check context meun & its items.
-  DALI_TEST_CHECK(gContextMenuInstance != 0);
-  std::unique_ptr<Dali::WebEngineContextMenuItem> item = gContextMenuInstance->GetItemAt(0);
+  DALI_TEST_CHECK(gContextMenuShownInstance != 0);
+  std::unique_ptr<Dali::WebEngineContextMenuItem> item = gContextMenuShownInstance->GetItemAt(0);
   DALI_TEST_CHECK(item.get() != 0);
-  std::vector<std::unique_ptr<Dali::WebEngineContextMenuItem>> itemList = gContextMenuInstance->GetItemList();
+  std::vector<std::unique_ptr<Dali::WebEngineContextMenuItem>> itemList = gContextMenuShownInstance->GetItemList();
   DALI_TEST_CHECK(itemList.size() == 1);
-  Dali::Vector2 testPosition = Dali::Vector2(100, 100);
-  DALI_TEST_EQUALS(gContextMenuInstance->GetPosition(), testPosition, TEST_LOCATION);
-  DALI_TEST_CHECK(gContextMenuInstance->RemoveItem(*(item.get())));
-  DALI_TEST_CHECK(gContextMenuInstance->AppendItemAsAction(WebEngineContextMenuItem::ItemTag::NO_ACTION, "", false));
-  DALI_TEST_CHECK(gContextMenuInstance->AppendItem(WebEngineContextMenuItem::ItemTag::NO_ACTION, "", "", false));
-  DALI_TEST_CHECK(gContextMenuInstance->SelectItem(*(item.get())));
-  DALI_TEST_CHECK(gContextMenuInstance->Hide());
-
-  DALI_TEST_CHECK(gContextMenuItemInstance != 0);
+  DALI_TEST_CHECK(gContextMenuShownInstance->RemoveItem(*(item.get())));
+  DALI_TEST_CHECK(gContextMenuShownInstance->AppendItemAsAction(WebEngineContextMenuItem::ItemTag::NO_ACTION, "", false));
+  DALI_TEST_CHECK(gContextMenuShownInstance->AppendItem(WebEngineContextMenuItem::ItemTag::NO_ACTION, "", "", false));
+  DALI_TEST_CHECK(gContextMenuShownInstance->SelectItem(*(item.get())));
+  DALI_TEST_CHECK(gContextMenuShownInstance->Hide());
+
   Dali::WebEngineContextMenuItem::ItemTag testItemTag = Dali::WebEngineContextMenuItem::ItemTag::NO_ACTION;
-  DALI_TEST_EQUALS(gContextMenuItemInstance->GetTag(), testItemTag, TEST_LOCATION);
+  DALI_TEST_EQUALS(item->GetTag(), testItemTag, TEST_LOCATION);
   Dali::WebEngineContextMenuItem::ItemType testItemType = Dali::WebEngineContextMenuItem::ItemType::ACTION;
-  DALI_TEST_EQUALS(gContextMenuItemInstance->GetType(), testItemType, TEST_LOCATION);
-  DALI_TEST_CHECK(gContextMenuItemInstance->IsEnabled());
+  DALI_TEST_EQUALS(item->GetType(), testItemType, TEST_LOCATION);
+  DALI_TEST_CHECK(item->IsEnabled());
   std::string testLinkUrl("http://test.html");
-  DALI_TEST_EQUALS(gContextMenuItemInstance->GetLinkUrl(), testLinkUrl, TEST_LOCATION);
+  DALI_TEST_EQUALS(item->GetLinkUrl(), testLinkUrl, TEST_LOCATION);
   std::string testImageUrl("http://test.jpg");
-  DALI_TEST_EQUALS(gContextMenuItemInstance->GetImageUrl(), testImageUrl, TEST_LOCATION);
+  DALI_TEST_EQUALS(item->GetImageUrl(), testImageUrl, TEST_LOCATION);
   std::string testTitle("title");
-  DALI_TEST_EQUALS(gContextMenuItemInstance->GetTitle(), testTitle, TEST_LOCATION);
-  DALI_TEST_CHECK(gContextMenuItemInstance->GetParentMenu().get() == 0);
+  DALI_TEST_EQUALS(item->GetTitle(), testTitle, TEST_LOCATION);
+  DALI_TEST_CHECK(item->GetParentMenu().get() == 0);
+
+  DALI_TEST_CHECK(gContextMenuHiddenInstance != 0);
 
-  gContextMenuInstance = nullptr;
-  gContextMenuItemInstance = nullptr;
+  gContextMenuShownInstance = nullptr;
+  gContextMenuHiddenInstance = nullptr;
 
   END_TEST;
 }
@@ -1300,7 +1303,7 @@ int UtcDaliWebViewHttpRequestInterceptor(void)
   END_TEST;
 }
 
-int UtcDaliWebViewPolicyDecisionRequest(void)
+int UtcDaliWebViewResponsePolicyDecisionRequest(void)
 {
   ToolkitTestApplication application;
 
@@ -1309,42 +1312,42 @@ int UtcDaliWebViewPolicyDecisionRequest(void)
 
   // load url.
   ConnectionTracker* testTracker = new ConnectionTracker();
-  view.PolicyDecisionSignal().Connect( &OnPolicyDecisionRequest );
+  view.ResponsePolicyDecisionSignal().Connect( &OnResponsePolicyDecided );
   bool signal1 = false;
-  view.ConnectSignal( testTracker, "policyDecision", CallbackFunctor(&signal1) );
-  DALI_TEST_EQUALS( gPolicyDecisionCallbackCalled, 0, TEST_LOCATION );
-  DALI_TEST_CHECK(gPolicyDecisionInstance == 0);
+  view.ConnectSignal( testTracker, "responsePolicyDecided", CallbackFunctor(&signal1) );
+  DALI_TEST_EQUALS( gResponsePolicyDecidedCallbackCalled, 0, TEST_LOCATION );
+  DALI_TEST_CHECK(gResponsePolicyDecisionInstance == 0);
 
   view.LoadUrl( TEST_URL1 );
   Test::EmitGlobalTimerSignal();
-  DALI_TEST_EQUALS( gPolicyDecisionCallbackCalled, 1, TEST_LOCATION );
+  DALI_TEST_EQUALS( gResponsePolicyDecidedCallbackCalled, 1, TEST_LOCATION );
   DALI_TEST_CHECK( signal1 );
 
-  // check policy decision & its frame.
-  DALI_TEST_CHECK(gPolicyDecisionInstance != 0);
+  // check response policy decision & its frame.
+  DALI_TEST_CHECK(gResponsePolicyDecisionInstance != 0);
   std::string testUrl("http://test.html");
-  DALI_TEST_EQUALS(gPolicyDecisionInstance->GetUrl(), testUrl, TEST_LOCATION);
+  DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetUrl(), testUrl, TEST_LOCATION);
   std::string testCookie("test:abc");
-  DALI_TEST_EQUALS(gPolicyDecisionInstance->GetCookie(), testCookie, TEST_LOCATION);
+  DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetCookie(), testCookie, TEST_LOCATION);
   Dali::WebEnginePolicyDecision::DecisionType testDecisionType = Dali::WebEnginePolicyDecision::DecisionType::USE;
-  DALI_TEST_EQUALS(gPolicyDecisionInstance->GetDecisionType(), testDecisionType, TEST_LOCATION);
+  DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetDecisionType(), testDecisionType, TEST_LOCATION);
   std::string testResponseMime("txt/xml");
-  DALI_TEST_EQUALS(gPolicyDecisionInstance->GetResponseMime(), testResponseMime, TEST_LOCATION);
+  DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetResponseMime(), testResponseMime, TEST_LOCATION);
   int32_t ResponseStatusCode = 500;
-  DALI_TEST_EQUALS(gPolicyDecisionInstance->GetResponseStatusCode(), ResponseStatusCode, TEST_LOCATION);
+  DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetResponseStatusCode(), ResponseStatusCode, TEST_LOCATION);
   Dali::WebEnginePolicyDecision::NavigationType testNavigationType = Dali::WebEnginePolicyDecision::NavigationType::LINK_CLICKED;
-  DALI_TEST_EQUALS(gPolicyDecisionInstance->GetNavigationType(), testNavigationType, TEST_LOCATION);
+  DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetNavigationType(), testNavigationType, TEST_LOCATION);
   std::string testScheme("test");
-  DALI_TEST_EQUALS(gPolicyDecisionInstance->GetScheme(), testScheme, TEST_LOCATION);
-  DALI_TEST_CHECK(gPolicyDecisionInstance->Use());
-  DALI_TEST_CHECK(gPolicyDecisionInstance->Ignore());
-  DALI_TEST_CHECK(gPolicyDecisionInstance->Suspend());
+  DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetScheme(), testScheme, TEST_LOCATION);
+  DALI_TEST_CHECK(gResponsePolicyDecisionInstance->Use());
+  DALI_TEST_CHECK(gResponsePolicyDecisionInstance->Ignore());
+  DALI_TEST_CHECK(gResponsePolicyDecisionInstance->Suspend());
 
-  Dali::WebEngineFrame* webFrame = &(gPolicyDecisionInstance->GetFrame());
+  Dali::WebEngineFrame* webFrame = &(gResponsePolicyDecisionInstance->GetFrame());
   DALI_TEST_CHECK(webFrame);
   DALI_TEST_CHECK(webFrame->IsMainFrame());
 
-  gPolicyDecisionInstance = nullptr;
+  gResponsePolicyDecisionInstance = nullptr;
 
   END_TEST;
 }
@@ -1512,6 +1515,7 @@ int UtcDaliWebViewMethodsForCoverage(void)
     []( const std::string& arg ) {
     }
   );
+  view.SetTtsFocus(true);
 
   DALI_TEST_CHECK( view );
 
@@ -1581,14 +1585,17 @@ int UtcDaliWebContextGetSetCacheModel(void)
   std::string kDefaultValue;
 
   // Reset something
-  context->SetProxyUri( kDefaultValue );
-  context->SetCertificateFilePath( kDefaultValue );
-  context->DisableCache( false );
+  context->SetAppId( "id" );
+  context->SetApplicationType( Dali::WebEngineContext::ApplicationType::OTHER );
+  context->SetTimeOffset( 0 );
+  context->SetTimeZoneOffset( 0, 0 );
   context->SetDefaultProxyAuth( kDefaultValue, kDefaultValue );
   context->DeleteAllWebDatabase();
   context->DeleteAllWebStorage();
   context->DeleteLocalFileSystem();
   context->ClearCache();
+  context->DeleteAllFormPasswordData();
+  context->DeleteAllFormCandidateData();
 
   // Check default value
   Dali::WebEngineContext::CacheModel value = context->GetCacheModel();
@@ -1599,6 +1606,41 @@ int UtcDaliWebContextGetSetCacheModel(void)
   value = context->GetCacheModel();
   DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER );
 
+  // Get cache enabled
+  context->EnableCache( true );
+  DALI_TEST_CHECK( context->IsCacheEnabled() );
+
+  // Get certificate
+  context->SetCertificateFilePath( "test" );
+  std::string str = context->GetCertificateFilePath();
+  DALI_TEST_EQUALS( str, "test", TEST_LOCATION );
+
+  // Set version
+  DALI_TEST_CHECK( context->SetAppVersion( "test" ) );
+
+  // Register
+  std::vector<std::string> temp;
+  context->RegisterUrlSchemesAsCorsEnabled( temp );
+  context->RegisterJsPluginMimeTypes( temp );
+  context->DeleteFormPasswordDataList( temp );
+
+  // Get zoom factor
+  context->SetDefaultZoomFactor( 1.0f );
+  DALI_TEST_EQUALS( context->GetDefaultZoomFactor(), float( 1.0f ), TEST_LOCATION );
+
+  // Delete cache and database
+  DALI_TEST_CHECK( context->DeleteAllApplicationCache() );
+  DALI_TEST_CHECK( context->DeleteAllWebIndexedDatabase() );
+
+  // Get contextProxy
+  context->SetProxyUri( "test" );
+  DALI_TEST_EQUALS( context->GetProxyUri(), "test", TEST_LOCATION );
+  context->SetProxyBypassRule("", "test");
+  DALI_TEST_EQUALS( context->GetProxyBypassRule(), "test", TEST_LOCATION );
+
+  //Notify low memory
+  DALI_TEST_CHECK( context->FreeUnusedMemory() );
+
   END_TEST;
 }
 
@@ -1644,7 +1686,7 @@ int UtcDaliWebContextGetWebDatabaseStorageOrigins(void)
   Test::EmitGlobalTimerSignal();
   DALI_TEST_EQUALS( gStorageUsageAcquiredCallbackCalled, 1, TEST_LOCATION );
 
-  result = context->DeleteWebStorageOrigin(*origin);
+  result = context->DeleteWebStorage(*origin);
   DALI_TEST_CHECK( result );
 
   result = context->DeleteApplicationCache(*origin);