1 #ifndef __DALI_TEST_PLATFORM_ABSTRACTION_H__
2 #define __DALI_TEST_PLATFORM_ABSTRACTION_H__
5 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
26 #include <dali/public-api/common/set-wrapper.h>
27 #include <dali/integration-api/platform-abstraction.h>
29 #include "test-trace-call-stack.h"
36 * Concrete implementation of the platform abstraction class.
38 class DALI_IMPORT_API TestPlatformAbstraction : public Dali::Integration::PlatformAbstraction
46 Integration::ResourceId loadedId;
47 Integration::ResourceTypeId loadedType;
48 Integration::ResourcePointer loadedResource;
51 Integration::ResourceId loadFailedId;
52 Integration::ResourceFailure loadFailure;
55 Integration::ResourceId savedId;
56 Integration::ResourceTypeId savedType;
59 Integration::ResourceId saveFailedId;
60 Integration::ResourceFailure saveFailure;
65 inline LoadFileResult()
72 std::vector< unsigned char> buffer;
78 TestPlatformAbstraction();
83 virtual ~TestPlatformAbstraction();
86 * @copydoc PlatformAbstraction::GetTimeMicroseconds()
88 virtual void GetTimeMicroseconds(unsigned int &seconds, unsigned int µSeconds);
91 * @copydoc PlatformAbstraction::Suspend()
93 virtual void Suspend();
96 * @copydoc PlatformAbstraction::Resume()
98 virtual void Resume();
100 virtual void GetClosestImageSize( const std::string& filename,
101 const ImageAttributes& attributes,
102 Vector2& closestSize);
104 virtual void GetClosestImageSize( Integration::ResourcePointer resourceBuffer,
105 const ImageAttributes& attributes,
106 Vector2& closestSize);
109 * @copydoc PlatformAbstraction::LoadResource()
111 virtual void LoadResource(const Integration::ResourceRequest& request);
114 * @copydoc PlatformAbstraction::LoadResourceSynchronously()
116 virtual Integration::ResourcePointer LoadResourceSynchronously( const Integration::ResourceType& resourceType, const std::string& resourcePath );
119 * @copydoc PlatformAbstraction::SaveResource()
121 virtual void SaveResource(const Integration::ResourceRequest& request);
124 * @copydoc PlatformAbstraction::CancelLoad()
126 virtual void CancelLoad(Integration::ResourceId id, Integration::ResourceTypeId typeId);
129 * @copydoc PlatformAbstraction::GetResources()
131 virtual void GetResources(Integration::ResourceCache& cache);
134 * @copydoc PlatformAbstraction::IsLoading()
136 virtual bool IsLoading();
139 * @copydoc PlatformAbstraction::GetDefaultFontDescription()
141 virtual void GetDefaultFontDescription( std::string& family, std::string& style ) const;
144 * @copydoc PlatformAbstraction::GetDefaultFontSize()
146 virtual int GetDefaultFontSize() const;
149 * @copydoc PlatformAbstraction::SetDpi()
151 virtual void SetDpi (unsigned int dpiHorizontal, unsigned int dpiVertical);
153 * @copydoc PlatformAbstraction::LoadFile()
155 virtual bool LoadFile( const std::string& filename, std::vector< unsigned char >& buffer ) const;
158 * @copydoc PlatformAbstraction::LoadShaderBinFile()
160 virtual bool LoadShaderBinFile( const std::string& filename, std::vector< unsigned char >& buffer ) const;
163 * @copydoc PlatformAbstraction::SaveFile()
165 virtual bool SaveFile(const std::string& filename, std::vector< unsigned char >& buffer) const;
167 virtual void JoinLoaderThreads();
169 virtual Integration::DynamicsFactory* GetDynamicsFactory();
171 public: // TEST FUNCTIONS
173 // Enumeration of Platform Abstraction methods
176 GetTimeMicrosecondsFunc,
183 LoadShaderBinFileFunc,
188 JoinLoaderThreadsFunc,
189 GetDynamicsFactoryFunc,
192 /** Call this every test */
195 inline void EnableTrace(bool enable) { mTrace.Enable(enable); }
196 inline void ResetTrace() { mTrace.Reset(); }
197 inline TraceCallStack& GetTrace() { return mTrace; }
199 bool WasCalled(TestFuncEnum func);
201 void SetGetTimeMicrosecondsResult(size_t sec, size_t usec);
203 void IncrementGetTimeResult(size_t milliseconds);
205 void SetIsLoadingResult(bool result);
207 void SetGetDefaultFontFamilyResult(std::string result);
209 void SetGetDefaultFontSizeResult(float result);
211 void SetGetFontPathResult(std::string& result);
213 void ClearReadyResources();
215 void SetResourceLoaded(Integration::ResourceId loadedId,
216 Integration::ResourceTypeId loadedType,
217 Integration::ResourcePointer loadedResource);
219 void SetResourceLoadFailed(Integration::ResourceId id,
220 Integration::ResourceFailure failure);
222 void SetResourceSaved(Integration::ResourceId savedId,
223 Integration::ResourceTypeId savedType);
225 void SetResourceSaveFailed(Integration::ResourceId id,
226 Integration::ResourceFailure failure);
228 Integration::ResourceRequest* GetRequest();
230 void DiscardRequest();
232 void SetClosestImageSize(const Vector2& size);
234 void SetLoadFileResult( bool result, std::vector< unsigned char >& buffer );
236 void SetSaveFileResult( bool result );
239 mutable TraceCallStack mTrace;
241 size_t mMicroSeconds;
242 bool mIsLoadingResult;
243 Resources mResources;
244 Integration::ResourceRequest* mRequest;
246 Vector2 mClosestSize;
248 LoadFileResult mLoadFileResult;
249 bool mSaveFileResult;
254 #endif /* __DALI_TET_PLATFORM_ABSTRACTION_H__ */