Changed all property & signal names to lowerCamelCase
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-ControlRenderer.cpp
1 /*
2  * Copyright (c) 2015 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 #include <iostream>
18 #include <stdlib.h>
19 #include <dali-toolkit-test-suite-utils.h>
20 #include <dali/devel-api/rendering/renderer.h>
21 #include <dali/devel-api/rendering/material.h>
22 #include <dali/devel-api/rendering/shader.h>
23 #include <dali-toolkit/devel-api/controls/renderer-factory/renderer-factory.h>
24
25 using namespace Dali;
26 using namespace Dali::Toolkit;
27
28 namespace
29 {
30 const char* TEST_IMAGE_FILE_NAME =  "gallery_image_01.jpg";
31 const char* TEST_NPATCH_FILE_NAME =  "gallery_image_01.9.jpg";
32 }
33
34 void dali_control_renderer_startup(void)
35 {
36   test_return_value = TET_UNDEF;
37 }
38
39 void dali_control_renderer_cleanup(void)
40 {
41   test_return_value = TET_PASS;
42 }
43
44 int UtcDaliControlRendererCopyAndAssignment(void)
45 {
46   ToolkitTestApplication application;
47   tet_infoline( "UtcDaliControlRendererCopyAndAssignment" );
48
49   RendererFactory factory = RendererFactory::Get();
50   Property::Map propertyMap;
51   propertyMap.Insert("rendererType",  "colorRenderer");
52   propertyMap.Insert("blendColor",  Color::BLUE);
53   ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap );
54
55   ControlRenderer controlRendererCopy( controlRenderer );
56   DALI_TEST_CHECK(controlRenderer == controlRendererCopy);
57
58   ControlRenderer emptyControlRenderer;
59   ControlRenderer emptyControlRendererCopy( emptyControlRenderer );
60   DALI_TEST_CHECK(emptyControlRenderer == emptyControlRendererCopy);
61
62   ControlRenderer controlRendererEquals;
63   controlRendererEquals = controlRenderer;
64   DALI_TEST_CHECK(controlRenderer == controlRendererEquals);
65
66   ControlRenderer emptyControlRendererEquals;
67   emptyControlRendererEquals = emptyControlRenderer;
68   DALI_TEST_CHECK( emptyControlRenderer == emptyControlRendererEquals );
69
70   //self assignment
71   controlRenderer = controlRenderer;
72   DALI_TEST_CHECK( controlRenderer = controlRendererCopy );
73
74   END_TEST;
75 }
76
77 int UtcDaliControlRendererSetGetDepthIndex(void)
78 {
79   ToolkitTestApplication application;
80   tet_infoline( "UtcDaliControlRendererSetDepthIndex" );
81
82   RendererFactory factory = RendererFactory::Get();
83   Property::Map propertyMap;
84   propertyMap.Insert("rendererType",  "colorRenderer");
85   propertyMap.Insert("blendColor",  Color::BLUE);
86   ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap );
87
88   controlRenderer.SetDepthIndex( 1.f );
89
90   Actor actor = Actor::New();
91   actor.SetSize(200.f, 200.f);
92   Stage::GetCurrent().Add( actor );
93   controlRenderer.SetOnStage( actor );
94
95   DALI_TEST_EQUALS( actor.GetRendererAt(0u).GetDepthIndex(), 1.f, TEST_LOCATION );
96   DALI_TEST_EQUALS( controlRenderer.GetDepthIndex(), 1.f, TEST_LOCATION );
97
98   controlRenderer.SetDepthIndex( -1.f );
99   DALI_TEST_EQUALS( actor.GetRendererAt(0u).GetDepthIndex(), -1.f, TEST_LOCATION );
100   DALI_TEST_EQUALS( controlRenderer.GetDepthIndex(), -1.f, TEST_LOCATION );
101
102   END_TEST;
103 }
104
105 int UtcDaliControlRendererSize(void)
106 {
107   ToolkitTestApplication application;
108   tet_infoline( "UtcDaliControlRendererGetNaturalSize" );
109
110   RendererFactory factory = RendererFactory::Get();
111   Vector2 rendererSize( 20.f, 30.f );
112   Vector2 naturalSize;
113
114   // color renderer
115   ControlRenderer colorRenderer = factory.GetControlRenderer( Color::MAGENTA );
116   colorRenderer.SetSize( rendererSize );
117   DALI_TEST_EQUALS( colorRenderer.GetSize(), rendererSize, TEST_LOCATION );
118   colorRenderer.GetNaturalSize(naturalSize);
119   DALI_TEST_EQUALS( naturalSize, Vector2::ZERO, TEST_LOCATION );
120
121   // image renderer
122   Image image = ResourceImage::New(TEST_IMAGE_FILE_NAME, ImageDimensions(100, 200));
123   ControlRenderer imageRenderer = factory.GetControlRenderer( image );
124   imageRenderer.SetSize( rendererSize );
125   DALI_TEST_EQUALS( imageRenderer.GetSize(), rendererSize, TEST_LOCATION );
126   imageRenderer.GetNaturalSize(naturalSize);
127   DALI_TEST_EQUALS( naturalSize, Vector2(100.f, 200.f), TEST_LOCATION );
128
129   // n patch renderer
130   TestPlatformAbstraction& platform = application.GetPlatform();
131   Vector2 testSize(80.f, 160.f);
132   platform.SetClosestImageSize(testSize);
133   image = ResourceImage::New(TEST_NPATCH_FILE_NAME);
134   ControlRenderer nPatchRenderer = factory.GetControlRenderer( image );
135   nPatchRenderer.SetSize( rendererSize );
136   DALI_TEST_EQUALS( nPatchRenderer.GetSize(), rendererSize, TEST_LOCATION );
137   nPatchRenderer.GetNaturalSize(naturalSize);
138   DALI_TEST_EQUALS( naturalSize, testSize, TEST_LOCATION );
139
140   // border renderer
141   float borderSize = 5.f;
142   ControlRenderer borderRenderer = factory.GetControlRenderer( borderSize, Color::RED );
143   borderRenderer.SetSize( rendererSize );
144   DALI_TEST_EQUALS( borderRenderer.GetSize(), rendererSize, TEST_LOCATION );
145   borderRenderer.GetNaturalSize(naturalSize);
146   DALI_TEST_EQUALS( naturalSize, Vector2::ZERO, TEST_LOCATION );
147
148   // gradient renderer
149   Property::Map propertyMap;
150   propertyMap.Insert("rendererType",  "gradientRenderer");
151   Vector2 start(-1.f, -1.f);
152   Vector2 end(1.f, 1.f);
153   propertyMap.Insert("gradientStartPosition",   start);
154   propertyMap.Insert("gradientEndPosition",   end);
155   propertyMap.Insert("gradientStopOffset",   Vector2(0.f, 1.f));
156   Property::Array stopColors;
157   stopColors.PushBack( Color::RED );
158   stopColors.PushBack( Color::GREEN );
159   propertyMap.Insert("gradientStopColor",   stopColors);
160   ControlRenderer gradientRenderer = factory.GetControlRenderer(propertyMap);
161   gradientRenderer.SetSize( rendererSize );
162   DALI_TEST_EQUALS( gradientRenderer.GetSize(), rendererSize, TEST_LOCATION );
163   gradientRenderer.GetNaturalSize(naturalSize);
164   DALI_TEST_EQUALS( naturalSize, Vector2::ZERO,TEST_LOCATION );
165
166   END_TEST;
167 }
168
169 int UtcDaliControlRendererSetOnOffStage(void)
170 {
171   ToolkitTestApplication application;
172   tet_infoline( "UtcDaliControlRendererSetDepthIndex" );
173
174   RendererFactory factory = RendererFactory::Get();
175   Property::Map propertyMap;
176   propertyMap.Insert("rendererType",  "colorRenderer");
177   propertyMap.Insert("blendColor",  Color::BLUE);
178   ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap );
179
180   Actor actor = Actor::New();
181   actor.SetSize(200.f, 200.f);
182   Stage::GetCurrent().Add( actor );
183
184   application.SendNotification();
185   application.Render(0);
186   DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
187
188   controlRenderer.SetOnStage( actor );
189   application.SendNotification();
190   application.Render(0);
191   DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
192
193   controlRenderer.SetOffStage( actor );
194   application.SendNotification();
195   application.Render(0);
196   DALI_TEST_CHECK( actor.GetRendererCount() == 0u );
197
198   END_TEST;
199 }
200
201 int UtcDaliControlRendererRemoveAndReset(void)
202 {
203   ToolkitTestApplication application;
204   tet_infoline( "intUtcDaliControlRendererRemoveAndReset" );
205
206   RendererFactory factory = RendererFactory::Get();
207
208   Actor actor = Actor::New();
209   actor.SetSize(200.f, 200.f);
210   Stage::GetCurrent().Add( actor );
211
212   ControlRenderer imageRenderer;
213   // test calling RemoveAndReset with an empty handle
214   try
215   {
216     imageRenderer.RemoveAndReset( actor );
217     tet_result(TET_PASS);
218   }
219   catch (DaliException& exception)
220   {
221     tet_result(TET_FAIL);
222   }
223
224   Image image = ResourceImage::New(TEST_IMAGE_FILE_NAME, ImageDimensions(100, 200));
225   imageRenderer = factory.GetControlRenderer(image);
226   DALI_TEST_CHECK( imageRenderer );
227
228   imageRenderer.SetOnStage( actor );
229   application.SendNotification();
230   application.Render(0);
231   DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
232
233   imageRenderer.RemoveAndReset( actor );
234   application.SendNotification();
235   application.Render(0);
236   DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); // renderer is removed from actor
237   DALI_TEST_CHECK( !imageRenderer ); // control renderer is reset
238
239   END_TEST;
240 }
241
242 int UtcDaliControlRendererGetPropertyMap1(void)
243 {
244   ToolkitTestApplication application;
245   tet_infoline( "UtcDaliControlRendererGetPropertyMap1: ColorRenderer" );
246
247   RendererFactory factory = RendererFactory::Get();
248   Property::Map propertyMap;
249   propertyMap.Insert("rendererType",  "colorRenderer");
250   propertyMap.Insert("blendColor",  Color::BLUE);
251   ControlRenderer colorRenderer = factory.GetControlRenderer( propertyMap );
252
253   Property::Map resultMap;
254   colorRenderer.CreatePropertyMap( resultMap );
255
256   Property::Value* typeValue = resultMap.Find( "rendererType",  Property::STRING );
257   DALI_TEST_CHECK( typeValue );
258   DALI_TEST_CHECK( typeValue->Get<std::string>() == "colorRenderer" );
259
260   Property::Value* colorValue = resultMap.Find( "blendColor",  Property::VECTOR4 );
261   DALI_TEST_CHECK( colorValue );
262   DALI_TEST_CHECK( colorValue->Get<Vector4>() == Color::BLUE );
263
264   // change the blend color
265   Actor actor;
266   factory.ResetRenderer( colorRenderer, actor, Color::CYAN );
267   colorRenderer.CreatePropertyMap( resultMap );
268
269   colorValue = resultMap.Find( "blendColor",  Property::VECTOR4 );
270   DALI_TEST_CHECK( colorValue );
271   DALI_TEST_CHECK( colorValue->Get<Vector4>() == Color::CYAN );
272
273   END_TEST;
274 }
275
276 int UtcDaliControlRendererGetPropertyMap2(void)
277 {
278   ToolkitTestApplication application;
279   tet_infoline( "UtcDaliControlRendererGetPropertyMap2: BorderRenderer" );
280
281   RendererFactory factory = RendererFactory::Get();
282   Property::Map propertyMap;
283   propertyMap.Insert("rendererType",  "borderRenderer");
284   propertyMap.Insert("borderColor",  Color::BLUE);
285   propertyMap.Insert("borderSize",  5.f);
286   ControlRenderer borderRenderer = factory.GetControlRenderer( propertyMap );
287
288   Property::Map resultMap;
289   borderRenderer.CreatePropertyMap( resultMap );
290
291   // check the property values from the returned map from control renderer
292   Property::Value* typeValue = resultMap.Find( "rendererType",  Property::STRING );
293   DALI_TEST_CHECK( typeValue );
294   DALI_TEST_CHECK( typeValue->Get<std::string>() == "borderRenderer" );
295
296   Property::Value* colorValue = resultMap.Find( "borderColor",  Property::VECTOR4 );
297   DALI_TEST_CHECK( colorValue );
298   DALI_TEST_CHECK( colorValue->Get<Vector4>() == Color::BLUE );
299
300   Property::Value* sizeValue = resultMap.Find( "borderSize",  Property::FLOAT );
301   DALI_TEST_CHECK( sizeValue );
302   DALI_TEST_CHECK( sizeValue->Get<float>() == 5.f );
303
304   borderRenderer = factory.GetControlRenderer( 10.f, Color::CYAN );
305   borderRenderer.CreatePropertyMap( resultMap );
306
307   typeValue = resultMap.Find( "rendererType",  Property::STRING );
308   DALI_TEST_CHECK( typeValue );
309   DALI_TEST_CHECK( typeValue->Get<std::string>() == "borderRenderer" );
310
311    colorValue = resultMap.Find( "borderColor",  Property::VECTOR4 );
312   DALI_TEST_CHECK( colorValue );
313   DALI_TEST_CHECK( colorValue->Get<Vector4>() == Color::CYAN );
314
315   colorValue = resultMap.Find( "borderSize",  Property::FLOAT );
316   DALI_TEST_CHECK( colorValue );
317   DALI_TEST_CHECK( colorValue->Get<float>() == 10.f );
318
319   END_TEST;
320 }
321
322 int UtcDaliControlRendererGetPropertyMap3(void)
323 {
324   ToolkitTestApplication application;
325   tet_infoline( "UtcDaliControlRendererGetPropertyMap3: linear GradientRenderer" );
326
327   RendererFactory factory = RendererFactory::Get();
328   DALI_TEST_CHECK( factory );
329
330   Property::Map propertyMap;
331   propertyMap.Insert("rendererType",  "gradientRenderer");
332
333   Vector2 start(-1.f, -1.f);
334   Vector2 end(1.f, 1.f);
335   propertyMap.Insert("gradientStartPosition",   start);
336   propertyMap.Insert("gradientEndPosition",   end);
337   propertyMap.Insert("gradientSpreadMethod",   "repeat");
338
339   propertyMap.Insert("gradientStopOffset",   Vector2(0.2f, 0.8f));
340
341   Property::Array stopColors;
342   stopColors.PushBack( Color::RED );
343   stopColors.PushBack( Color::GREEN );
344   propertyMap.Insert("gradientStopColor",   stopColors);
345
346   ControlRenderer gradientRenderer = factory.GetControlRenderer(propertyMap);
347
348   Property::Map resultMap;
349   gradientRenderer.CreatePropertyMap( resultMap );
350
351   // check the property values from the returned map from control renderer
352   Property::Value* value = resultMap.Find( "rendererType",  Property::STRING );
353   DALI_TEST_CHECK( value );
354   DALI_TEST_CHECK( value->Get<std::string>() == "gradientRenderer" );
355
356   value = resultMap.Find( "gradientUnits",  Property::STRING );
357   DALI_TEST_CHECK( value );
358   DALI_TEST_CHECK( value->Get<std::string>() == "objectBoundingBox" );
359
360   value = resultMap.Find( "gradientSpreadMethod",   Property::STRING );
361   DALI_TEST_CHECK( value );
362   DALI_TEST_CHECK( value->Get<std::string>() == "repeat" );
363
364   value = resultMap.Find( "gradientStartPosition",   Property::VECTOR2 );
365   DALI_TEST_CHECK( value );
366   DALI_TEST_EQUALS( value->Get<Vector2>(), start , Math::MACHINE_EPSILON_100, TEST_LOCATION );
367
368   value = resultMap.Find( "gradientEndPosition",   Property::VECTOR2 );
369   DALI_TEST_CHECK( value );
370   DALI_TEST_EQUALS( value->Get<Vector2>(), end , Math::MACHINE_EPSILON_100, TEST_LOCATION );
371
372   value = resultMap.Find( "gradientStopOffset",   Property::ARRAY );
373   DALI_TEST_CHECK( value );
374   Property::Array* offsetArray = value->GetArray();
375   DALI_TEST_CHECK( offsetArray->Count() == 2 );
376   DALI_TEST_EQUALS( offsetArray->GetElementAt(0).Get<float>(), 0.2f , Math::MACHINE_EPSILON_100, TEST_LOCATION );
377   DALI_TEST_EQUALS( offsetArray->GetElementAt(1).Get<float>(), 0.8f , Math::MACHINE_EPSILON_100, TEST_LOCATION );
378
379   value = resultMap.Find( "gradientStopColor",   Property::ARRAY );
380   DALI_TEST_CHECK( value );
381   Property::Array* colorArray = value->GetArray();
382   DALI_TEST_CHECK( colorArray->Count() == 2 );
383   DALI_TEST_EQUALS( colorArray->GetElementAt(0).Get<Vector4>(), Color::RED , Math::MACHINE_EPSILON_100, TEST_LOCATION );
384   DALI_TEST_EQUALS( colorArray->GetElementAt(1).Get<Vector4>(), Color::GREEN , Math::MACHINE_EPSILON_100, TEST_LOCATION );
385
386   END_TEST;
387 }
388
389 int UtcDaliControlRendererGetPropertyMap4(void)
390 {
391   ToolkitTestApplication application;
392   tet_infoline( "UtcDaliControlRendererGetPropertyMap4: radial GradientRenderer" );
393
394   RendererFactory factory = RendererFactory::Get();
395   DALI_TEST_CHECK( factory );
396
397   Property::Map propertyMap;
398   propertyMap.Insert("rendererType",  "gradientRenderer");
399
400   Vector2 center(100.f, 100.f);
401   float radius = 100.f;
402   propertyMap.Insert("gradientUnits",  "userSpace");
403   propertyMap.Insert("gradientCenter",  center);
404   propertyMap.Insert("gradientRadius",  radius);
405   propertyMap.Insert("gradientStopOffset",   Vector3(0.1f, 0.3f, 1.1f));
406
407   Property::Array stopColors;
408   stopColors.PushBack( Color::RED );
409   stopColors.PushBack( Color::BLACK );
410   stopColors.PushBack( Color::GREEN );
411   propertyMap.Insert("gradientStopColor",   stopColors);
412
413   ControlRenderer gradientRenderer = factory.GetControlRenderer(propertyMap);
414   DALI_TEST_CHECK( gradientRenderer );
415
416   Property::Map resultMap;
417   gradientRenderer.CreatePropertyMap( resultMap );
418
419   // check the property values from the returned map from control renderer
420   Property::Value* value = resultMap.Find( "rendererType",  Property::STRING );
421   DALI_TEST_CHECK( value );
422   DALI_TEST_CHECK( value->Get<std::string>() == "gradientRenderer" );
423
424   value = resultMap.Find( "gradientUnits",  Property::STRING );
425   DALI_TEST_CHECK( value );
426   DALI_TEST_CHECK( value->Get<std::string>() == "userSpace" );
427
428   value = resultMap.Find( "gradientSpreadMethod",   Property::STRING );
429   DALI_TEST_CHECK( value );
430   DALI_TEST_CHECK( value->Get<std::string>() == "pad" );
431
432   value = resultMap.Find( "gradientCenter",  Property::VECTOR2 );
433   DALI_TEST_CHECK( value );
434   DALI_TEST_EQUALS( value->Get<Vector2>(), center , Math::MACHINE_EPSILON_100, TEST_LOCATION );
435
436   value = resultMap.Find( "gradientRadius",  Property::FLOAT );
437   DALI_TEST_CHECK( value );
438   DALI_TEST_EQUALS( value->Get<float>(), radius , Math::MACHINE_EPSILON_100, TEST_LOCATION );
439
440   value = resultMap.Find( "gradientStopOffset",   Property::ARRAY );
441   DALI_TEST_CHECK( value );
442   Property::Array* offsetArray = value->GetArray();
443   DALI_TEST_CHECK( offsetArray->Count() == 3 );
444   DALI_TEST_EQUALS( offsetArray->GetElementAt(0).Get<float>(), 0.1f , Math::MACHINE_EPSILON_100, TEST_LOCATION );
445   DALI_TEST_EQUALS( offsetArray->GetElementAt(1).Get<float>(), 0.3f , Math::MACHINE_EPSILON_100, TEST_LOCATION );
446   // any stop value will be clamped to [0.0, 1.0];
447   DALI_TEST_EQUALS( offsetArray->GetElementAt(2).Get<float>(), 1.0f , Math::MACHINE_EPSILON_100, TEST_LOCATION );
448
449   value = resultMap.Find( "gradientStopColor",   Property::ARRAY );
450   DALI_TEST_CHECK( value );
451   Property::Array* colorArray = value->GetArray();
452   DALI_TEST_CHECK( colorArray->Count() == 3 );
453   DALI_TEST_EQUALS( colorArray->GetElementAt(0).Get<Vector4>(), Color::RED , Math::MACHINE_EPSILON_100, TEST_LOCATION );
454   DALI_TEST_EQUALS( colorArray->GetElementAt(1).Get<Vector4>(), Color::BLACK , Math::MACHINE_EPSILON_100, TEST_LOCATION );
455   DALI_TEST_EQUALS( colorArray->GetElementAt(2).Get<Vector4>(), Color::GREEN , Math::MACHINE_EPSILON_100, TEST_LOCATION );
456
457   END_TEST;
458 }
459
460 int UtcDaliControlRendererGetPropertyMap5(void)
461 {
462   ToolkitTestApplication application;
463   tet_infoline( "UtcDaliControlRendererGetPropertyMap5: ImageRenderer" );
464
465   RendererFactory factory = RendererFactory::Get();
466   Property::Map propertyMap;
467   propertyMap.Insert( "rendererType",  "imageRenderer" );
468   propertyMap.Insert( "imageUrl",  TEST_IMAGE_FILE_NAME );
469   propertyMap.Insert( "imageDesiredWidth",   20 );
470   propertyMap.Insert( "imageDesiredHeight",   30 );
471   propertyMap.Insert( "imageFittingMode",   "fitHeight" );
472   propertyMap.Insert( "imageSamplingMode",   "boxThenNearest" );
473
474   ControlRenderer imageRenderer = factory.GetControlRenderer(propertyMap);
475   DALI_TEST_CHECK( imageRenderer );
476
477   Property::Map resultMap;
478   imageRenderer.CreatePropertyMap( resultMap );
479
480   // check the property values from the returned map from control renderer
481   Property::Value* value = resultMap.Find( "rendererType",  Property::STRING );
482   DALI_TEST_CHECK( value );
483   DALI_TEST_CHECK( value->Get<std::string>() == "imageRenderer" );
484
485   value = resultMap.Find( "imageUrl",  Property::STRING );
486   DALI_TEST_CHECK( value );
487   DALI_TEST_CHECK( value->Get<std::string>() == TEST_IMAGE_FILE_NAME );
488
489   value = resultMap.Find( "imageFittingMode",   Property::STRING );
490   DALI_TEST_CHECK( value );
491   DALI_TEST_CHECK( value->Get<std::string>() == "fitHeight" );
492
493   value = resultMap.Find( "imageSamplingMode",   Property::STRING );
494   DALI_TEST_CHECK( value );
495   DALI_TEST_CHECK( value->Get<std::string>() == "boxThenNearest" );
496
497   value = resultMap.Find( "imageDesiredWidth",   Property::INTEGER );
498   DALI_TEST_CHECK( value );
499   DALI_TEST_CHECK( value->Get<int>() == 20 );
500
501   value = resultMap.Find( "imageDesiredHeight",   Property::INTEGER );
502   DALI_TEST_CHECK( value );
503   DALI_TEST_CHECK( value->Get<int>() == 30 );
504
505   // Get an image renderer with an image handle, and test the default property values
506   Image image = ResourceImage::New(TEST_IMAGE_FILE_NAME, ImageDimensions(100, 200));
507   imageRenderer = factory.GetControlRenderer(image);
508   imageRenderer.CreatePropertyMap( resultMap );
509
510   value = resultMap.Find( "rendererType",  Property::STRING );
511   DALI_TEST_CHECK( value );
512   DALI_TEST_CHECK( value->Get<std::string>() == "imageRenderer" );
513
514   value = resultMap.Find( "imageUrl",  Property::STRING );
515   DALI_TEST_CHECK( value );
516   DALI_TEST_CHECK( value->Get<std::string>() == TEST_IMAGE_FILE_NAME );
517
518   value = resultMap.Find( "imageFittingMode",   Property::STRING );
519   DALI_TEST_CHECK( value );
520   DALI_TEST_CHECK( value->Get<std::string>() == "shrinkToFit" );
521
522   value = resultMap.Find( "imageSamplingMode",   Property::STRING );
523   DALI_TEST_CHECK( value );
524   DALI_TEST_CHECK( value->Get<std::string>() == "box" );
525
526   value = resultMap.Find( "imageDesiredWidth",   Property::INTEGER );
527   DALI_TEST_CHECK( value );
528   DALI_TEST_CHECK( value->Get<int>() == 100 );
529
530   value = resultMap.Find( "imageDesiredHeight",   Property::INTEGER );
531   DALI_TEST_CHECK( value );
532   DALI_TEST_CHECK( value->Get<int>() == 200 );
533
534   END_TEST;
535 }
536
537 int UtcDaliControlRendererGetPropertyMap6(void)
538 {
539   ToolkitTestApplication application;
540   tet_infoline( "UtcDaliControlRendererGetPropertyMap6: NPatchRenderer" );
541
542   RendererFactory factory = RendererFactory::Get();
543   Property::Map propertyMap;
544   propertyMap.Insert( "rendererType",  "nPatchRenderer" );
545   propertyMap.Insert( "imageUrl",  TEST_NPATCH_FILE_NAME );
546   propertyMap.Insert( "borderOnly",  true );
547   ControlRenderer nPatchRenderer = factory.GetControlRenderer( propertyMap );
548
549   Property::Map resultMap;
550   nPatchRenderer.CreatePropertyMap( resultMap );
551
552   // check the property values from the returned map from control renderer
553   Property::Value* value = resultMap.Find( "rendererType",  Property::STRING );
554   DALI_TEST_CHECK( value );
555   DALI_TEST_CHECK( value->Get<std::string>() == "nPatchRenderer" );
556
557   value = resultMap.Find( "imageUrl",  Property::STRING );
558   DALI_TEST_CHECK( value );
559   DALI_TEST_CHECK( value->Get<std::string>() == TEST_NPATCH_FILE_NAME );
560
561   value = resultMap.Find( "borderOnly",  Property::BOOLEAN );
562   DALI_TEST_CHECK( value );
563   DALI_TEST_CHECK( value->Get<bool>() );
564
565   END_TEST;
566 }