X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Fdali-toolkit-test-utils%2Ftoolkit-web-engine.cpp;h=372aec91d995140f9395d48ec0eb053da242fcf4;hp=29f26b9e759b396318f1056d850bb81b6614d3aa;hb=7c81ee521e33d47e386d60eb7ccf07b98073542c;hpb=c4d99a8276061b0ceb6bac5d14fed81897def053 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 29f26b9..372aec9 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 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ #include #include #include -#include #include namespace Dali @@ -43,6 +42,7 @@ static int gInstanceCount = 0; bool OnGoBack(); bool OnGoForward(); bool OnLoadUrl(); +bool OnEvaluteJavaScript(); bool OnClearHistory(); static void ConnectToGlobalSignal( bool (*func)() ) @@ -65,6 +65,14 @@ 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 ) { gInstanceCount++; gInstance = this; @@ -73,7 +81,7 @@ public: virtual ~WebEngine() { gInstanceCount--; - if ( !gInstanceCount ) + if( !gInstanceCount ) { gInstance = NULL; } @@ -110,26 +118,123 @@ public: ConnectToGlobalSignal( &OnGoBack ); } + void EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler ) + { + if( resultHandler ) + { + if( !mEvaluating ) + { + ConnectToGlobalSignal( &OnEvaluteJavaScript ); + } + mResultCallbacks.push_back( resultHandler ); + } + } + void ClearHistory() { ConnectToGlobalSignal( &OnClearHistory ); } - Dali::WebEnginePlugin::WebEngineSignalType& PageLoadStartedSignal() + 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; + } + + void SetUserAgent( const std::string& userAgent ) + { + mUserAgent = userAgent; + } + + bool IsJavaScriptEnabled() const + { + return mEnableJavaScript; + } + + void EnableJavaScript( bool enabled ) + { + mEnableJavaScript = enabled; + } + + bool AreImagesAutomaticallyLoaded() const + { + return mLoadImagesAutomatically; + } + + void LoadImagesAutomatically( bool automatic ) + { + mLoadImagesAutomatically = automatic; + } + + const std::string& GetDefaultTextEncodingName() const + { + return mDefaultTextEncodingName; + } + + void SetDefaultTextEncodingName( const std::string& defaultTextEncodingName ) + { + mDefaultTextEncodingName = defaultTextEncodingName; + } + + int GetDefaultFontSize() const + { + return mDefaultFontSize; + } + + void SetDefaultFontSize( int defaultFontSize ) + { + mDefaultFontSize = defaultFontSize; + } + + Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadStartedSignal() { return mPageLoadStartedSignal; } - Dali::WebEnginePlugin::WebEngineSignalType& PageLoadFinishedSignal() + Dali::WebEnginePlugin::WebEnginePageLoadSignalType& PageLoadFinishedSignal() { return mPageLoadFinishedSignal; } - std::string mUrl; - std::vector< std::string > mHistory; - size_t mCurrentPlusOnePos; - Dali::WebEnginePlugin::WebEngineSignalType mPageLoadStartedSignal; - Dali::WebEnginePlugin::WebEngineSignalType mPageLoadFinishedSignal; + Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& PageLoadErrorSignal() + { + return mPageLoadErrorSignal; + } + + 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; }; inline WebEngine& GetImplementation( Dali::WebEngine& webEngine ) @@ -153,7 +258,7 @@ bool OnGoBack() { DisconnectFromGlobalSignal( &OnGoBack ); - if ( gInstance && gInstance->CanGoBack() ) + if( gInstance && gInstance->CanGoBack() ) { gInstance->mCurrentPlusOnePos--; } @@ -164,7 +269,7 @@ bool OnGoForward() { DisconnectFromGlobalSignal( &OnGoForward ); - if ( gInstance && gInstance->CanGoForward() ) + if( gInstance && gInstance->CanGoForward() ) { gInstance->mCurrentPlusOnePos++; } @@ -175,9 +280,9 @@ bool OnLoadUrl() { DisconnectFromGlobalSignal( &OnLoadUrl ); - if ( gInstance ) + if( gInstance ) { - if ( gInstance->mHistory.size() > gInstance->mCurrentPlusOnePos ) + if( gInstance->mHistory.size() > gInstance->mCurrentPlusOnePos ) { gInstance->mHistory.erase( gInstance->mHistory.begin() + gInstance->mCurrentPlusOnePos, gInstance->mHistory.end() ); } @@ -186,7 +291,21 @@ bool OnLoadUrl() gInstance->mPageLoadStartedSignal.Emit( gInstance->mUrl ); gInstance->mPageLoadFinishedSignal.Emit( gInstance->mUrl ); } + return false; +} + +bool OnEvaluteJavaScript() +{ + DisconnectFromGlobalSignal( &OnEvaluteJavaScript ); + if( gInstance ) + { + for( auto& func : gInstance->mResultCallbacks ) + { + func("undefined"); + } + gInstance->mResultCallbacks.clear(); + } return false; } @@ -194,7 +313,7 @@ bool OnClearHistory() { DisconnectFromGlobalSignal( &OnClearHistory ); - if ( gInstance && gInstance->mCurrentPlusOnePos ) { + if( gInstance && gInstance->mCurrentPlusOnePos ) { std::string url = gInstance->mHistory[ gInstance->mCurrentPlusOnePos - 1 ]; std::vector< std::string >().swap( gInstance->mHistory ); gInstance->mHistory.push_back( url ); @@ -283,6 +402,14 @@ void WebEngine::StopLoading() { } +void WebEngine::Suspend() +{ +} + +void WebEngine::Resume() +{ +} + bool WebEngine::CanGoForward() { return Internal::Adaptor::GetImplementation( *this ).CanGoForward(); @@ -303,8 +430,9 @@ void WebEngine::GoBack() Internal::Adaptor::GetImplementation( *this ).GoBack(); } -void WebEngine::EvaluateJavaScript( const std::string& script ) +void WebEngine::EvaluateJavaScript( const std::string& script, std::function< void( const std::string& ) > resultHandler ) { + Internal::Adaptor::GetImplementation( *this ).EvaluateJavaScript( script, resultHandler ); } void WebEngine::AddJavaScriptMessageHandler( const std::string& exposedObjectName, std::function< void(const std::string&) > handler ) @@ -320,11 +448,85 @@ 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 +{ + return Internal::Adaptor::GetImplementation( *this ).GetCookieAcceptPolicy(); +} + +void WebEngine::SetCookieAcceptPolicy( Dali::WebEnginePlugin::CookieAcceptPolicy policy ) +{ + Internal::Adaptor::GetImplementation( *this ).SetCookieAcceptPolicy( policy ); +} + +const std::string& WebEngine::GetUserAgent() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetUserAgent(); +} + +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 ) +{ + Internal::Adaptor::GetImplementation( *this ).LoadImagesAutomatically( automatic ); +} + +const std::string& WebEngine::GetDefaultTextEncodingName() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetDefaultTextEncodingName(); +} + +void WebEngine::SetDefaultTextEncodingName( const std::string& defaultTextEncodingName ) +{ + Internal::Adaptor::GetImplementation( *this ).SetDefaultTextEncodingName( defaultTextEncodingName ); +} + +int WebEngine::GetDefaultFontSize() const +{ + return Internal::Adaptor::GetImplementation( *this ).GetDefaultFontSize(); +} + +void WebEngine::SetDefaultFontSize( int defaultFontSize ) +{ + Internal::Adaptor::GetImplementation( *this ).SetDefaultFontSize( defaultFontSize ); +} + void WebEngine::SetSize( int width, int height ) { } -bool WebEngine::SendTouchEvent( const TouchData& touch ) +bool WebEngine::SendTouchEvent( const TouchEvent& touch ) { return true; } @@ -334,15 +536,24 @@ bool WebEngine::SendKeyEvent( const KeyEvent& event ) return true; } -Dali::WebEnginePlugin::WebEngineSignalType& WebEngine::PageLoadStartedSignal() +void WebEngine::SetFocus( bool focused ) +{ +} + +Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadStartedSignal() { return Internal::Adaptor::GetImplementation( *this ).PageLoadStartedSignal(); } -Dali::WebEnginePlugin::WebEngineSignalType& WebEngine::PageLoadFinishedSignal() +Dali::WebEnginePlugin::WebEnginePageLoadSignalType& WebEngine::PageLoadFinishedSignal() { return Internal::Adaptor::GetImplementation( *this ).PageLoadFinishedSignal(); } +Dali::WebEnginePlugin::WebEnginePageLoadErrorSignalType& WebEngine::PageLoadErrorSignal() +{ + return Internal::Adaptor::GetImplementation( *this ).PageLoadErrorSignal(); +} + } // namespace Dali;