Applying changes to Scene::New()
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / test-platform-abstraction.cpp
1 /*
2  * Copyright (c) 2019 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 #include "test-platform-abstraction.h"
19 #include "dali-test-suite-utils.h"
20 #include <dali/integration-api/bitmap.h>
21
22 namespace Dali
23 {
24
25 TestPlatformAbstraction::TestPlatformAbstraction()
26 : mTrace(),
27   mIsLoadingResult( false ),
28   mClosestSize(),
29   mLoadFileResult(),
30   mSaveFileResult( false ),
31   mSynchronouslyLoadedResource(),
32   mTimerId(0),
33   mCallbackFunction(nullptr)
34 {
35   Initialize();
36 }
37
38 TestPlatformAbstraction::~TestPlatformAbstraction()
39 {
40 }
41
42 ImageDimensions TestPlatformAbstraction::GetClosestImageSize( const std::string& filename,
43                                                               ImageDimensions size,
44                                                               FittingMode::Type fittingMode,
45                                                               SamplingMode::Type samplingMode,
46                                                               bool orientationCorrection )
47 {
48   ImageDimensions closestSize = ImageDimensions( mClosestSize );
49   mTrace.PushCall("GetClosestImageSize", "");
50   return closestSize;
51 }
52
53 ImageDimensions TestPlatformAbstraction::GetClosestImageSize( Integration::ResourcePointer resourceBuffer,
54                                                    ImageDimensions size,
55                                                    FittingMode::Type fittingMode,
56                                                    SamplingMode::Type samplingMode,
57                                                    bool orientationCorrection )
58 {
59   ImageDimensions closestSize = ImageDimensions( mClosestSize );
60   mTrace.PushCall("GetClosestImageSize", "");
61   return closestSize;
62 }
63
64 Integration::ResourcePointer TestPlatformAbstraction::LoadImageSynchronously( const Integration::BitmapResourceType& resourceType, const std::string& resourcePath )
65 {
66   mTrace.PushCall("LoadResourceSynchronously", "");
67   return mSynchronouslyLoadedResource;
68 }
69
70 Integration::BitmapPtr TestPlatformAbstraction::DecodeBuffer( const Integration::BitmapResourceType& resourceType, uint8_t * buffer, size_t size )
71 {
72   mTrace.PushCall("DecodeBuffer", "");
73   return mDecodedBitmap;
74 }
75
76 bool TestPlatformAbstraction::LoadShaderBinaryFile( const std::string& filename, Dali::Vector< unsigned char >& buffer ) const
77 {
78   mTrace.PushCall("LoadShaderBinaryFile", "");
79   if( mLoadFileResult.loadResult )
80   {
81     buffer = mLoadFileResult.buffer;
82   }
83
84   return mLoadFileResult.loadResult;
85 }
86
87 /** Call this every test */
88 void TestPlatformAbstraction::Initialize()
89 {
90   mTrace.Reset();
91   mTrace.Enable(true);
92   mIsLoadingResult=false;
93   mSynchronouslyLoadedResource.Reset();
94   mDecodedBitmap.Reset();
95 }
96
97 bool TestPlatformAbstraction::WasCalled(TestFuncEnum func)
98 {
99   switch(func)
100   {
101     case LoadResourceSynchronouslyFunc:       return mTrace.FindMethod("LoadResourceSynchronously");
102     case LoadShaderBinaryFileFunc:            return mTrace.FindMethod("LoadShaderBinaryFile");
103     case SaveShaderBinaryFileFunc:            return mTrace.FindMethod("SaveShaderBinaryFile");
104   }
105   return false;
106 }
107
108 void TestPlatformAbstraction::SetIsLoadingResult(bool result)
109 {
110   mIsLoadingResult = result;
111 }
112
113 void TestPlatformAbstraction::ClearReadyResources()
114 {
115   mSynchronouslyLoadedResource.Reset();
116   mDecodedBitmap.Reset();
117 }
118
119 void TestPlatformAbstraction::SetClosestImageSize( const Vector2& size )
120 {
121   mClosestSize = ImageDimensions( static_cast<uint32_t>( size.x ), static_cast<uint32_t>( size.y ) );
122 }
123
124 void TestPlatformAbstraction::SetLoadFileResult( bool result, Dali::Vector< unsigned char >& buffer )
125 {
126   mLoadFileResult.loadResult = result;
127   if( result )
128   {
129     mLoadFileResult.buffer = buffer;
130   }
131 }
132
133 void TestPlatformAbstraction::SetSaveFileResult( bool result )
134 {
135   mSaveFileResult = result;
136 }
137
138 void TestPlatformAbstraction::SetSynchronouslyLoadedResource( Integration::ResourcePointer resource )
139 {
140   mSynchronouslyLoadedResource = resource;
141 }
142
143 void TestPlatformAbstraction::SetDecodedBitmap( Integration::BitmapPtr bitmap )
144 {
145   mDecodedBitmap = bitmap;
146 }
147
148 uint32_t TestPlatformAbstraction::StartTimer( uint32_t milliseconds, CallbackBase* callback )
149 {
150   mCallbackFunction = callback;
151   mTimerId++;
152   return mTimerId;
153 }
154
155 void TestPlatformAbstraction::TriggerTimer()
156 {
157   if (mCallbackFunction != nullptr)
158   {
159     CallbackBase::Execute( *mCallbackFunction );
160   }
161 }
162
163 void TestPlatformAbstraction::CancelTimer ( uint32_t timerId )
164 {
165   mCallbackFunction = nullptr;
166 }
167
168 } // namespace Dali