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=28863cf503584472589c10b04f2e8b110e42e8ce;hp=d9c34a615002c0640b1f6678762f8fe0fe6f025d;hb=8d7facdc053ca256566f8e91c180b9027692ef2a;hpb=7b08154a523fef2ffdd66f30eaf909329ac9cd5c diff --git a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp index d9c34a6..28863cf 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-WebView.cpp @@ -24,10 +24,16 @@ #include #include #include +#include +#include #include +#include +#include +#include +#include +#include #include - using namespace Dali; using namespace Toolkit; @@ -39,6 +45,7 @@ const char* const TEST_URL2( "http://www.somewhere.valid2.com" ); static int gPageLoadStartedCallbackCalled = 0; static int gPageLoadFinishedCallbackCalled = 0; +static int gScrollEdgeReachedCallbackCalled = 0; static int gEvaluateJavaScriptCallbackCalled = 0; static bool gTouched = false; @@ -66,6 +73,11 @@ static void OnPageLoadFinished( WebView view, const std::string& url ) gPageLoadFinishedCallbackCalled++; } +static void OnScrollEdgeReached( WebView view, Dali::WebEnginePlugin::ScrollEdge edge ) +{ + gScrollEdgeReachedCallbackCalled++; +} + static void OnPageLoadError( WebView view, const std::string& url, WebView::LoadErrorCode errorCode ) { } @@ -201,8 +213,6 @@ int UtcDaliWebViewPageNavigation(void) view.Reload(); view.StopLoading(); view.ClearHistory(); - view.ClearCache(); - view.ClearCookies(); Test::EmitGlobalTimerSignal(); DALI_TEST_CHECK( !view.CanGoBack() ); DALI_TEST_CHECK( !view.CanGoForward() ); @@ -280,83 +290,119 @@ int UtcDaliWebViewFocusGainedAndLost(void) END_TEST; } -int UtcDaliWebViewProperty1(void) +int UtcDaliWebViewMove(void) { - // URL ToolkitTestApplication application; WebView view = WebView::New(); DALI_TEST_CHECK( view ); - std::string local; - view.SetProperty( WebView::Property::URL, TEST_URL1 ); - Property::Value val = view.GetProperty( WebView::Property::URL ); - DALI_TEST_CHECK( val.Get( local ) ); - DALI_TEST_EQUALS( local, TEST_URL1, TEST_LOCATION ); + 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( Actor::Property::POSITION ); + DALI_TEST_EQUALS( viewPos, Vector3( 100, 100, 0 ), TEST_LOCATION ); END_TEST; } -int UtcDaliWebViewProperty2(void) +int UtcDaliWebViewPropertyVideoHole(void) { - // CACHE_MODEL ToolkitTestApplication application; WebView view = WebView::New(); DALI_TEST_CHECK( view ); - const std::string kDefaultValue = "DOCUMENT_VIEWER"; - const WebView::CacheModel::Type kTestEnum = WebView::CacheModel::PRIMARY_WEB_BROWSER; - const std::string kTestValue = "PRIMARY_WEB_BROWSER"; + const bool kDefaultValue = true; + const bool kTestValue = false; // Check default value - std::string output; - Property::Value value = view.GetProperty( WebView::Property::CACHE_MODEL ); + 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::CACHE_MODEL, kTestEnum ); - value = view.GetProperty( WebView::Property::CACHE_MODEL ); + 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 ); - view.SetProperty( WebView::Property::CACHE_MODEL, kTestValue ); - value = view.GetProperty( WebView::Property::CACHE_MODEL ); - DALI_TEST_CHECK( value.Get( output ) ); - DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + END_TEST; +} + +int UtcDaliWebViewGetWebBackForwardList(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList(); + DALI_TEST_CHECK( bfList != 0 ); END_TEST; } -int UtcDaliWebViewProperty3(void) +int UtcDaliWebViewGetWebContext(void) { - // COOKIE_ACCEPT_POLICY ToolkitTestApplication application; WebView view = WebView::New(); DALI_TEST_CHECK( view ); - const std::string kDefaultValue = "NO_THIRD_PARTY"; - const WebView::CookieAcceptPolicy::Type kTestEnum = WebView::CookieAcceptPolicy::NEVER; - const std::string kTestValue = "NEVER"; + Dali::Toolkit::WebContext* context = view.GetContext(); + DALI_TEST_CHECK( context != 0 ); - // Check default value - std::string output; - Property::Value value = view.GetProperty( WebView::Property::COOKIE_ACCEPT_POLICY ); - DALI_TEST_CHECK( value.Get( output ) ); - DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION ); + END_TEST; +} - // Check Set/GetProperty - view.SetProperty( WebView::Property::COOKIE_ACCEPT_POLICY, kTestEnum ); - value = view.GetProperty( WebView::Property::COOKIE_ACCEPT_POLICY ); - DALI_TEST_CHECK( value.Get( output ) ); - DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); +int UtcDaliWebViewGetWebCookieManager(void) +{ + ToolkitTestApplication application; - view.SetProperty( WebView::Property::COOKIE_ACCEPT_POLICY, kTestValue ); - value = view.GetProperty( WebView::Property::COOKIE_ACCEPT_POLICY ); - DALI_TEST_CHECK( value.Get( output ) ); - DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager(); + DALI_TEST_CHECK( cookieManager != 0 ); + + END_TEST; +} + +int UtcDaliWebViewGetWebSettings(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + Dali::Toolkit::WebSettings* settings = view.GetSettings(); + DALI_TEST_CHECK( settings != 0 ); + + END_TEST; +} + +int UtcDaliWebViewProperty1(void) +{ + // URL + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + std::string local; + view.SetProperty( WebView::Property::URL, TEST_URL1 ); + Property::Value val = view.GetProperty( WebView::Property::URL ); + DALI_TEST_CHECK( val.Get( local ) ); + DALI_TEST_EQUALS( local, TEST_URL1, TEST_LOCATION ); END_TEST; } @@ -387,140 +433,352 @@ int UtcDaliWebViewProperty4(void) END_TEST; } -int UtcDaliWebViewProperty5(void) +int UtcDaliWebViewProperty9(void) { - // ENABLE_JAVASCRIPT + // SCROLL_POSITION 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::ENABLE_JAVASCRIPT ); - DALI_TEST_CHECK( value.Get( output ) ); - DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION ); + Dali::Vector2 output = Dali::Vector2::ONE; + view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output ); + DALI_TEST_CHECK( output.x == 0 && output.y == 0 ); // Check Set/GetProperty - view.SetProperty( WebView::Property::ENABLE_JAVASCRIPT, kTestValue ); - value = view.GetProperty( WebView::Property::ENABLE_JAVASCRIPT ); - DALI_TEST_CHECK( value.Get( output ) ); - DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + Dali::Vector2 testValue = Dali::Vector2( 100, 100 ); + view.SetProperty( WebView::Property::SCROLL_POSITION, testValue ); + view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output ); + DALI_TEST_EQUALS( output, testValue, TEST_LOCATION ); + + // Check default value of scroll size + output = Dali::Vector2::ONE; + view.GetProperty( WebView::Property::SCROLL_SIZE ).Get( output ); + DALI_TEST_CHECK( output.x == 500 && output.y == 500 ); + + // Check default value of content size + output = Dali::Vector2::ONE; + view.GetProperty( WebView::Property::CONTENT_SIZE ).Get( output ); + DALI_TEST_CHECK( output.x == 500 && output.y == 500 ); END_TEST; } -int UtcDaliWebViewProperty6(void) +int UtcDaliWebViewPropertyTitleFavicon(void) +{ + // SCROLL_POSITION + 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) { - // LOAD_IMAGES_AUTOMATICALLY ToolkitTestApplication application; WebView view = WebView::New(); DALI_TEST_CHECK( view ); - const bool kDefaultValue = true; - const bool kTestValue = false; + // load url. + ConnectionTracker* testTracker = new ConnectionTracker(); + view.ScrollEdgeReachedSignal().Connect( &OnScrollEdgeReached ); + bool signal1 = false; + view.ConnectSignal( testTracker, "scrollEdgeReached", CallbackFunctor(&signal1) ); + DALI_TEST_EQUALS( gScrollEdgeReachedCallbackCalled, 0, TEST_LOCATION ); + + view.LoadUrl( TEST_URL1 ); + Test::EmitGlobalTimerSignal(); + + // set scroll position. + Dali::Vector2 output = Dali::Vector2::ONE; + Dali::Vector2 testValue = Dali::Vector2( 100, 100 ); + view.SetProperty( WebView::Property::SCROLL_POSITION, testValue ); + view.GetProperty( WebView::Property::SCROLL_POSITION ).Get( output ); + DALI_TEST_EQUALS( output, testValue, TEST_LOCATION ); + + // scroll by and trigger scrollEdgeReached event. + view.ScrollBy( 50, 50 ); + 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 ); + + END_TEST; +} + +int UtcDaliWebViewEvaluteJavaScript(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New( "ko-KR", "Asia/Seoul" ); + + view.LoadHtmlString( "Hello World!" ); + view.EvaluateJavaScript( "jsObject.postMessage('Hello')" ); + view.EvaluateJavaScript( "jsObject.postMessage('World')", OnEvaluateJavaScript ); + Test::EmitGlobalTimerSignal(); + + DALI_TEST_EQUALS( gEvaluateJavaScriptCallbackCalled, 1, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliWebViewMethodsForCoverage(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New( "ko-KR", "Asia/Seoul" ); + + view.LoadHtmlString( "Hello World!" ); + view.AddJavaScriptMessageHandler( "jsObject", + []( const std::string& arg ) { + } + ); + + DALI_TEST_CHECK( view ); + + END_TEST; +} + +// test cases for web backforward list. + +int UtcDaliWebBackForwardListCheckItem(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); + + Dali::Toolkit::WebBackForwardList* bfList = view.GetBackForwardList(); + DALI_TEST_CHECK( bfList != 0 ) + + unsigned int itemCount = bfList->GetItemCount(); + DALI_TEST_CHECK( itemCount == 1 ) + + Dali::Toolkit::WebBackForwardListItem* citem = bfList->GetCurrentItem(); + DALI_TEST_CHECK( citem != 0 ); + + const std::string kDefaultUrl( "http://url" ); + std::string testValue = citem->GetUrl(); + DALI_TEST_EQUALS( testValue, kDefaultUrl, TEST_LOCATION ); + + const std::string kDefaultTitle( "title" ); + testValue = citem->GetTitle(); + DALI_TEST_EQUALS( testValue, kDefaultTitle, TEST_LOCATION ); + + const std::string kDefaultOriginalUrl( "http://originalurl" ); + testValue = citem->GetOriginalUrl(); + DALI_TEST_EQUALS( testValue, kDefaultOriginalUrl, TEST_LOCATION ); + + Dali::Toolkit::WebBackForwardListItem* item = bfList->GetItemAtIndex( 0 ); + DALI_TEST_CHECK( item != 0 ); + + END_TEST; +} + +// test cases for web context. + +int UtcDaliWebContextGetSetCacheModel(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; + + // Reset something + context->SetProxyUri( kDefaultValue ); + context->SetCertificateFilePath( kDefaultValue ); + context->DisableCache( false ); + context->SetDefaultProxyAuth( kDefaultValue, kDefaultValue ); + context->DeleteWebDatabase(); + context->DeleteWebStorage(); + context->DeleteLocalFileSystem(); + context->ClearCache(); // Check default value - bool output; - Property::Value value = view.GetProperty( WebView::Property::LOAD_IMAGES_AUTOMATICALLY ); - DALI_TEST_CHECK( value.Get( output ) ); - DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION ); + Dali::WebEngineContext::CacheModel value = context->GetCacheModel(); + DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER ); // Check Set/GetProperty - view.SetProperty( WebView::Property::LOAD_IMAGES_AUTOMATICALLY, kTestValue ); - value = view.GetProperty( WebView::Property::LOAD_IMAGES_AUTOMATICALLY ); - DALI_TEST_CHECK( value.Get( output ) ); - DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + context->SetCacheModel( Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER ); + value = context->GetCacheModel(); + DALI_TEST_CHECK( value == Dali::WebEngineContext::CacheModel::DOCUMENT_BROWSER ); END_TEST; } -int UtcDaliWebViewProperty7(void) +// test cases for web cookie manager. + +int UtcDaliWebCookieManagerGetSetCookieAcceptPolicy(void) { - // DEFAULT_TEXT_ENCODING_NAME ToolkitTestApplication application; WebView view = WebView::New(); DALI_TEST_CHECK( view ); + Dali::Toolkit::WebCookieManager* cookieManager = view.GetCookieManager(); + DALI_TEST_CHECK( cookieManager != 0 ) + const std::string kDefaultValue; - const std::string kTestValue = "UTF-8"; + + // Reset something + cookieManager->SetPersistentStorage( kDefaultValue, Dali::WebEngineCookieManager::CookiePersistentStorage::SQLITE ); + cookieManager->ClearCookies(); // Check default value - std::string output; - Property::Value value = view.GetProperty( WebView::Property::DEFAULT_TEXT_ENCODING_NAME ); - DALI_TEST_CHECK( value.Get( output ) ); - DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION ); + Dali::WebEngineCookieManager::CookieAcceptPolicy value = cookieManager->GetCookieAcceptPolicy(); + DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY ); // Check Set/GetProperty - view.SetProperty( WebView::Property::DEFAULT_TEXT_ENCODING_NAME, kTestValue ); - value = view.GetProperty( WebView::Property::DEFAULT_TEXT_ENCODING_NAME ); - DALI_TEST_CHECK( value.Get( output ) ); - DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + cookieManager->SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS ); + value = cookieManager->GetCookieAcceptPolicy(); + DALI_TEST_CHECK( value == Dali::WebEngineCookieManager::CookieAcceptPolicy::ALWAYS ); END_TEST; } -int UtcDaliWebViewProperty8(void) +// test cases for web settings. + +int UtcDaliWebSettingsGetSetDefaultFontSize(void) { - // DEFAULT_FONT_SIZE ToolkitTestApplication application; WebView view = WebView::New(); DALI_TEST_CHECK( view ); - const int kDefaultValue = 16; - const int kTestValue = 26; + Dali::Toolkit::WebSettings* settings = view.GetSettings(); + DALI_TEST_CHECK( settings != 0 ) + + // Reset something + settings->AllowMixedContents( false ); + settings->EnableSpatialNavigation( false ); + settings->EnableWebSecurity( false ); + settings->AllowFileAccessFromExternalUrl( false ); + settings->AllowScriptsOpenWindows( false ); // Check default value - int output; - Property::Value value = view.GetProperty( WebView::Property::DEFAULT_FONT_SIZE ); - DALI_TEST_CHECK( value.Get( output ) ); - DALI_TEST_EQUALS( output, kDefaultValue, TEST_LOCATION ); + int value = settings->GetDefaultFontSize(); + DALI_TEST_CHECK( value == 16 ); // Check Set/GetProperty - view.SetProperty( WebView::Property::DEFAULT_FONT_SIZE, kTestValue ); - value = view.GetProperty( WebView::Property::DEFAULT_FONT_SIZE ); - DALI_TEST_CHECK( value.Get( output ) ); - DALI_TEST_EQUALS( output, kTestValue, TEST_LOCATION ); + settings->SetDefaultFontSize( 20 ); + value = settings->GetDefaultFontSize(); + DALI_TEST_CHECK( value == 20 ); END_TEST; } -int UtcDaliWebViewEvaluteJavaScript(void) +int UtcDaliWebSettingsCheckEnableJavaScript(void) { ToolkitTestApplication application; - WebView view = WebView::New( "ko-KR", "Asia/Seoul" ); + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); - view.LoadHTMLString( "Hello World!" ); - view.EvaluateJavaScript( "jsObject.postMessage('Hello')" ); - view.EvaluateJavaScript( "jsObject.postMessage('World')", OnEvaluateJavaScript ); - Test::EmitGlobalTimerSignal(); + Dali::Toolkit::WebSettings* settings = view.GetSettings(); + DALI_TEST_CHECK( settings != 0 ) - DALI_TEST_EQUALS( gEvaluateJavaScriptCallbackCalled, 1, TEST_LOCATION ); + // Reset something + settings->AllowMixedContents( false ); + settings->EnableSpatialNavigation( false ); + settings->EnableWebSecurity( false ); + settings->AllowFileAccessFromExternalUrl( false ); + settings->AllowScriptsOpenWindows( false ); + + // Check default value is true or not + bool value = settings->IsJavaScriptEnabled(); + DALI_TEST_CHECK( value ); + + // Check Set/GetProperty + settings->EnableJavaScript( false ); + value = settings->IsJavaScriptEnabled(); + DALI_TEST_CHECK( !value ); END_TEST; } - -int UtcDaliWebViewMethodsForCoverage(void) +int UtcDaliWebSettingsCheckAllowImagesLoadAutomatically(void) { ToolkitTestApplication application; - WebView view = WebView::New( "ko-KR", "Asia/Seoul" ); + WebView view = WebView::New(); + DALI_TEST_CHECK( view ); - view.LoadHTMLString( "Hello World!" ); - view.AddJavaScriptMessageHandler( "jsObject", - []( const std::string& arg ) { - } - ); + Dali::Toolkit::WebSettings* settings = view.GetSettings(); + DALI_TEST_CHECK( settings != 0 ) + + // Reset something + settings->AllowMixedContents( false ); + settings->EnableSpatialNavigation( false ); + settings->EnableWebSecurity( false ); + settings->AllowFileAccessFromExternalUrl( false ); + settings->AllowScriptsOpenWindows( false ); + + // Check default value is true or not + bool value = settings->AreImagesLoadedAutomatically(); + DALI_TEST_CHECK( value ); + + // Check Set/GetProperty + settings->AllowImagesLoadAutomatically( false ); + value = settings->AreImagesLoadedAutomatically(); + DALI_TEST_CHECK( !value ); + + END_TEST; +} +int UtcDaliWebSettingsGetSetDefaultTextEncodingName(void) +{ + ToolkitTestApplication application; + + WebView view = WebView::New(); DALI_TEST_CHECK( view ); + Dali::Toolkit::WebSettings* settings = view.GetSettings(); + DALI_TEST_CHECK( settings != 0 ) + + const std::string kDefaultValue; + const std::string kTestValue = "UTF-8"; + + // Reset something + settings->AllowMixedContents( false ); + settings->EnableSpatialNavigation( false ); + settings->EnableWebSecurity( false ); + settings->AllowFileAccessFromExternalUrl( false ); + settings->AllowScriptsOpenWindows( false ); + + // Check default value + std::string value = settings->GetDefaultTextEncodingName(); + DALI_TEST_EQUALS( value, kDefaultValue, TEST_LOCATION ); + + // Check Set/GetProperty + settings->SetDefaultTextEncodingName( kTestValue ); + value = settings->GetDefaultTextEncodingName(); + DALI_TEST_EQUALS( value, kTestValue, TEST_LOCATION ); + END_TEST; } +