Render control background without creating extra actor
[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("renderer-type", "color-renderer");
52   propertyMap.Insert("blend-color", 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("renderer-type", "color-renderer");
85   propertyMap.Insert("blend-color", 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("renderer-type", "gradient-renderer");
151   Vector2 start(-1.f, -1.f);
152   Vector2 end(1.f, 1.f);
153   propertyMap.Insert("gradient-start-position", start);
154   propertyMap.Insert("gradient-end-position", end);
155   propertyMap.Insert("gradient-stop-offset", Vector2(0.f, 1.f));
156   Property::Array stopColors;
157   stopColors.PushBack( Color::RED );
158   stopColors.PushBack( Color::GREEN );
159   propertyMap.Insert("gradient-stop-color", 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("renderer-type", "color-renderer");
177   propertyMap.Insert("blend-color", 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("renderer-type", "color-renderer");
250   propertyMap.Insert("blend-color", Color::BLUE);
251   ControlRenderer colorRenderer = factory.GetControlRenderer( propertyMap );
252
253   Property::Map resultMap;
254   colorRenderer.CreatePropertyMap( resultMap );
255
256   Property::Value* typeValue = resultMap.Find( "renderer-type", Property::STRING );
257   DALI_TEST_CHECK( typeValue );
258   DALI_TEST_CHECK( typeValue->Get<std::string>() == "color-renderer" );
259
260   Property::Value* colorValue = resultMap.Find( "blend-color", Property::VECTOR4 );
261   DALI_TEST_CHECK( colorValue );
262   DALI_TEST_CHECK( colorValue->Get<Vector4>() == Color::BLUE );
263
264   // change the blend color
265   factory.ResetRenderer( colorRenderer, Color::CYAN );
266   colorRenderer.CreatePropertyMap( resultMap );
267
268   colorValue = resultMap.Find( "blend-color", Property::VECTOR4 );
269   DALI_TEST_CHECK( colorValue );
270   DALI_TEST_CHECK( colorValue->Get<Vector4>() == Color::CYAN );
271
272   END_TEST;
273 }
274
275 int UtcDaliControlRendererGetPropertyMap2(void)
276 {
277   ToolkitTestApplication application;
278   tet_infoline( "UtcDaliControlRendererGetPropertyMap2: BorderRenderer" );
279
280   RendererFactory factory = RendererFactory::Get();
281   Property::Map propertyMap;
282   propertyMap.Insert("renderer-type", "border-renderer");
283   propertyMap.Insert("border-color", Color::BLUE);
284   propertyMap.Insert("border-size", 5.f);
285   ControlRenderer borderRenderer = factory.GetControlRenderer( propertyMap );
286
287   Property::Map resultMap;
288   borderRenderer.CreatePropertyMap( resultMap );
289
290   // check the property values from the returned map from control renderer
291   Property::Value* typeValue = resultMap.Find( "renderer-type", Property::STRING );
292   DALI_TEST_CHECK( typeValue );
293   DALI_TEST_CHECK( typeValue->Get<std::string>() == "border-renderer" );
294
295   Property::Value* colorValue = resultMap.Find( "border-color", Property::VECTOR4 );
296   DALI_TEST_CHECK( colorValue );
297   DALI_TEST_CHECK( colorValue->Get<Vector4>() == Color::BLUE );
298
299   Property::Value* sizeValue = resultMap.Find( "border-size", Property::FLOAT );
300   DALI_TEST_CHECK( sizeValue );
301   DALI_TEST_CHECK( sizeValue->Get<float>() == 5.f );
302
303   borderRenderer = factory.GetControlRenderer( 10.f, Color::CYAN );
304   borderRenderer.CreatePropertyMap( resultMap );
305
306   typeValue = resultMap.Find( "renderer-type", Property::STRING );
307   DALI_TEST_CHECK( typeValue );
308   DALI_TEST_CHECK( typeValue->Get<std::string>() == "border-renderer" );
309
310    colorValue = resultMap.Find( "border-color", Property::VECTOR4 );
311   DALI_TEST_CHECK( colorValue );
312   DALI_TEST_CHECK( colorValue->Get<Vector4>() == Color::CYAN );
313
314   colorValue = resultMap.Find( "border-size", Property::FLOAT );
315   DALI_TEST_CHECK( colorValue );
316   DALI_TEST_CHECK( colorValue->Get<float>() == 10.f );
317
318   END_TEST;
319 }
320
321 int UtcDaliControlRendererGetPropertyMap3(void)
322 {
323   ToolkitTestApplication application;
324   tet_infoline( "UtcDaliControlRendererGetPropertyMap3: linear GradientRenderer" );
325
326   RendererFactory factory = RendererFactory::Get();
327   DALI_TEST_CHECK( factory );
328
329   Property::Map propertyMap;
330   propertyMap.Insert("renderer-type", "gradient-renderer");
331
332   Vector2 start(-1.f, -1.f);
333   Vector2 end(1.f, 1.f);
334   propertyMap.Insert("gradient-start-position", start);
335   propertyMap.Insert("gradient-end-position", end);
336   propertyMap.Insert("gradient-spread-method", "repeat");
337
338   propertyMap.Insert("gradient-stop-offset", Vector2(0.2f, 0.8f));
339
340   Property::Array stopColors;
341   stopColors.PushBack( Color::RED );
342   stopColors.PushBack( Color::GREEN );
343   propertyMap.Insert("gradient-stop-color", stopColors);
344
345   ControlRenderer gradientRenderer = factory.GetControlRenderer(propertyMap);
346
347   Property::Map resultMap;
348   gradientRenderer.CreatePropertyMap( resultMap );
349
350   // check the property values from the returned map from control renderer
351   Property::Value* value = resultMap.Find( "renderer-type", Property::STRING );
352   DALI_TEST_CHECK( value );
353   DALI_TEST_CHECK( value->Get<std::string>() == "gradient-renderer" );
354
355   value = resultMap.Find( "gradient-units", Property::STRING );
356   DALI_TEST_CHECK( value );
357   DALI_TEST_CHECK( value->Get<std::string>() == "object-bounding-box" );
358
359   value = resultMap.Find( "gradient-spread-method", Property::STRING );
360   DALI_TEST_CHECK( value );
361   DALI_TEST_CHECK( value->Get<std::string>() == "repeat" );
362
363   value = resultMap.Find( "gradient-start-position", Property::VECTOR2 );
364   DALI_TEST_CHECK( value );
365   DALI_TEST_EQUALS( value->Get<Vector2>(), start , Math::MACHINE_EPSILON_100, TEST_LOCATION );
366
367   value = resultMap.Find( "gradient-end-position", Property::VECTOR2 );
368   DALI_TEST_CHECK( value );
369   DALI_TEST_EQUALS( value->Get<Vector2>(), end , Math::MACHINE_EPSILON_100, TEST_LOCATION );
370
371   value = resultMap.Find( "gradient-stop-offset", Property::ARRAY );
372   DALI_TEST_CHECK( value );
373   Property::Array* offsetArray = value->GetArray();
374   DALI_TEST_CHECK( offsetArray->Count() == 2 );
375   DALI_TEST_EQUALS( offsetArray->GetElementAt(0).Get<float>(), 0.2f , Math::MACHINE_EPSILON_100, TEST_LOCATION );
376   DALI_TEST_EQUALS( offsetArray->GetElementAt(1).Get<float>(), 0.8f , Math::MACHINE_EPSILON_100, TEST_LOCATION );
377
378   value = resultMap.Find( "gradient-stop-color", Property::ARRAY );
379   DALI_TEST_CHECK( value );
380   Property::Array* colorArray = value->GetArray();
381   DALI_TEST_CHECK( colorArray->Count() == 2 );
382   DALI_TEST_EQUALS( colorArray->GetElementAt(0).Get<Vector4>(), Color::RED , Math::MACHINE_EPSILON_100, TEST_LOCATION );
383   DALI_TEST_EQUALS( colorArray->GetElementAt(1).Get<Vector4>(), Color::GREEN , Math::MACHINE_EPSILON_100, TEST_LOCATION );
384
385   END_TEST;
386 }
387
388 int UtcDaliControlRendererGetPropertyMap4(void)
389 {
390   ToolkitTestApplication application;
391   tet_infoline( "UtcDaliControlRendererGetPropertyMap4: radial GradientRenderer" );
392
393   RendererFactory factory = RendererFactory::Get();
394   DALI_TEST_CHECK( factory );
395
396   Property::Map propertyMap;
397   propertyMap.Insert("renderer-type", "gradient-renderer");
398
399   Vector2 center(100.f, 100.f);
400   float radius = 100.f;
401   propertyMap.Insert("gradient-units", "user-space");
402   propertyMap.Insert("gradient-center", center);
403   propertyMap.Insert("gradient-radius", radius);
404   propertyMap.Insert("gradient-stop-offset", Vector3(0.1f, 0.3f, 1.1f));
405
406   Property::Array stopColors;
407   stopColors.PushBack( Color::RED );
408   stopColors.PushBack( Color::BLACK );
409   stopColors.PushBack( Color::GREEN );
410   propertyMap.Insert("gradient-stop-color", stopColors);
411
412   ControlRenderer gradientRenderer = factory.GetControlRenderer(propertyMap);
413   DALI_TEST_CHECK( gradientRenderer );
414
415   Property::Map resultMap;
416   gradientRenderer.CreatePropertyMap( resultMap );
417
418   // check the property values from the returned map from control renderer
419   Property::Value* value = resultMap.Find( "renderer-type", Property::STRING );
420   DALI_TEST_CHECK( value );
421   DALI_TEST_CHECK( value->Get<std::string>() == "gradient-renderer" );
422
423   value = resultMap.Find( "gradient-units", Property::STRING );
424   DALI_TEST_CHECK( value );
425   DALI_TEST_CHECK( value->Get<std::string>() == "user-space" );
426
427   value = resultMap.Find( "gradient-spread-method", Property::STRING );
428   DALI_TEST_CHECK( value );
429   DALI_TEST_CHECK( value->Get<std::string>() == "pad" );
430
431   value = resultMap.Find( "gradient-center", Property::VECTOR2 );
432   DALI_TEST_CHECK( value );
433   DALI_TEST_EQUALS( value->Get<Vector2>(), center , Math::MACHINE_EPSILON_100, TEST_LOCATION );
434
435   value = resultMap.Find( "gradient-radius", Property::FLOAT );
436   DALI_TEST_CHECK( value );
437   DALI_TEST_EQUALS( value->Get<float>(), radius , Math::MACHINE_EPSILON_100, TEST_LOCATION );
438
439   value = resultMap.Find( "gradient-stop-offset", Property::ARRAY );
440   DALI_TEST_CHECK( value );
441   Property::Array* offsetArray = value->GetArray();
442   DALI_TEST_CHECK( offsetArray->Count() == 3 );
443   DALI_TEST_EQUALS( offsetArray->GetElementAt(0).Get<float>(), 0.1f , Math::MACHINE_EPSILON_100, TEST_LOCATION );
444   DALI_TEST_EQUALS( offsetArray->GetElementAt(1).Get<float>(), 0.3f , Math::MACHINE_EPSILON_100, TEST_LOCATION );
445   // any stop value will be clamped to [0.0, 1.0];
446   DALI_TEST_EQUALS( offsetArray->GetElementAt(2).Get<float>(), 1.0f , Math::MACHINE_EPSILON_100, TEST_LOCATION );
447
448   value = resultMap.Find( "gradient-stop-color", Property::ARRAY );
449   DALI_TEST_CHECK( value );
450   Property::Array* colorArray = value->GetArray();
451   DALI_TEST_CHECK( colorArray->Count() == 3 );
452   DALI_TEST_EQUALS( colorArray->GetElementAt(0).Get<Vector4>(), Color::RED , Math::MACHINE_EPSILON_100, TEST_LOCATION );
453   DALI_TEST_EQUALS( colorArray->GetElementAt(1).Get<Vector4>(), Color::BLACK , Math::MACHINE_EPSILON_100, TEST_LOCATION );
454   DALI_TEST_EQUALS( colorArray->GetElementAt(2).Get<Vector4>(), Color::GREEN , Math::MACHINE_EPSILON_100, TEST_LOCATION );
455
456   END_TEST;
457 }
458
459 int UtcDaliControlRendererGetPropertyMap5(void)
460 {
461   ToolkitTestApplication application;
462   tet_infoline( "UtcDaliControlRendererGetPropertyMap5: ImageRenderer" );
463
464   RendererFactory factory = RendererFactory::Get();
465   Property::Map propertyMap;
466   propertyMap.Insert( "renderer-type", "image-renderer" );
467   propertyMap.Insert( "image-url", TEST_IMAGE_FILE_NAME );
468   propertyMap.Insert( "image-desired-width", 20 );
469   propertyMap.Insert( "image-desired-height", 30 );
470   propertyMap.Insert( "image-fitting-mode", "fit-height" );
471   propertyMap.Insert( "image-sampling-mode", "box-then-nearest" );
472
473   ControlRenderer imageRenderer = factory.GetControlRenderer(propertyMap);
474   DALI_TEST_CHECK( imageRenderer );
475
476   Property::Map resultMap;
477   imageRenderer.CreatePropertyMap( resultMap );
478
479   // check the property values from the returned map from control renderer
480   Property::Value* value = resultMap.Find( "renderer-type", Property::STRING );
481   DALI_TEST_CHECK( value );
482   DALI_TEST_CHECK( value->Get<std::string>() == "image-renderer" );
483
484   value = resultMap.Find( "image-url", Property::STRING );
485   DALI_TEST_CHECK( value );
486   DALI_TEST_CHECK( value->Get<std::string>() == TEST_IMAGE_FILE_NAME );
487
488   value = resultMap.Find( "image-fitting-mode", Property::STRING );
489   DALI_TEST_CHECK( value );
490   DALI_TEST_CHECK( value->Get<std::string>() == "fit-height" );
491
492   value = resultMap.Find( "image-sampling-mode", Property::STRING );
493   DALI_TEST_CHECK( value );
494   DALI_TEST_CHECK( value->Get<std::string>() == "box-then-nearest" );
495
496   value = resultMap.Find( "image-desired-width", Property::INTEGER );
497   DALI_TEST_CHECK( value );
498   DALI_TEST_CHECK( value->Get<int>() == 20 );
499
500   value = resultMap.Find( "image-desired-height", Property::INTEGER );
501   DALI_TEST_CHECK( value );
502   DALI_TEST_CHECK( value->Get<int>() == 30 );
503
504   // Get an image renderer with an image handle, and test the default property values
505   Image image = ResourceImage::New(TEST_IMAGE_FILE_NAME, ImageDimensions(100, 200));
506   imageRenderer = factory.GetControlRenderer(image);
507   imageRenderer.CreatePropertyMap( resultMap );
508
509   value = resultMap.Find( "renderer-type", Property::STRING );
510   DALI_TEST_CHECK( value );
511   DALI_TEST_CHECK( value->Get<std::string>() == "image-renderer" );
512
513   value = resultMap.Find( "image-url", Property::STRING );
514   DALI_TEST_CHECK( value );
515   DALI_TEST_CHECK( value->Get<std::string>() == TEST_IMAGE_FILE_NAME );
516
517   value = resultMap.Find( "image-fitting-mode", Property::STRING );
518   DALI_TEST_CHECK( value );
519   DALI_TEST_CHECK( value->Get<std::string>() == "shrink-to-fit" );
520
521   value = resultMap.Find( "image-sampling-mode", Property::STRING );
522   DALI_TEST_CHECK( value );
523   DALI_TEST_CHECK( value->Get<std::string>() == "box" );
524
525   value = resultMap.Find( "image-desired-width", Property::INTEGER );
526   DALI_TEST_CHECK( value );
527   DALI_TEST_CHECK( value->Get<int>() == 100 );
528
529   value = resultMap.Find( "image-desired-height", Property::INTEGER );
530   DALI_TEST_CHECK( value );
531   DALI_TEST_CHECK( value->Get<int>() == 200 );
532
533   END_TEST;
534 }
535
536 int UtcDaliControlRendererGetPropertyMap6(void)
537 {
538   ToolkitTestApplication application;
539   tet_infoline( "UtcDaliControlRendererGetPropertyMap6: NPatchRenderer" );
540
541   RendererFactory factory = RendererFactory::Get();
542   Property::Map propertyMap;
543   propertyMap.Insert( "renderer-type", "n-patch-renderer" );
544   propertyMap.Insert( "image-url", TEST_NPATCH_FILE_NAME );
545   propertyMap.Insert( "border-only", true );
546   ControlRenderer nPatchRenderer = factory.GetControlRenderer( propertyMap );
547
548   Property::Map resultMap;
549   nPatchRenderer.CreatePropertyMap( resultMap );
550
551   // check the property values from the returned map from control renderer
552   Property::Value* value = resultMap.Find( "renderer-type", Property::STRING );
553   DALI_TEST_CHECK( value );
554   DALI_TEST_CHECK( value->Get<std::string>() == "n-patch-renderer" );
555
556   value = resultMap.Find( "image-url", Property::STRING );
557   DALI_TEST_CHECK( value );
558   DALI_TEST_CHECK( value->Get<std::string>() == TEST_NPATCH_FILE_NAME );
559
560   value = resultMap.Find( "border-only", Property::BOOLEAN );
561   DALI_TEST_CHECK( value );
562   DALI_TEST_CHECK( value->Get<bool>() );
563
564   END_TEST;
565 }