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