e6957df665d46f727afd8b98653f0a881d473fcc
[platform/core/uifw/dali-toolkit.git] / automated-tests / TET / dali-test-suite / item-view / utc-Dali-AlbumLayout.cpp
1 /*
2  * Copyright (c) 2014 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 <iostream>
19
20 #include <stdlib.h>
21 #include <tet_api.h>
22
23 #include <dali/dali.h>
24 #include <dali-toolkit/dali-toolkit.h>
25
26 #include <dali-toolkit-test-suite-utils.h>
27
28 using namespace Dali;
29
30 using namespace Toolkit;
31
32 using namespace std;
33
34
35 namespace
36 {
37
38 Vector3 AlbumLayoutItemSizeFunction(const Vector3& layoutSize)
39 {
40   float width = layoutSize.width * 0.2f;
41   return Vector3(width, width, width);
42 }
43
44 float AlbumLayoutAlbumRadiusFunction(const Vector3& layoutSize)
45 {
46   return layoutSize.width * 0.5f;
47 }
48 } // namespace
49
50 static void Startup();
51 static void Cleanup();
52
53 extern "C" {
54   void (*tet_startup)() = Startup;
55   void (*tet_cleanup)() = Cleanup;
56 }
57
58 static void UtcDaliAlbumLayoutNew();
59 static void UtcDaliAlbumSetAndGetItemSizeFunction();
60 static void UtcDaliAlbumSetAndGetScrollSpeedFactor();
61 static void UtcDaliAlbumSetAndGetMaximumSwipeSpeed();
62 static void UtcDaliAlbumLayoutSetAndGetItemFlickAnimationDuration();
63 static void UtcDaliAlbumSetNumOfItems();
64 static void UtcDaliAlbumSetStackNum();
65 static void UtcDaliAlbumSetPosition();
66 static void UtcDaliAlbumSetRotationX();
67 static void UtcDaliAlbumSetRotationZ();
68 static void UtcDaliAlbumSetScale();
69 static void UtcDaliAlbumSetColor();
70 static void UtcDaliAlbumSetCenterPosition();
71 static void UtcDaliAlbumSetSetCenterScale();
72 static void UtcDaliAlbumSetSetCenterColor();
73 static void UtcDaliAlbumSetStackPosition();
74 static void UtcDaliAlbumSetSetStackScale();
75 static void UtcDaliAlbumSetStackColor();
76
77 enum {
78   POSITIVE_TC_IDX = 0x01,
79   NEGATIVE_TC_IDX,
80 };
81
82 // Add test functionality for all APIs in the class (Positive and Negative)
83 extern "C" {
84   struct tet_testlist tet_testlist[] = {
85     { UtcDaliAlbumLayoutNew, POSITIVE_TC_IDX },
86     { UtcDaliAlbumSetAndGetItemSizeFunction, POSITIVE_TC_IDX },
87     { UtcDaliAlbumSetAndGetScrollSpeedFactor, POSITIVE_TC_IDX },
88     { UtcDaliAlbumSetAndGetMaximumSwipeSpeed, POSITIVE_TC_IDX },
89     { UtcDaliAlbumLayoutSetAndGetItemFlickAnimationDuration, POSITIVE_TC_IDX },
90     { UtcDaliAlbumSetNumOfItems, POSITIVE_TC_IDX },
91     { UtcDaliAlbumSetStackNum, POSITIVE_TC_IDX },
92     { UtcDaliAlbumSetPosition, POSITIVE_TC_IDX },
93     { UtcDaliAlbumSetRotationX, POSITIVE_TC_IDX },
94     { UtcDaliAlbumSetRotationZ, POSITIVE_TC_IDX },
95     { UtcDaliAlbumSetScale, POSITIVE_TC_IDX },
96     { UtcDaliAlbumSetColor, POSITIVE_TC_IDX },
97     { UtcDaliAlbumSetCenterPosition, POSITIVE_TC_IDX },
98     { UtcDaliAlbumSetSetCenterScale, POSITIVE_TC_IDX },
99     { UtcDaliAlbumSetSetCenterColor, POSITIVE_TC_IDX },
100     { UtcDaliAlbumSetStackPosition, POSITIVE_TC_IDX },
101     { UtcDaliAlbumSetSetStackScale, POSITIVE_TC_IDX },
102     { UtcDaliAlbumSetStackColor, POSITIVE_TC_IDX },
103     { NULL, 0 }
104   };
105 }
106
107 // Called only once before first test is run.
108 static void Startup()
109 {
110 }
111
112 // Called only once after last test is run
113 static void Cleanup()
114 {
115 }
116
117 static void UtcDaliAlbumLayoutNew()
118 {
119   ToolkitTestApplication application;
120
121   // Create a album layout
122   AlbumLayoutPtr albumLayout = AlbumLayout::New();
123
124   DALI_TEST_CHECK(albumLayout);
125 }
126
127 static void UtcDaliAlbumSetAndGetItemSizeFunction()
128 {
129   ToolkitTestApplication application;
130
131   // Create a album layout
132   AlbumLayoutPtr albumLayout = AlbumLayout::New();
133
134   // Set the item size function
135   albumLayout->SetItemSizeFunction(AlbumLayoutItemSizeFunction);
136
137   // Check whether we get the correct item size function
138   DALI_TEST_CHECK(albumLayout->GetItemSizeFunction() == AlbumLayoutItemSizeFunction);
139 }
140
141 static void UtcDaliAlbumSetAndGetScrollSpeedFactor()
142 {
143   ToolkitTestApplication application;
144
145   // Create a album layout
146   AlbumLayoutPtr albumLayout = AlbumLayout::New();
147
148   // Set the scroll speed factor
149   albumLayout->SetScrollSpeedFactor(0.05f);
150
151   // Check whether we get the correct scroll speed factor
152   DALI_TEST_EQUALS( albumLayout->GetScrollSpeedFactor(), 0.05f, TEST_LOCATION );
153 }
154
155 static void UtcDaliAlbumSetAndGetMaximumSwipeSpeed()
156 {
157   ToolkitTestApplication application;
158
159   // Create a album layout
160   AlbumLayoutPtr albumLayout = AlbumLayout::New();
161
162   // Set the maximum swipe speed
163   albumLayout->SetMaximumSwipeSpeed(50.0f);
164
165   // Check whether we get the correct maximum swipe speed
166   DALI_TEST_EQUALS( albumLayout->GetMaximumSwipeSpeed(), 50.0f, TEST_LOCATION );
167 }
168
169 static void UtcDaliAlbumLayoutSetAndGetItemFlickAnimationDuration()
170 {
171   ToolkitTestApplication application;
172
173   // Create a album layout
174   AlbumLayoutPtr albumLayout = AlbumLayout::New();
175
176   // Set the flick animaiton duration
177   albumLayout->SetItemFlickAnimationDuration(0.35f);
178
179   // Check whether we get the correct flick animaiton duration
180   DALI_TEST_EQUALS( albumLayout->GetItemFlickAnimationDuration(), 0.35f, TEST_LOCATION );
181 }
182
183 static void UtcDaliAlbumSetNumOfItems()
184 {
185   AlbumLayoutPtr albumLayout = AlbumLayout::New();
186
187   albumLayout->SetNumOfItems(15);
188
189   DALI_TEST_CHECK(albumLayout->GetNumOfItems() == 15);
190 }
191
192 static void UtcDaliAlbumSetStackNum()
193 {
194   AlbumLayoutPtr albumLayout = AlbumLayout::New();
195
196   albumLayout->SetStackNum(30);
197
198   DALI_TEST_CHECK(albumLayout->GetStackNum() == 30);
199 }
200
201 static void UtcDaliAlbumSetPosition()
202 {
203   AlbumLayoutPtr albumLayout = AlbumLayout::New();
204
205   std::vector<Vector3> position_list;
206
207   /*(0.0f)*/
208   Vector3 pos = Vector3(850.0f,-250.0f,0.0);
209   position_list.push_back(pos);
210
211   /*(1.0f)*/
212   pos = Vector3(700.0f,50.0f,0.0);
213   position_list.push_back(pos);
214
215   /*(2.0f)*/
216   pos = Vector3(440.0f,227.0f,0.0);
217   position_list.push_back(pos);
218
219   /*(4.0f)*/
220   pos = Vector3(-440.0f,227.0f,0.0);
221   position_list.push_back(pos);
222
223   /*(5.0f)*/
224   pos = Vector3(-700.0f,50.0f,0.0);
225   position_list.push_back(pos);
226
227   /*(6.0f)*/
228   pos = Vector3(-850.0f,-250.0f,0.0);
229   position_list.push_back(pos);
230
231   albumLayout->SetPosition(position_list);
232
233   DALI_TEST_CHECK(albumLayout->GetPosition() == position_list);
234 }
235
236 static void UtcDaliAlbumSetRotationX()
237 {
238   AlbumLayoutPtr albumLayout = AlbumLayout::New();
239
240   albumLayout->SetRotationX(Math::PI/4.0f);
241
242   DALI_TEST_CHECK(albumLayout->GetRotationX() == Math::PI/4.0f);
243 }
244
245 static void UtcDaliAlbumSetRotationZ()
246 {
247   AlbumLayoutPtr albumLayout = AlbumLayout::New();
248
249   std::vector<float> rotation_list;
250
251   /*(0.0f)*/
252   float rotate = Math::PI/6.0f;
253   rotation_list.push_back(rotate);
254
255   /*(1.0f)*/
256   rotate = 0.0f;
257   rotation_list.push_back(rotate);
258
259   /*(2.0f)*/
260   rotate = Math::PI/6.0f;
261   rotation_list.push_back(rotate);
262
263   /*(4.0f)*/
264   rotate = -Math::PI/6.0f;
265   rotation_list.push_back(rotate);
266
267   /*(5.0f)*/
268   rotate = 0.0f;
269   rotation_list.push_back(rotate);
270
271   /*(6.0f)*/
272   rotate = -Math::PI/6.0f;
273   rotation_list.push_back(rotate);
274
275   albumLayout->SetRotationZ(rotation_list);
276
277   DALI_TEST_CHECK(albumLayout->GetRotationZ() == rotation_list);
278 }
279
280 static void UtcDaliAlbumSetScale()
281 {
282   AlbumLayoutPtr albumLayout = AlbumLayout::New();
283
284   std::vector<float> scale_list;
285
286   /*(0.0f)*/
287   float scale = 1.0f;
288   scale_list.push_back(scale);
289
290   /*(1.0f)*/
291   scale = 0.0f;
292   scale_list.push_back(scale);
293
294   /*(2.0f)*/
295   scale = Math::PI/6.0f;
296   scale_list.push_back(scale);
297
298   /*(4.0f)*/
299   scale = -Math::PI/6.0f;
300   scale_list.push_back(scale);
301
302   /*(5.0f)*/
303   scale = 0.0f;
304   scale_list.push_back(scale);
305
306   /*(6.0f)*/
307   scale = -Math::PI/6.0f;
308   scale_list.push_back(scale);
309
310   albumLayout->SetScale(scale_list);
311
312   DALI_TEST_CHECK(albumLayout->GetScale() == scale_list);
313 }
314
315 static void UtcDaliAlbumSetColor()
316 {
317   // Create a album layout
318   AlbumLayoutPtr albumLayout = AlbumLayout::New();
319
320   std::vector<Vector2> color_list;
321
322   /*(0.0f)*/
323   Vector2 color = Vector2(1.0f,1.0f);
324   color_list.push_back(color);
325
326   /*(1.0f)*/
327   color = Vector2(1.0f,1.0f);
328   color_list.push_back(color);
329
330   /*(2.0f)*/
331   color = Vector2(1.0f,1.0f);
332   color_list.push_back(color);
333
334   /*(4.0f)*/
335   color = Vector2(1.0f,1.0f);
336   color_list.push_back(color);
337
338   /*(5.0f)*/
339   color = Vector2(1.0f,1.0f);
340   color_list.push_back(color);
341
342   /*(6.0f)*/
343   color = Vector2(1.0f,1.0f);
344   color_list.push_back(color);
345
346   albumLayout->SetColor(color_list);
347
348   DALI_TEST_CHECK(albumLayout->GetColor() == color_list);
349 }
350
351 static void UtcDaliAlbumSetCenterPosition()
352 {
353   AlbumLayoutPtr albumLayout = AlbumLayout::New();
354
355   albumLayout->SetCenterPosition(Vector3( 0.0f,-80.0f,100.0f));
356
357   DALI_TEST_CHECK(albumLayout->GetCenterPosition() == Vector3( 0.0f,-80.0f,100.0f));
358 }
359
360 static void UtcDaliAlbumSetSetCenterScale()
361 {
362   AlbumLayoutPtr albumLayout = AlbumLayout::New();
363
364   albumLayout->SetCenterScale(1.75f);
365
366   DALI_TEST_CHECK(albumLayout->GetCenterScale() == 1.75f);
367 }
368
369 static void UtcDaliAlbumSetSetCenterColor()
370 {
371   AlbumLayoutPtr albumLayout = AlbumLayout::New();
372
373   albumLayout->SetCenterColor(Vector2(1.0f,1.0f));
374
375   DALI_TEST_CHECK(albumLayout->GetCenterColor() == Vector2(1.0f,1.0f));
376 }
377
378 static void UtcDaliAlbumSetStackPosition()
379 {
380   AlbumLayoutPtr albumLayout = AlbumLayout::New();
381
382   albumLayout->SetStackPosition(Vector3(750.0f,-500.0f,0.0f),Vector3(-750.0f,-500.0f,0.0f));
383
384   DALI_TEST_CHECK(albumLayout->GetRightStackPosition() == Vector3(750.0f,-500.0f,0.0f) && albumLayout->GetLeftStackPosition() == Vector3(-750.0f,-500.0f,0.0f));
385 }
386
387 static void UtcDaliAlbumSetSetStackScale()
388 {
389   AlbumLayoutPtr albumLayout = AlbumLayout::New();
390
391   albumLayout->SetStackScale(1.0f,1.0f);
392
393   DALI_TEST_CHECK(albumLayout->GetRightStackScale() == 1.0f && albumLayout->GetLeftStackScale() == 1.0f);
394 }
395
396 static void UtcDaliAlbumSetStackColor()
397 {
398   AlbumLayoutPtr albumLayout = AlbumLayout::New();
399
400   albumLayout->SetStackColor(Vector2(1.0f,1.0f),Vector2(1.0f,1.0f));
401
402   DALI_TEST_CHECK(albumLayout->GetRightStackColor() == Vector2(1.0f,1.0f) && albumLayout->GetLeftStackColor() == Vector2(1.0f,1.0f));
403 }