X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Fdali-toolkit-test-utils%2Ftoolkit-web-engine.cpp;h=d6419fff6a2e24f6a4d82dc24ccc7e5d1a4304ba;hb=41c8e6862c377913d579544ee6103a6c8aa482d1;hp=372aec91d995140f9395d48ec0eb053da242fcf4;hpb=7c81ee521e33d47e386d60eb7ccf07b98073542c;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp index 372aec9..d6419ff 100755 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-web-engine.cpp @@ -18,6 +18,12 @@ #include "toolkit-timer.h" #include +#include +#include +#include +#include +#include +#include #include #include #include @@ -58,6 +64,228 @@ static void DisconnectFromGlobalSignal( bool (*func)() ) } } +class MockWebEngineContext : public Dali::WebEngineContext +{ +public: + MockWebEngineContext() + : mockModel( Dali::WebEngineContext::CacheModel::DOCUMENT_VIEWER ) + { + } + + Dali::WebEngineContext::CacheModel GetCacheModel() const override + { + return mockModel; + } + + void SetCacheModel( Dali::WebEngineContext::CacheModel cacheModel ) override + { + mockModel = cacheModel; + } + + void SetProxyUri( const std::string& uri ) override + { + } + + void SetDefaultProxyAuth( const std::string& username, const std::string& password ) override + { + } + + void SetCertificateFilePath( const std::string& certificatePath ) override + { + } + + void DeleteWebDatabase() override + { + } + + void DeleteWebStorage() override + { + } + + void DeleteLocalFileSystem() override + { + } + + void DisableCache( bool cacheDisabled ) override + { + } + + void ClearCache() override + { + } + +private: + Dali::WebEngineContext::CacheModel mockModel; +}; + +class MockWebEngineCookieManager : public Dali::WebEngineCookieManager +{ +public: + MockWebEngineCookieManager() + : mockCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy::NO_THIRD_PARTY ) + { + } + + void SetCookieAcceptPolicy( Dali::WebEngineCookieManager::CookieAcceptPolicy policy ) override + { + mockCookieAcceptPolicy = policy; + } + + Dali::WebEngineCookieManager::CookieAcceptPolicy GetCookieAcceptPolicy() const override + { + return mockCookieAcceptPolicy; + } + + void ClearCookies() override + { + } + + void SetPersistentStorage( const std::string& path, Dali::WebEngineCookieManager::CookiePersistentStorage storage ) override + { + } + +private: + Dali::WebEngineCookieManager::CookieAcceptPolicy mockCookieAcceptPolicy; +}; + +class MockWebEngineBackForwardListItem : public Dali::WebEngineBackForwardListItem +{ +public: + MockWebEngineBackForwardListItem() + : mockUrl( "http://url" ), + mockTitle( "title" ), + mockOriginalUrl( "http://originalurl" ) + { + } + + std::string GetUrl() const override + { + return mockUrl; + } + + std::string GetTitle() const override + { + return mockTitle; + } + + std::string GetOriginalUrl() const override + { + return mockOriginalUrl; + } + +private: + std::string mockUrl; + std::string mockTitle; + std::string mockOriginalUrl; +}; + +class MockWebEngineBackForwardList : public Dali::WebEngineBackForwardList +{ +public: + MockWebEngineBackForwardList( ) + : mockItem(), + pMockItem( &mockItem ) + { + } + + Dali::WebEngineBackForwardListItem& GetCurrentItem() const override + { + return *pMockItem; + } + + Dali::WebEngineBackForwardListItem& GetItemAtIndex( uint32_t index ) const override + { + return *pMockItem; + } + + uint32_t GetItemCount() const override + { + return 1; + } + +private: + MockWebEngineBackForwardListItem mockItem; + WebEngineBackForwardListItem* pMockItem; +}; + +class MockWebEngineSettings : public WebEngineSettings +{ +public: + MockWebEngineSettings() + : mockDefaultFontSize( 16 ), + mockJavaScriptEnabled( true ), + mockImageLoadedAutomatically( true ), + mockDefaultTextEncodingName() + { + } + + uint32_t GetDefaultFontSize() const override + { + return mockDefaultFontSize; + } + + void SetDefaultFontSize( uint32_t size ) override + { + mockDefaultFontSize = size; + } + + bool IsJavaScriptEnabled() const override + { + return mockJavaScriptEnabled; + } + + void EnableJavaScript( bool enabled ) override + { + mockJavaScriptEnabled = enabled; + } + + bool AreImagesLoadedAutomatically() const override + { + return mockImageLoadedAutomatically; + } + + void AllowImagesLoadAutomatically( bool automatic ) override + { + mockImageLoadedAutomatically = automatic; + } + + std::string GetDefaultTextEncodingName() const override + { + return mockDefaultTextEncodingName; + } + + void SetDefaultTextEncodingName( const std::string& defaultTextEncodingName ) override + { + mockDefaultTextEncodingName = defaultTextEncodingName; + } + + void AllowMixedContents( bool allowed ) override + { + } + + void EnableSpatialNavigation( bool enabled ) override + { + } + + void EnableWebSecurity( bool enabled ) override + { + } + + void AllowFileAccessFromExternalUrl( bool allowed ) override + { + } + + void AllowScriptsOpenWindows( bool allowed ) override + { + } + +private: + int mockDefaultFontSize; + bool mockJavaScriptEnabled; + bool mockImageLoadedAutomatically; + std::string mockDefaultTextEncodingName; +}; + class WebEngine: public Dali::BaseObject { public: @@ -65,17 +293,19 @@ public: WebEngine() : mUrl() , mCurrentPlusOnePos( 0 ) - , mCacheModel( Dali::WebEnginePlugin::CacheModel::DOCUMENT_VIEWER ) - , mCookieAcceptPolicy( Dali::WebEnginePlugin::CookieAcceptPolicy::NO_THIRD_PARTY ) , mUserAgent() - , mEnableJavaScript( true ) - , mLoadImagesAutomatically( true ) - , mDefaultTextEncodingName() - , mDefaultFontSize( 16 ) , mEvaluating( false ) + , mScrollPosition( 0, 0 ) + , mScrollSize( 500, 500 ) + , mContentSize( 500, 500 ) { gInstanceCount++; gInstance = this; + + mockWebEngineSettings = new MockWebEngineSettings(); + mockWebEngineContext = new MockWebEngineContext(); + mockWebEngineCookieManager = new MockWebEngineCookieManager(); + mockWebEngineBackForwardList = new MockWebEngineBackForwardList(); } virtual ~WebEngine() @@ -85,6 +315,31 @@ public: { gInstance = NULL; } + + delete mockWebEngineSettings; + delete mockWebEngineContext; + delete mockWebEngineCookieManager; + delete mockWebEngineBackForwardList; + } + + Dali::WebEngineSettings& GetSettings() const + { + return *mockWebEngineSettings; + } + + Dali::WebEngineContext& GetContext() const + { + return *mockWebEngineContext; + } + + Dali::WebEngineCookieManager& GetCookieManager() const + { + return *mockWebEngineCookieManager; + } + + Dali::WebEngineBackForwardList& GetBackForwardList() const + { + return *mockWebEngineBackForwardList; } void LoadUrl( const std::string& url ) @@ -98,6 +353,37 @@ public: return mUrl; } + std::string GetTitle() const + { + return std::string("title"); + } + + Dali::PixelData GetFavicon() const + { + uint8_t* faviconData = new uint8_t[ 16 ]; + + faviconData[ 0 ] = 0xff; + faviconData[ 1 ] = 0x00; + faviconData[ 2 ] = 0x00; + faviconData[ 3 ] = 0xff; + faviconData[ 4 ] = 0xff; + faviconData[ 5 ] = 0x00; + faviconData[ 6 ] = 0x00; + faviconData[ 7 ] = 0xff; + faviconData[ 8 ] = 0xff; + faviconData[ 9 ] = 0x00; + faviconData[ 10 ] = 0x00; + faviconData[ 11 ] = 0xff; + faviconData[ 12 ] = 0xff; + faviconData[ 13 ] = 0x00; + faviconData[ 14 ] = 0x00; + faviconData[ 15 ] = 0xff; + + return Dali::PixelData::New( faviconData, 16, 2, 2, + Dali::Pixel::Format::RGBA8888, + Dali::PixelData::ReleaseFunction::DELETE_ARRAY ); + } + bool CanGoForward() const { return mHistory.size() > mCurrentPlusOnePos; @@ -135,26 +421,6 @@ public: ConnectToGlobalSignal( &OnClearHistory ); } - Dali::WebEnginePlugin::CacheModel GetCacheModel() const - { - return mCacheModel; - } - - void SetCacheModel( Dali::WebEnginePlugin::CacheModel cacheModel ) - { - mCacheModel = cacheModel; - } - - Dali::WebEnginePlugin::CookieAcceptPolicy GetCookieAcceptPolicy() const - { - return mCookieAcceptPolicy; - } - - void SetCookieAcceptPolicy( Dali::WebEnginePlugin::CookieAcceptPolicy policy ) - { - mCookieAcceptPolicy = policy; - } - const std::string& GetUserAgent() const { return mUserAgent; @@ -165,44 +431,34 @@ public: mUserAgent = userAgent; } - bool IsJavaScriptEnabled() const - { - return mEnableJavaScript; - } - - void EnableJavaScript( bool enabled ) - { - mEnableJavaScript = enabled; - } - - bool AreImagesAutomaticallyLoaded() const - { - return mLoadImagesAutomatically; - } - - void LoadImagesAutomatically( bool automatic ) + void ScrollBy( int dx, int dy ) { - mLoadImagesAutomatically = automatic; + mScrollPosition += Dali::Vector2( dx, dy ); + if ( mScrollPosition.y + mScrollSize.height > mContentSize.height ) + { + gInstance->mScrollEdgeReachedSignal.Emit( Dali::WebEnginePlugin::ScrollEdge::BOTTOM ); + } } - const std::string& GetDefaultTextEncodingName() const + void SetScrollPosition( int x, int y ) { - return mDefaultTextEncodingName; + mScrollPosition.x = x; + mScrollPosition.y = y; } - void SetDefaultTextEncodingName( const std::string& defaultTextEncodingName ) + Dali::Vector2 GetScrollPosition() const { - mDefaultTextEncodingName = defaultTextEncodingName; + return mScrollPosition; } - int GetDefaultFontSize() const + Dali::Vector2 GetScrollSize() const { - return mDefaultFontSize; + return mScrollSize; } - void SetDefaultFontSize( int defaultFontSize ) + Dali::Vector2 GetContentSize() const { - mDefaultFontSize = defaultFontSize; + return mContentSize; } Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal() @@ -220,21 +476,29 @@ public: return mPageLoadErrorSignal; } + Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& ScrollEdgeReachedSignal() + { + return mScrollEdgeReachedSignal; + } + std::string mUrl; std::vector< std::string > mHistory; size_t mCurrentPlusOnePos; - Dali::WebEnginePlugin::CacheModel mCacheModel; - Dali::WebEnginePlugin::CookieAcceptPolicy mCookieAcceptPolicy; std::string mUserAgent; - bool mEnableJavaScript; - bool mLoadImagesAutomatically; - std::string mDefaultTextEncodingName; - int mDefaultFontSize; Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadStartedSignal; Dali::WebEnginePlugin::WebEnginePageLoadSignalType mPageLoadFinishedSignal; Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType mPageLoadErrorSignal; std::vector< std::function< void( const std::string& ) > > mResultCallbacks; bool mEvaluating; + + Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType mScrollEdgeReachedSignal; + Dali::Vector2 mScrollPosition; + Dali::Vector2 mScrollSize; + Dali::Vector2 mContentSize; + WebEngineBackForwardList* mockWebEngineBackForwardList; + WebEngineContext* mockWebEngineContext; + WebEngineCookieManager* mockWebEngineCookieManager; + WebEngineSettings* mockWebEngineSettings; }; inline WebEngine& GetImplementation( Dali::WebEngine& webEngine ) @@ -369,15 +633,49 @@ void WebEngine::Create( int width, int height, const std::string& locale, const { } +void WebEngine::Create( int width, int height, int argc, char** argv ) +{ +} + void WebEngine::Destroy() { } +WebEngineSettings& WebEngine::GetSettings() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetSettings(); +} + +WebEngineContext& WebEngine::GetContext() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetContext(); +} + +WebEngineCookieManager& WebEngine::GetCookieManager() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetCookieManager(); +} + +WebEngineBackForwardList& WebEngine::GetBackForwardList() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetBackForwardList(); +} + void WebEngine::LoadUrl( const std::string& url ) { return Internal::Adaptor::GetImplementation( *this ).LoadUrl( url ); } +std::string WebEngine::GetTitle() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetTitle(); +} + +Dali::PixelData WebEngine::GetFavicon() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetFavicon(); +} + const std::string& WebEngine::GetUrl() { return Internal::Adaptor::GetImplementation( *this ).GetUrl(); @@ -390,7 +688,7 @@ NativeImageInterfacePtr WebEngine::GetNativeImageSource() return sourcePtr; } -void WebEngine::LoadHTMLString( const std::string& htmlString ) +void WebEngine::LoadHtmlString( const std::string& htmlString ) { } @@ -439,37 +737,13 @@ void WebEngine::AddJavaScriptMessageHandler( const std::string& exposedObjectNam { } -void WebEngine::ClearHistory() -{ - Internal::Adaptor::GetImplementation( *this ).ClearHistory(); -} - -void WebEngine::ClearCache() -{ -} - -void WebEngine::ClearCookies() -{ -} - -Dali::WebEnginePlugin::CacheModel WebEngine::GetCacheModel() const -{ - return Internal::Adaptor::GetImplementation( *this ).GetCacheModel(); -} - -void WebEngine::SetCacheModel( Dali::WebEnginePlugin::CacheModel cacheModel ) -{ - Internal::Adaptor::GetImplementation( *this ).SetCacheModel( cacheModel ); -} - -Dali::WebEnginePlugin::CookieAcceptPolicy WebEngine::GetCookieAcceptPolicy() const +void WebEngine::ClearAllTilesResources() { - return Internal::Adaptor::GetImplementation( *this ).GetCookieAcceptPolicy(); } -void WebEngine::SetCookieAcceptPolicy( Dali::WebEnginePlugin::CookieAcceptPolicy policy ) +void WebEngine::ClearHistory() { - Internal::Adaptor::GetImplementation( *this ).SetCookieAcceptPolicy( policy ); + Internal::Adaptor::GetImplementation( *this ).ClearHistory(); } const std::string& WebEngine::GetUserAgent() const @@ -482,44 +756,29 @@ void WebEngine::SetUserAgent( const std::string& userAgent ) Internal::Adaptor::GetImplementation( *this ).SetUserAgent( userAgent ); } -bool WebEngine::IsJavaScriptEnabled() const -{ - return Internal::Adaptor::GetImplementation( *this ).IsJavaScriptEnabled(); -} - -void WebEngine::EnableJavaScript( bool enabled ) -{ - Internal::Adaptor::GetImplementation( *this ).EnableJavaScript( enabled ); -} - -bool WebEngine::AreImagesAutomaticallyLoaded() const -{ - return Internal::Adaptor::GetImplementation( *this ).AreImagesAutomaticallyLoaded(); -} - -void WebEngine::LoadImagesAutomatically( bool automatic ) +void WebEngine::ScrollBy( int dx, int dy ) { - Internal::Adaptor::GetImplementation( *this ).LoadImagesAutomatically( automatic ); + Internal::Adaptor::GetImplementation( *this ).ScrollBy( dx, dy ); } -const std::string& WebEngine::GetDefaultTextEncodingName() const +void WebEngine::SetScrollPosition( int x, int y ) { - return Internal::Adaptor::GetImplementation( *this ).GetDefaultTextEncodingName(); + Internal::Adaptor::GetImplementation( *this ).SetScrollPosition( x, y ); } -void WebEngine::SetDefaultTextEncodingName( const std::string& defaultTextEncodingName ) +Dali::Vector2 WebEngine::GetScrollPosition() const { - Internal::Adaptor::GetImplementation( *this ).SetDefaultTextEncodingName( defaultTextEncodingName ); + return Internal::Adaptor::GetImplementation( *this ).GetScrollPosition(); } -int WebEngine::GetDefaultFontSize() const +Dali::Vector2 WebEngine::GetScrollSize() const { - return Internal::Adaptor::GetImplementation( *this ).GetDefaultFontSize(); + return Internal::Adaptor::GetImplementation( *this ).GetScrollSize(); } -void WebEngine::SetDefaultFontSize( int defaultFontSize ) +Dali::Vector2 WebEngine::GetContentSize() const { - Internal::Adaptor::GetImplementation( *this ).SetDefaultFontSize( defaultFontSize ); + return Internal::Adaptor::GetImplementation( *this ).GetContentSize(); } void WebEngine::SetSize( int width, int height ) @@ -555,5 +814,10 @@ Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& WebEngine::PageLoadErro return Internal::Adaptor::GetImplementation( *this ).PageLoadErrorSignal(); } +Dali::WebEnginePlugin::WebEngineScrollEdgeReachedSignalType& WebEngine::ScrollEdgeReachedSignal() +{ + return Internal::Adaptor::GetImplementation( *this ).ScrollEdgeReachedSignal(); +} + } // namespace Dali;