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=6cacfbf2341cfc675cdeb9aba9962028dd3f44e8;hp=a311131aac355e4e81954ac5eb61284a9cc0e0f6;hb=64b92adb4035ab57f5ad265e0676a8ca8a23c64b;hpb=cea4ca5eb2991a5845dd498e20c22cd178106ecb diff --git a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp index a311131..6cacfbf 100755 --- a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp @@ -24,11 +24,15 @@ #include #include #include +#include +#include #include #include #include #include #include +#include +#include #include #include #include @@ -84,6 +88,17 @@ static int gSslCertificateChangedCallbackCalled = 0; static std::shared_ptr gSslCertificateInstance = nullptr; static int gHttpAuthHandlerCallbackCalled = 0; static std::shared_ptr gHttpAuthInstance = nullptr; +static int gSecurityOriginsAcquiredCallbackCalled = 0; +static int gStorageUsageAcquiredCallbackCalled = 0; +static int gFormPasswordsAcquiredCallbackCalled = 0; +static int gDownloadStartedCallbackCalled = 0; +static int gMimeOverriddenCallbackCalled = 0; +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; struct CallbackFunctor { @@ -234,6 +249,48 @@ static void OnHttpAuthHandler( WebView view, std::shared_ptr>& origins) +{ + gSecurityOriginsAcquiredCallbackCalled++; + gSecurityOriginList.clear(); + gSecurityOriginList.swap(origins); +} + +static void OnStorageUsageAcquired(uint64_t usage) +{ + gStorageUsageAcquiredCallbackCalled++; +} + +static void OnFormPasswordsAcquired(std::vector>& passwords) +{ + gFormPasswordsAcquiredCallbackCalled++; + gPasswordDataList.clear(); + gPasswordDataList.swap(passwords); +} + +static void OnDownloadStarted(const std::string& url) +{ + gDownloadStartedCallbackCalled++; +} + +static bool OnMimeOverridden(const std::string&, const std::string&, std::string&) +{ + gMimeOverriddenCallbackCalled++; + return false; +} + +static void OnContextMenuCustomized(WebView view, std::shared_ptr menu) +{ + gContextMenuCustomizedCallbackCalled++; + gContextMenuInstance = std::move(menu); +} + +static void OnContextMenuItemSelected(WebView view, std::shared_ptr item) +{ + gContextMenuItemSelectedCallbackCalled++; + gContextMenuItemInstance = std::move(item); +} + } // namespace void web_view_startup(void) @@ -997,6 +1054,67 @@ int UtcDaliWebViewPropertyTitleFavicon(void) END_TEST; } +int UtcDaliWebViewContextMenuCustomizedAndItemSelected(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + 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.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 ); + + // check context meun & its items. + DALI_TEST_CHECK(gContextMenuInstance != 0); + std::unique_ptr item = gContextMenuInstance->GetItemAt(0); + DALI_TEST_CHECK(item.get() != 0); + std::vector> itemList = gContextMenuInstance->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::WebEngineContextMenuItem::ItemTag testItemTag = Dali::WebEngineContextMenuItem::ItemTag::NO_ACTION; + DALI_TEST_EQUALS(gContextMenuItemInstance->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()); + std::string testLinkUrl("http://test.html"); + DALI_TEST_EQUALS(gContextMenuItemInstance->GetLinkUrl(), testLinkUrl, TEST_LOCATION); + std::string testImageUrl("http://test.jpg"); + DALI_TEST_EQUALS(gContextMenuItemInstance->GetImageUrl(), testImageUrl, TEST_LOCATION); + std::string testTitle("title"); + DALI_TEST_EQUALS(gContextMenuItemInstance->GetTitle(), testTitle, TEST_LOCATION); + DALI_TEST_CHECK(gContextMenuItemInstance->GetParentMenu().get() == 0); + + gContextMenuInstance = nullptr; + gContextMenuItemInstance = nullptr; + + END_TEST; +} + int UtcDaliWebViewScrollBy(void) { ToolkitTestApplication application; @@ -1409,8 +1527,8 @@ int UtcDaliWebContextGetSetCacheModel(void) context->SetCertificateFilePath( kDefaultValue ); context->DisableCache( false ); context->SetDefaultProxyAuth( kDefaultValue, kDefaultValue ); - context->DeleteWebDatabase(); - context->DeleteWebStorage(); + context->DeleteAllWebDatabase(); + context->DeleteAllWebStorage(); context->DeleteLocalFileSystem(); context->ClearCache(); @@ -1426,6 +1544,76 @@ int UtcDaliWebContextGetSetCacheModel(void) END_TEST; } +int UtcDaliWebContextGetWebDatabaseStorageOrigins(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + Dali::Toolkit::WebContext* context = view.GetContext(); + DALI_TEST_CHECK( context != 0 ) + + std::string kDefaultValue; + + // get origins of web database + bool result = context->GetWebDatabaseOrigins(&OnSecurityOriginsAcquired); + DALI_TEST_CHECK( result ); + + Test::EmitGlobalTimerSignal(); + DALI_TEST_EQUALS( gSecurityOriginsAcquiredCallbackCalled, 1, TEST_LOCATION ); + DALI_TEST_CHECK(gSecurityOriginList.size() == 1); + + Dali::WebEngineSecurityOrigin* origin = gSecurityOriginList[0].get(); + DALI_TEST_CHECK( origin ); + + result = context->DeleteWebDatabase(*origin); + DALI_TEST_CHECK( result ); + + // get origins of web storage + result = context->GetWebStorageOrigins(&OnSecurityOriginsAcquired); + DALI_TEST_CHECK( result ); + + Test::EmitGlobalTimerSignal(); + DALI_TEST_EQUALS( gSecurityOriginsAcquiredCallbackCalled, 2, TEST_LOCATION ); + DALI_TEST_CHECK(gSecurityOriginList.size() == 1); + + origin = gSecurityOriginList[0].get(); + DALI_TEST_CHECK( origin ); + + result = context->GetWebStorageUsageForOrigin(*origin, &OnStorageUsageAcquired); + DALI_TEST_CHECK( result ); + Test::EmitGlobalTimerSignal(); + DALI_TEST_EQUALS( gStorageUsageAcquiredCallbackCalled, 1, TEST_LOCATION ); + + result = context->DeleteWebStorageOrigin(*origin); + DALI_TEST_CHECK( result ); + + result = context->DeleteApplicationCache(*origin); + DALI_TEST_CHECK( result ); + + // form passwords, download state, mime type. + context->GetFormPasswordList(&OnFormPasswordsAcquired); + Test::EmitGlobalTimerSignal(); + DALI_TEST_EQUALS(gFormPasswordsAcquiredCallbackCalled, 1, TEST_LOCATION); + DALI_TEST_CHECK(gPasswordDataList.size() == 1); + DALI_TEST_EQUALS(gPasswordDataList[0]->url, "http://test.html", TEST_LOCATION); + DALI_TEST_CHECK(gPasswordDataList[0]->useFingerprint == false); + + context->RegisterDownloadStartedCallback(&OnDownloadStarted); + Test::EmitGlobalTimerSignal(); + DALI_TEST_EQUALS(gDownloadStartedCallbackCalled, 1, TEST_LOCATION); + + context->RegisterMimeOverriddenCallback(&OnMimeOverridden); + Test::EmitGlobalTimerSignal(); + DALI_TEST_EQUALS(gMimeOverriddenCallbackCalled, 1, TEST_LOCATION); + + gSecurityOriginList.clear(); + gPasswordDataList.clear(); + + END_TEST; +} + // test cases for web cookie manager. int UtcDaliWebCookieManagerGetSetCookieAcceptPolicy(void)