X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-WebView.cpp;h=4e553e8c8c1f1ac512522378f1b94467c31e77bc;hp=bc0c261255d46a36d5e955f245b3f092e7a51336;hb=8ebe42b2ca06a57a08b02a975146af34c1b9bcd6;hpb=ce0f6a98e157fda761dd9c3d0514609be937f388 diff --git a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp index bc0c261..4e553e8 100755 --- a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp @@ -26,7 +26,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -41,10 +43,8 @@ #include #include #include -#include #include #include -#include #include #include @@ -61,7 +61,7 @@ static int gPageLoadStartedCallbackCalled = 0; static int gPageLoadInProgressCallbackCalled = 0; static int gPageLoadFinishedCallbackCalled = 0; static int gPageLoadErrorCallbackCalled = 0; -static std::shared_ptr gPageLoadErrorInstance = nullptr; +static std::unique_ptr gPageLoadErrorInstance = nullptr; static int gScrollEdgeReachedCallbackCalled = 0; static int gUrlChangedCallbackCalled = 0; static int gEvaluateJavaScriptCallbackCalled = 0; @@ -74,32 +74,35 @@ static int gGeolocationPermissionCallbackCalled = 0; static bool gTouched = false; static bool gHovered = false; static bool gWheelEventHandled = false; -static int gFormRepostDecisionCallbackCalled = 0; -static std::shared_ptr gFormRepostDecisionInstance = nullptr; +static int gFormRepostDecidedCallbackCalled = 0; +static std::unique_ptr gFormRepostDecidedInstance = nullptr; static int gFrameRenderedCallbackCalled = 0; -static int gRequestInterceptorCallbackCalled = 0; -static std::shared_ptr gRequestInterceptorInstance = nullptr; static int gConsoleMessageCallbackCalled = 0; -static std::shared_ptr gConsoleMessageInstance = nullptr; -static int gPolicyDecisionCallbackCalled = 0; -static std::shared_ptr gPolicyDecisionInstance = nullptr; +static std::unique_ptr gConsoleMessageInstance = nullptr; +static int gResponsePolicyDecidedCallbackCalled = 0; +static std::unique_ptr gResponsePolicyDecisionInstance = nullptr; static int gCertificateConfirmCallbackCalled = 0; -static std::shared_ptr gCertificateConfirmInstance = nullptr; +static std::unique_ptr gCertificateConfirmInstance = nullptr; static int gSslCertificateChangedCallbackCalled = 0; -static std::shared_ptr gSslCertificateInstance = nullptr; +static std::unique_ptr gSslCertificateInstance = nullptr; static int gHttpAuthHandlerCallbackCalled = 0; -static std::shared_ptr gHttpAuthInstance = nullptr; +static std::unique_ptr gHttpAuthInstance = nullptr; static int gSecurityOriginsAcquiredCallbackCalled = 0; static int gStorageUsageAcquiredCallbackCalled = 0; static int gFormPasswordsAcquiredCallbackCalled = 0; static int gDownloadStartedCallbackCalled = 0; static int gMimeOverriddenCallbackCalled = 0; +static int gRequestInterceptedCallbackCalled = 0; +static Dali::WebEngineRequestInterceptorPtr gRequestInterceptorInstance = nullptr; static std::vector> gSecurityOriginList; static std::vector> gPasswordDataList; -static int gContextMenuCustomizedCallbackCalled = 0; -static std::shared_ptr gContextMenuInstance = 0; -static int gContextMenuItemSelectedCallbackCalled = 0; -static std::shared_ptr gContextMenuItemInstance = 0; +static int gContextMenuShownCallbackCalled = 0; +static std::unique_ptr gContextMenuShownInstance = nullptr; +static int gContextMenuHiddenCallbackCalled = 0; +static std::unique_ptr gContextMenuHiddenInstance = nullptr; +static int gHitTestCreatedCallbackCalled = 0; +static int gCookieManagerChangsWatchCallbackCalled = 0; +static int gPlainTextReceivedCallbackCalled = 0; struct CallbackFunctor { @@ -115,61 +118,73 @@ struct CallbackFunctor bool* mCallbackFlag; }; -static void OnPageLoadStarted( WebView view, const std::string& url ) +static void OnPageLoadStarted(const std::string& url) { gPageLoadStartedCallbackCalled++; } -static void OnPageLoadInProgress( WebView view, const std::string& url ) +static void OnPageLoadInProgress(const std::string& url) { gPageLoadInProgressCallbackCalled++; } -static void OnPageLoadFinished( WebView view, const std::string& url ) +static void OnPageLoadFinished(const std::string& url) { gPageLoadFinishedCallbackCalled++; } -static void OnScrollEdgeReached( WebView view, Dali::WebEnginePlugin::ScrollEdge edge ) +static void OnScrollEdgeReached(Dali::WebEnginePlugin::ScrollEdge edge) { gScrollEdgeReachedCallbackCalled++; } -static void OnPolicyDecisionRequest(WebView view, std::shared_ptr decision) +static void OnResponsePolicyDecided(std::unique_ptr decision) { - gPolicyDecisionCallbackCalled++; - gPolicyDecisionInstance = std::move(decision); + gResponsePolicyDecidedCallbackCalled++; + gResponsePolicyDecisionInstance = std::move(decision); } -static void OnUrlChanged( WebView view, const std::string& url ) +static void OnUrlChanged(const std::string& url) { gUrlChangedCallbackCalled++; } -static void OnPageLoadError(WebView view, std::shared_ptr error) +static bool OnHitTestCreated(std::unique_ptr test) +{ + gHitTestCreatedCallbackCalled++; + return true; +} + +static bool OnPlainTextReceived(const std::string& plainText) +{ + gPlainTextReceivedCallbackCalled++; + return true; +} + +static void OnPageLoadError(std::unique_ptr error) { gPageLoadErrorCallbackCalled++; gPageLoadErrorInstance = std::move(error); } -static void OnEvaluateJavaScript( const std::string& result ) +static void OnEvaluateJavaScript(const std::string& result) { gEvaluateJavaScriptCallbackCalled++; } -static bool OnJavaScriptAlert( const std::string& result ) +static bool OnJavaScriptAlert(const std::string& result) { gJavaScriptAlertCallbackCalled++; return true; } -static bool OnJavaScriptConfirm( const std::string& result ) +static bool OnJavaScriptConfirm(const std::string& result) { gJavaScriptConfirmCallbackCalled++; return true; } -static bool OnJavaScriptPrompt( const std::string& meesage1, const std::string& message2 ) +static bool OnJavaScriptPrompt(const std::string& meesage1, const std::string& message2) { gJavaScriptPromptCallbackCalled++; return true; @@ -197,54 +212,53 @@ static bool OnTouched( Actor actor, const Dali::TouchEvent& touch ) return true; } -static bool OnHovered( Actor actor, const Dali::HoverEvent& hover ) +static void OnChangesWatch() +{ + gCookieManagerChangsWatchCallbackCalled++; +} + +static bool OnHovered(Actor actor, const Dali::HoverEvent& hover) { gHovered = true; return true; } -static bool OnWheelEvent( Actor actor, const Dali::WheelEvent& wheel ) +static bool OnWheelEvent(Actor actor, const Dali::WheelEvent& wheel) { gWheelEventHandled = true; return true; } -static void OnFormRepostDecision(WebView, std::shared_ptr decision) +static void OnFormRepostDecided(std::unique_ptr decision) { - gFormRepostDecisionCallbackCalled++; - gFormRepostDecisionInstance = std::move(decision); + gFormRepostDecidedCallbackCalled++; + gFormRepostDecidedInstance = std::move(decision); } -static void OnFrameRendered(WebView) +static void OnFrameRendered() { gFrameRenderedCallbackCalled++; } -static void OnRequestInterceptor(WebView view, std::shared_ptr interceptor) -{ - gRequestInterceptorCallbackCalled++; - gRequestInterceptorInstance = std::move(interceptor); -} - -static void OnConsoleMessage(WebView view, std::shared_ptr message) +static void OnConsoleMessage(std::unique_ptr message) { gConsoleMessageCallbackCalled++; gConsoleMessageInstance = std::move(message); } -static void OnCertificateConfirm(WebView view, std::shared_ptr certificate ) +static void OnCertificateConfirm(std::unique_ptr certificate) { gCertificateConfirmCallbackCalled++; gCertificateConfirmInstance = std::move(certificate); } -static void OnSslCertificateChanged(WebView view, std::shared_ptr certificate ) +static void OnSslCertificateChanged(std::unique_ptr certificate) { gSslCertificateChangedCallbackCalled++; gSslCertificateInstance = std::move(certificate); } -static void OnHttpAuthHandler( WebView view, std::shared_ptr hander ) +static void OnHttpAuthHandler(std::unique_ptr hander) { gHttpAuthHandlerCallbackCalled++; gHttpAuthInstance = std::move(hander); @@ -280,16 +294,23 @@ static bool OnMimeOverridden(const std::string&, const std::string&, std::string return false; } -static void OnContextMenuCustomized(WebView view, std::shared_ptr menu) +static bool OnRequestIntercepted(Dali::WebEngineRequestInterceptorPtr interceptor) +{ + gRequestInterceptedCallbackCalled++; + gRequestInterceptorInstance = interceptor; + return false; +} + +static void OnContextMenuShown(std::unique_ptr menu) { - gContextMenuCustomizedCallbackCalled++; - gContextMenuInstance = std::move(menu); + gContextMenuShownCallbackCalled++; + gContextMenuShownInstance = std::move(menu); } -static void OnContextMenuItemSelected(WebView view, std::shared_ptr item) +static void OnContextMenuHidden(std::unique_ptr menu) { - gContextMenuItemSelectedCallbackCalled++; - gContextMenuItemInstance = std::move(item); + gContextMenuHiddenCallbackCalled++; + gContextMenuHiddenInstance = std::move(menu); } } // namespace @@ -362,21 +383,10 @@ int UtcDaliWebViewPageNavigation(void) application.Render(); DALI_TEST_CHECK( view ); - ConnectionTracker* testTracker = new ConnectionTracker(); - view.PageLoadStartedSignal().Connect( &OnPageLoadStarted ); - view.PageLoadInProgressSignal().Connect( &OnPageLoadInProgress ); - view.PageLoadFinishedSignal().Connect( &OnPageLoadFinished ); - 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, "pageLoadInProgress", CallbackFunctor(&signal2) ); - view.ConnectSignal( testTracker, "pageLoadFinished", CallbackFunctor(&signal3) ); - view.ConnectSignal( testTracker, "urlChanged", CallbackFunctor(&signal4) ); - view.ConnectSignal( testTracker, "invalidname", CallbackFunctor(&signal5) ); + view.RegisterPageLoadStartedCallback( &OnPageLoadStarted ); + view.RegisterPageLoadInProgressCallback( &OnPageLoadInProgress ); + view.RegisterPageLoadFinishedCallback( &OnPageLoadFinished ); + view.RegisterUrlChangedCallback( &OnUrlChanged ); DALI_TEST_EQUALS( gPageLoadStartedCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 0, TEST_LOCATION ); @@ -390,8 +400,6 @@ int UtcDaliWebViewPageNavigation(void) DALI_TEST_EQUALS( gPageLoadInProgressCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gPageLoadFinishedCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gUrlChangedCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 & signal2 & signal3 & signal4 ); - DALI_TEST_CHECK( !signal5 ); view.LoadUrl( TEST_URL2 ); view.Suspend(); @@ -441,13 +449,8 @@ int UtcDaliWebViewPageLoadErrorConsoleMessage(void) application.Render(); DALI_TEST_CHECK( view ); - ConnectionTracker* testTracker = new ConnectionTracker(); - view.PageLoadErrorSignal().Connect( &OnPageLoadError ); - view.ConsoleMessageSignal().Connect( &OnConsoleMessage ); - bool signal1 = false; - bool signal2 = false; - view.ConnectSignal( testTracker, "pageLoadError", CallbackFunctor(&signal1) ); - view.ConnectSignal( testTracker, "consoleMessage", CallbackFunctor(&signal2) ); + view.RegisterPageLoadErrorCallback( &OnPageLoadError ); + view.RegisterConsoleMessageReceivedCallback( &OnConsoleMessage ); DALI_TEST_EQUALS( gPageLoadErrorCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gConsoleMessageCallbackCalled, 0, TEST_LOCATION ); @@ -455,7 +458,6 @@ int UtcDaliWebViewPageLoadErrorConsoleMessage(void) Test::EmitGlobalTimerSignal(); DALI_TEST_EQUALS( gPageLoadErrorCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gConsoleMessageCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 & signal2); // error code. DALI_TEST_CHECK(gPageLoadErrorInstance); @@ -657,8 +659,8 @@ int UtcDaliWebViewPropertyVideoHoleEnabled(void) WebView view = WebView::New(); DALI_TEST_CHECK( view ); - const bool kDefaultValue = true; - const bool kTestValue = false; + const bool kDefaultValue = false; + const bool kTestValue = true; // Check default value bool output; @@ -781,7 +783,7 @@ int UtcDaliWebViewHoverAndWheel(void) END_TEST; } -int UtcDaliWebViewFormRepostDecisionFrameRendering(void) +int UtcDaliWebViewFormRepostDecidedFrameRendering(void) { ToolkitTestApplication application; @@ -795,28 +797,22 @@ int UtcDaliWebViewFormRepostDecisionFrameRendering(void) application.Render(); DALI_TEST_CHECK( view ); - ConnectionTracker* testTracker = new ConnectionTracker(); - view.FormRepostDecisionSignal().Connect(&OnFormRepostDecision); - view.FrameRenderedSignal().Connect(&OnFrameRendered); - bool signal1 = false; - bool signal2 = false; - view.ConnectSignal( testTracker, "formRepostDecision", CallbackFunctor(&signal1) ); - view.ConnectSignal( testTracker, "frameRendered", CallbackFunctor(&signal2) ); - DALI_TEST_EQUALS( gFormRepostDecisionCallbackCalled, 0, TEST_LOCATION ); + view.RegisterFormRepostDecidedCallback(&OnFormRepostDecided); + view.RegisterFrameRenderedCallback(&OnFrameRendered); + DALI_TEST_EQUALS( gFormRepostDecidedCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gFrameRenderedCallbackCalled, 0, TEST_LOCATION ); view.LoadUrl( TEST_URL1 ); Test::EmitGlobalTimerSignal(); - DALI_TEST_EQUALS( gFormRepostDecisionCallbackCalled, 1, TEST_LOCATION ); + DALI_TEST_EQUALS( gFormRepostDecidedCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gFrameRenderedCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 & signal2); // form repost decision. - DALI_TEST_CHECK(gFormRepostDecisionInstance); - gFormRepostDecisionInstance->Reply(true); + DALI_TEST_CHECK(gFormRepostDecidedInstance); + gFormRepostDecidedInstance->Reply(true); // reset - gFormRepostDecisionInstance = nullptr; + gFormRepostDecidedInstance = nullptr; END_TEST; } @@ -835,16 +831,9 @@ int UtcDaliWebViewSslCertificateHttpAuthentication(void) application.Render(); DALI_TEST_CHECK( view ); - ConnectionTracker* testTracker = new ConnectionTracker(); - view.CertificateConfirmSignal().Connect(&OnCertificateConfirm); - view.SslCertificateChangedSignal().Connect(&OnSslCertificateChanged); - view.HttpAuthHandlerSignal().Connect(&OnHttpAuthHandler); - bool signal1 = false; - bool signal2 = false; - bool signal3 = false; - view.ConnectSignal( testTracker, "certificateConfirm", CallbackFunctor(&signal1) ); - view.ConnectSignal( testTracker, "sslCertificateChanged", CallbackFunctor(&signal2) ); - view.ConnectSignal( testTracker, "httpAuthRequest", CallbackFunctor(&signal3) ); + view.RegisterCertificateConfirmedCallback(&OnCertificateConfirm); + view.RegisterSslCertificateChangedCallback(&OnSslCertificateChanged); + view.RegisterHttpAuthHandlerCallback(&OnHttpAuthHandler); DALI_TEST_EQUALS( gCertificateConfirmCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gSslCertificateChangedCallbackCalled, 0, TEST_LOCATION ); DALI_TEST_EQUALS( gHttpAuthHandlerCallbackCalled, 0, TEST_LOCATION ); @@ -854,7 +843,6 @@ int UtcDaliWebViewSslCertificateHttpAuthentication(void) DALI_TEST_EQUALS( gCertificateConfirmCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gSslCertificateChangedCallbackCalled, 1, TEST_LOCATION ); DALI_TEST_EQUALS( gHttpAuthHandlerCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 & signal2 & signal3); // certificate. DALI_TEST_CHECK(gCertificateConfirmInstance); @@ -1046,16 +1034,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; @@ -1063,55 +1055,47 @@ int UtcDaliWebViewContextMenuCustomizedAndItemSelected(void) DALI_TEST_CHECK( view ); // load url. - ConnectionTracker* testTracker = new ConnectionTracker(); - view.ContextMenuCustomizedSignal().Connect( &OnContextMenuCustomized ); - view.ContextMenuItemSelectedSignal().Connect( &OnContextMenuItemSelected ); - 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.RegisterContextMenuShownCallback( &OnContextMenuShown ); + view.RegisterContextMenuHiddenCallback( &OnContextMenuHidden ); + 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_CHECK( signal1 ); - DALI_TEST_CHECK( signal2 ); + DALI_TEST_EQUALS( gContextMenuShownCallbackCalled, 1, TEST_LOCATION ); + DALI_TEST_EQUALS( gContextMenuHiddenCallbackCalled, 1, TEST_LOCATION ); // check context meun & its items. - DALI_TEST_CHECK(gContextMenuInstance != 0); - std::unique_ptr item = gContextMenuInstance->GetItemAt(0); + DALI_TEST_CHECK(gContextMenuShownInstance != 0); + std::unique_ptr item = gContextMenuShownInstance->GetItemAt(0); DALI_TEST_CHECK(item.get() != 0); - std::vector> itemList = gContextMenuInstance->GetItemList(); + std::vector> 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; } @@ -1124,10 +1108,7 @@ int UtcDaliWebViewScrollBy(void) DALI_TEST_CHECK( view ); // load url. - ConnectionTracker* testTracker = new ConnectionTracker(); - view.ScrollEdgeReachedSignal().Connect( &OnScrollEdgeReached ); - bool signal1 = false; - view.ConnectSignal( testTracker, "scrollEdgeReached", CallbackFunctor(&signal1) ); + view.RegisterScrollEdgeReachedCallback( &OnScrollEdgeReached ); DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 0, TEST_LOCATION ); view.LoadUrl( TEST_URL1 ); @@ -1147,7 +1128,6 @@ int UtcDaliWebViewScrollBy(void) view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output ); DALI_TEST_CHECK( output.x == 150 && output.y == 150 ); DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 ); // scroll by and trigger scrollEdgeReached event. bool result = view.ScrollEdgeBy( 50, 50 ); @@ -1157,7 +1137,6 @@ int UtcDaliWebViewScrollBy(void) view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output ); DALI_TEST_CHECK( output.x == 200 && output.y == 200 ); DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 2, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 ); END_TEST; } @@ -1253,7 +1232,7 @@ int UtcDaliWebViewVideoPlayingGeolocationPermission(void) END_TEST; } -int UtcDaliWebViewHttpRequestInterceptor(void) +int UtcDaliWebViewResponsePolicyDecisionRequest(void) { ToolkitTestApplication application; @@ -1261,33 +1240,44 @@ int UtcDaliWebViewHttpRequestInterceptor(void) DALI_TEST_CHECK( view ); // load url. - ConnectionTracker* testTracker = new ConnectionTracker(); - view.RequestInterceptorSignal().Connect( &OnRequestInterceptor ); - bool signal1 = false; - view.ConnectSignal( testTracker, "requestInterceptor", CallbackFunctor(&signal1) ); - DALI_TEST_EQUALS( gRequestInterceptorCallbackCalled, 0, TEST_LOCATION ); - DALI_TEST_CHECK(gRequestInterceptorInstance == 0); + view.RegisterResponsePolicyDecidedCallback( &OnResponsePolicyDecided ); + DALI_TEST_EQUALS( gResponsePolicyDecidedCallbackCalled, 0, TEST_LOCATION ); + DALI_TEST_CHECK(gResponsePolicyDecisionInstance == 0); view.LoadUrl( TEST_URL1 ); Test::EmitGlobalTimerSignal(); - DALI_TEST_EQUALS( gRequestInterceptorCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 ); + DALI_TEST_EQUALS( gResponsePolicyDecidedCallbackCalled, 1, TEST_LOCATION ); - // check request interceptor. - DALI_TEST_CHECK(gRequestInterceptorInstance != 0); - DALI_TEST_CHECK(gRequestInterceptorInstance->Ignore()); - DALI_TEST_CHECK(gRequestInterceptorInstance->SetResponseStatus(400, "error")); - DALI_TEST_CHECK(gRequestInterceptorInstance->AddResponseHeader("key", "value")); - DALI_TEST_CHECK(gRequestInterceptorInstance->AddResponseBody("test", 4)); + // check response policy decision & its frame. + DALI_TEST_CHECK(gResponsePolicyDecisionInstance != 0); std::string testUrl("http://test.html"); - DALI_TEST_EQUALS(gRequestInterceptorInstance->GetUrl(), testUrl, TEST_LOCATION); + DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetUrl(), testUrl, TEST_LOCATION); + std::string testCookie("test:abc"); + DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetCookie(), testCookie, TEST_LOCATION); + Dali::WebEnginePolicyDecision::DecisionType testDecisionType = Dali::WebEnginePolicyDecision::DecisionType::USE; + DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetDecisionType(), testDecisionType, TEST_LOCATION); + std::string testResponseMime("txt/xml"); + DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetResponseMime(), testResponseMime, TEST_LOCATION); + int32_t ResponseStatusCode = 500; + DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetResponseStatusCode(), ResponseStatusCode, TEST_LOCATION); + Dali::WebEnginePolicyDecision::NavigationType testNavigationType = Dali::WebEnginePolicyDecision::NavigationType::LINK_CLICKED; + DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetNavigationType(), testNavigationType, TEST_LOCATION); + std::string testScheme("test"); + DALI_TEST_EQUALS(gResponsePolicyDecisionInstance->GetScheme(), testScheme, TEST_LOCATION); + DALI_TEST_CHECK(gResponsePolicyDecisionInstance->Use()); + DALI_TEST_CHECK(gResponsePolicyDecisionInstance->Ignore()); + DALI_TEST_CHECK(gResponsePolicyDecisionInstance->Suspend()); - gRequestInterceptorInstance = nullptr; + Dali::WebEngineFrame* webFrame = &(gResponsePolicyDecisionInstance->GetFrame()); + DALI_TEST_CHECK(webFrame); + DALI_TEST_CHECK(webFrame->IsMainFrame()); + + gResponsePolicyDecisionInstance = nullptr; END_TEST; } -int UtcDaliWebViewPolicyDecisionRequest(void) +int UtcDaliWebViewHitTest(void) { ToolkitTestApplication application; @@ -1295,43 +1285,38 @@ int UtcDaliWebViewPolicyDecisionRequest(void) DALI_TEST_CHECK( view ); // load url. - ConnectionTracker* testTracker = new ConnectionTracker(); - view.PolicyDecisionSignal().Connect( &OnPolicyDecisionRequest ); - bool signal1 = false; - view.ConnectSignal( testTracker, "policyDecision", CallbackFunctor(&signal1) ); - DALI_TEST_EQUALS( gPolicyDecisionCallbackCalled, 0, TEST_LOCATION ); - DALI_TEST_CHECK(gPolicyDecisionInstance == 0); - view.LoadUrl( TEST_URL1 ); - Test::EmitGlobalTimerSignal(); - DALI_TEST_EQUALS( gPolicyDecisionCallbackCalled, 1, TEST_LOCATION ); - DALI_TEST_CHECK( signal1 ); - // check policy decision & its frame. - DALI_TEST_CHECK(gPolicyDecisionInstance != 0); - std::string testUrl("http://test.html"); - DALI_TEST_EQUALS(gPolicyDecisionInstance->GetUrl(), testUrl, TEST_LOCATION); - std::string testCookie("test:abc"); - DALI_TEST_EQUALS(gPolicyDecisionInstance->GetCookie(), testCookie, TEST_LOCATION); - Dali::WebEnginePolicyDecision::DecisionType testDecisionType = Dali::WebEnginePolicyDecision::DecisionType::USE; - DALI_TEST_EQUALS(gPolicyDecisionInstance->GetDecisionType(), testDecisionType, TEST_LOCATION); - std::string testResponseMime("txt/xml"); - DALI_TEST_EQUALS(gPolicyDecisionInstance->GetResponseMime(), testResponseMime, TEST_LOCATION); - int32_t ResponseStatusCode = 500; - DALI_TEST_EQUALS(gPolicyDecisionInstance->GetResponseStatusCode(), ResponseStatusCode, TEST_LOCATION); - Dali::WebEnginePolicyDecision::NavigationType testNavigationType = Dali::WebEnginePolicyDecision::NavigationType::LINK_CLICKED; - DALI_TEST_EQUALS(gPolicyDecisionInstance->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::WebEngineFrame* webFrame = &(gPolicyDecisionInstance->GetFrame()); - DALI_TEST_CHECK(webFrame); - DALI_TEST_CHECK(webFrame->IsMainFrame()); - - gPolicyDecisionInstance = nullptr; + // sync hit test. + std::unique_ptr hitTest = view.CreateHitTest(100, 100, Dali::WebEngineHitTest::HitTestMode::DEFAULT); + DALI_TEST_CHECK(hitTest != 0); + DALI_TEST_EQUALS(hitTest->GetResultContext(), Dali::WebEngineHitTest::ResultContext::DOCUMENT, TEST_LOCATION); + std::string testLinkUri("http://test.html"); + DALI_TEST_EQUALS(hitTest->GetLinkUri(), testLinkUri, TEST_LOCATION); + std::string testLinkTitle("test"); + DALI_TEST_EQUALS(hitTest->GetLinkTitle(), testLinkTitle, TEST_LOCATION); + std::string testLinkLabel("label"); + DALI_TEST_EQUALS(hitTest->GetLinkLabel(), testLinkLabel, TEST_LOCATION); + std::string testImageUri("http://test.jpg"); + DALI_TEST_EQUALS(hitTest->GetImageUri(), testImageUri, TEST_LOCATION); + std::string testMediaUri("http://test.mp4"); + DALI_TEST_EQUALS(hitTest->GetMediaUri(), testMediaUri, TEST_LOCATION); + std::string testTagName("img"); + DALI_TEST_EQUALS(hitTest->GetTagName(), testTagName, TEST_LOCATION); + std::string testNodeValue("test"); + DALI_TEST_EQUALS(hitTest->GetNodeValue(), testNodeValue, TEST_LOCATION); + Dali::Property::Map testMap = hitTest->GetAttributes(); + DALI_TEST_EQUALS(testMap.Count(), 0, TEST_LOCATION); + std::string testImageFileNameExtension("jpg"); + DALI_TEST_EQUALS(hitTest->GetImageFileNameExtension(), testImageFileNameExtension, TEST_LOCATION); + Dali::PixelData testImageBuffer = hitTest->GetImageBuffer(); + DALI_TEST_CHECK((int)testImageBuffer.GetWidth() == 2 && (int)testImageBuffer.GetHeight() == 2); + + // async... + bool result = view.CreateHitTestAsynchronously(100, 100, Dali::WebEngineHitTest::HitTestMode::DEFAULT, &OnHitTestCreated); + DALI_TEST_CHECK(result); + Test::EmitGlobalTimerSignal(); + DALI_TEST_EQUALS( gHitTestCreatedCallbackCalled, 1, TEST_LOCATION ); END_TEST; } @@ -1455,6 +1440,7 @@ int UtcDaliWebViewMethodsForCoverage(void) []( const std::string& arg ) { } ); + view.SetTtsFocus(true); DALI_TEST_CHECK( view ); @@ -1476,9 +1462,15 @@ int UtcDaliWebBackForwardListCheckItem(void) unsigned int itemCount = bfList->GetItemCount(); DALI_TEST_CHECK( itemCount == 1 ) - Dali::Toolkit::WebBackForwardListItem* citem = bfList->GetCurrentItem(); + std::unique_ptr citem = bfList->GetCurrentItem(); DALI_TEST_CHECK( citem != 0 ); + std::unique_ptr citemP = bfList->GetPreviousItem(); + DALI_TEST_CHECK( citemP != 0 ); + + std::unique_ptr citemN = bfList->GetNextItem(); + DALI_TEST_CHECK( citemN != 0 ); + const std::string kDefaultUrl( "http://url" ); std::string testValue = citem->GetUrl(); DALI_TEST_EQUALS( testValue, kDefaultUrl, TEST_LOCATION ); @@ -1491,9 +1483,15 @@ int UtcDaliWebBackForwardListCheckItem(void) testValue = citem->GetOriginalUrl(); DALI_TEST_EQUALS( testValue, kDefaultOriginalUrl, TEST_LOCATION ); - Dali::Toolkit::WebBackForwardListItem* item = bfList->GetItemAtIndex( 0 ); + std::unique_ptr item = bfList->GetItemAtIndex( 0 ); DALI_TEST_CHECK( item != 0 ); + std::vector> vecBack = bfList->GetBackwardItems(-1); + DALI_TEST_CHECK( vecBack.size() == 1 ); + + std::vector> vecForward = bfList->GetForwardItems(-1); + DALI_TEST_CHECK( vecForward.size() == 1 ); + END_TEST; } @@ -1512,14 +1510,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(); @@ -1530,6 +1531,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 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; } @@ -1575,7 +1611,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); @@ -1603,6 +1639,47 @@ int UtcDaliWebContextGetWebDatabaseStorageOrigins(void) END_TEST; } +int UtcDaliWebContextHttpRequestInterceptor(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + Dali::Toolkit::WebContext* context = view.GetContext(); + DALI_TEST_CHECK( context != 0 ) + + // load url. + context->RegisterRequestInterceptedCallback(&OnRequestIntercepted); + DALI_TEST_EQUALS(gRequestInterceptedCallbackCalled, 0, TEST_LOCATION); + DALI_TEST_CHECK(gRequestInterceptorInstance == 0); + + Test::EmitGlobalTimerSignal(); + DALI_TEST_EQUALS( gRequestInterceptedCallbackCalled, 1, TEST_LOCATION ); + + // check request interceptor. + DALI_TEST_CHECK(gRequestInterceptorInstance != 0); + DALI_TEST_CHECK(gRequestInterceptorInstance->Ignore()); + DALI_TEST_CHECK(gRequestInterceptorInstance->SetResponseStatus(400, "error")); + DALI_TEST_CHECK(gRequestInterceptorInstance->AddResponseHeader("key1", "value1")); + Dali::Property::Map testHeaders; + testHeaders.Insert("key2", "value2"); + DALI_TEST_CHECK(gRequestInterceptorInstance->AddResponseHeaders(testHeaders)); + DALI_TEST_CHECK(gRequestInterceptorInstance->AddResponseBody("test", 4)); + DALI_TEST_CHECK(gRequestInterceptorInstance->AddResponse("key:value", "test", 4)); + DALI_TEST_CHECK(gRequestInterceptorInstance->WriteResponseChunk("test", 4)); + std::string testUrl("http://test.html"); + DALI_TEST_EQUALS(gRequestInterceptorInstance->GetUrl(), testUrl, TEST_LOCATION); + std::string testMethod("GET"); + DALI_TEST_EQUALS(gRequestInterceptorInstance->GetMethod(), testMethod, TEST_LOCATION); + Dali::Property::Map resultHeaders = gRequestInterceptorInstance->GetHeaders(); + DALI_TEST_EQUALS(resultHeaders.Count(), 2, TEST_LOCATION); + + gRequestInterceptorInstance = nullptr; + + END_TEST; +} + // test cases for web cookie manager. int UtcDaliWebCookieManagerGetSetCookieAcceptPolicy(void) @@ -1633,6 +1710,23 @@ int UtcDaliWebCookieManagerGetSetCookieAcceptPolicy(void) END_TEST; } +int UtcDaliWebCookieManagerChangesWatch(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager(); + DALI_TEST_CHECK( cookieManager != 0 ) + + cookieManager->ChangesWatch(&OnChangesWatch); + Test::EmitGlobalTimerSignal(); + DALI_TEST_EQUALS( gCookieManagerChangsWatchCallbackCalled, 1, TEST_LOCATION ); + + END_TEST; +} + // test cases for web settings. int UtcDaliWebSettingsGetSetDefaultFontSize(void) @@ -2144,3 +2238,94 @@ int UtcDaliWebSettingsGetSetDefaultTextEncodingName(void) END_TEST; } +int UtcDaliWebSettingsSetViewportMetaTag(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + Dali::Toolkit::WebSettings* settings = view.GetSettings(); + DALI_TEST_CHECK( settings != 0 ) + + // Check the value is true or not + bool value = settings->SetViewportMetaTag(true); + DALI_TEST_CHECK( value ); + + END_TEST; +} + +int UtcDaliWebSettingsSetForceZoom(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + Dali::Toolkit::WebSettings* settings = view.GetSettings(); + DALI_TEST_CHECK( settings != 0 ) + + // Check the value is true or not + bool value = settings->SetForceZoom(true); + DALI_TEST_CHECK( value ); + + value = settings->IsZoomForced(); + DALI_TEST_CHECK( value ); + + END_TEST; +} + +int UtcDaliWebSettingsSetTextZoomEnabled(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + Dali::Toolkit::WebSettings* settings = view.GetSettings(); + DALI_TEST_CHECK( settings != 0 ) + + // Check the value is true or not + bool value = settings->SetTextZoomEnabled(true); + DALI_TEST_CHECK( value ); + + value = settings->IsTextZoomEnabled(); + DALI_TEST_CHECK( value ); + + END_TEST; +} + +int UtcDaliWebSettingsSetExtraFeature(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + Dali::Toolkit::WebSettings* settings = view.GetSettings(); + DALI_TEST_CHECK( settings != 0 ) + + // Check the value is true or not + settings->SetExtraFeature("test", true); + bool value = settings->IsExtraFeatureEnabled("test"); + DALI_TEST_CHECK( value ); + + END_TEST; +} + +int UtcDaliWebViewGetPlainText(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK(view); + + view.LoadUrl(TEST_URL1); + + view.GetPlainTextAsynchronously(&OnPlainTextReceived); + Test::EmitGlobalTimerSignal(); + DALI_TEST_EQUALS(gPlainTextReceivedCallbackCalled, 1, TEST_LOCATION); + + END_TEST; +} +