2 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
21 #include <dali/public-api/dali-core.h>
22 #include <dali-test-suite-utils.h>
29 void CheckTypeName(const Property::Type& type)
35 DALI_TEST_CHECK( "NONE" == std::string(PropertyTypes::GetName( type ) ) );
38 case Property::BOOLEAN:
40 DALI_TEST_CHECK( "BOOLEAN" == std::string(PropertyTypes::GetName( type ) ) );
45 DALI_TEST_CHECK( "FLOAT" == std::string(PropertyTypes::GetName( type ) ) );
48 case Property::INTEGER:
50 DALI_TEST_CHECK( "INTEGER" == std::string(PropertyTypes::GetName( type ) ) );
53 case Property::UNSIGNED_INTEGER:
55 DALI_TEST_CHECK( "UNSIGNED_INTEGER" == std::string(PropertyTypes::GetName( type ) ) );
58 case Property::VECTOR2:
60 DALI_TEST_CHECK( "VECTOR2" == std::string(PropertyTypes::GetName( type ) ) );
63 case Property::VECTOR3:
65 DALI_TEST_CHECK( "VECTOR3" == std::string(PropertyTypes::GetName( type ) ) );
68 case Property::VECTOR4:
70 DALI_TEST_CHECK( "VECTOR4" == std::string(PropertyTypes::GetName( type ) ) );
73 case Property::MATRIX3:
75 DALI_TEST_CHECK( "MATRIX3" == std::string(PropertyTypes::GetName( type ) ) );
78 case Property::MATRIX:
80 DALI_TEST_CHECK( "MATRIX" == std::string(PropertyTypes::GetName( type ) ) );
83 case Property::RECTANGLE:
85 DALI_TEST_CHECK( "RECTANGLE" == std::string(PropertyTypes::GetName( type ) ) );
88 case Property::ROTATION:
90 DALI_TEST_CHECK( "ROTATION" == std::string(PropertyTypes::GetName( type ) ) );
93 case Property::STRING:
95 DALI_TEST_CHECK( "STRING" == std::string(PropertyTypes::GetName( type ) ) );
100 DALI_TEST_CHECK( "ARRAY" == std::string(PropertyTypes::GetName( type ) ) );
105 DALI_TEST_CHECK( "MAP" == std::string(PropertyTypes::GetName( type ) ) );
108 case Property::TYPE_COUNT:
110 DALI_TEST_CHECK( "NONE" == std::string(PropertyTypes::GetName( type ) ) );
117 template <typename T>
122 Property::Value v(value);
123 DALI_TEST_CHECK( v.Get<T>() == value );
127 template <typename T>
128 struct CheckCopyCtorP
130 CheckCopyCtorP(Property::Value value)
132 Property::Value copy( value );
133 DALI_TEST_CHECK( value.Get<T>() == copy.Get<T>() );
138 struct CheckCopyCtorP<AngleAxis>
140 CheckCopyCtorP(Property::Value value)
142 Property::Value copy( value );
143 AngleAxis a = value.Get<AngleAxis>();
144 AngleAxis b = copy.Get<AngleAxis>();
145 DALI_TEST_CHECK( a.angle == b.angle );
146 DALI_TEST_CHECK( a.axis == b.axis );
151 struct CheckCopyCtorP<Property::Array>
153 CheckCopyCtorP(Property::Value value)
155 Property::Value copy( value );
156 Property::Array a = value.Get<Property::Array>();
157 Property::Array b = copy.Get<Property::Array>();
158 DALI_TEST_CHECK( a.Size() == b.Size() );
163 struct CheckCopyCtorP<Property::Map>
165 CheckCopyCtorP(Property::Value value)
167 Property::Value copy( value );
168 Property::Map a = value.Get<Property::Map>();
169 Property::Map b = copy.Get<Property::Map>();
170 DALI_TEST_CHECK( a.Count() == b.Count() );
175 template <typename T>
185 tet_result(TET_FAIL);
187 catch( Dali::DaliException& e )
189 DALI_TEST_PRINT_ASSERT( e );
190 DALI_TEST_ASSERT( e, "Property type invalid", TEST_LOCATION );
194 tet_printf("Assertion test failed - wrong Exception\n" );
195 tet_result(TET_FAIL);
201 struct GetCheckN<Property::Array>
205 Property::Value value;
208 Property::Array array = value.Get<Property::Array>();
209 tet_result(TET_FAIL);
211 catch( Dali::DaliException& e )
213 DALI_TEST_PRINT_ASSERT( e );
214 DALI_TEST_ASSERT( e, "Property type invalid", TEST_LOCATION );
218 tet_printf("Assertion test failed - wrong Exception\n" );
219 tet_result(TET_FAIL);
225 struct GetCheckN<Property::Map>
229 Property::Value value;
232 Property::Map map = value.Get<Property::Map>();
233 tet_result(TET_FAIL);
235 catch( Dali::DaliException& e )
237 DALI_TEST_PRINT_ASSERT( e );
238 DALI_TEST_ASSERT( e, "Property type invalid", TEST_LOCATION );
242 tet_printf("Assertion test failed - wrong Exception\n" );
243 tet_result(TET_FAIL);
249 } // unnamed namespace
251 void utc_dali_property_value_startup(void)
253 test_return_value = TET_UNDEF;
256 void utc_dali_property_value_cleanup(void)
258 test_return_value = TET_PASS;
262 int UtcDaliPropertyValueConstructors01P(void)
264 TestApplication application;
265 Property::Value value;
267 DALI_TEST_CHECK( value.GetType() == Property::NONE );
272 int UtcDaliPropertyValueConstructors02P(void)
274 TestApplication application;
275 Property::Value value(true);
277 DALI_TEST_CHECK( value.GetType() == Property::BOOLEAN );
278 DALI_TEST_CHECK( value.Get<bool>() == true );
283 int UtcDaliPropertyValueConstructors03P(void)
285 TestApplication application;
286 Property::Value value(2.f);
288 DALI_TEST_CHECK( value.GetType() == Property::FLOAT );
289 DALI_TEST_CHECK( value.Get<float>() == 2.f );
294 int UtcDaliPropertyValueConstructors04P(void)
296 TestApplication application;
297 Property::Value value(1);
299 DALI_TEST_CHECK( value.GetType() == Property::INTEGER );
300 DALI_TEST_CHECK( value.Get<int>() == 1 );
305 int UtcDaliPropertyValueConstructors05P(void)
307 TestApplication application;
308 Property::Value value(1u);
310 DALI_TEST_CHECK( value.GetType() == Property::UNSIGNED_INTEGER );
311 DALI_TEST_CHECK( value.Get<unsigned int>() == 1u );
316 int UtcDaliPropertyValueConstructors06P(void)
318 TestApplication application;
320 Property::Value value(v);
322 DALI_TEST_CHECK( value.GetType() == Property::VECTOR2 );
323 DALI_TEST_CHECK( value.Get<Vector2>() == v );
328 int UtcDaliPropertyValueConstructors07P(void)
330 TestApplication application;
331 Vector3 v(1.0,1.0,1.0);
332 Property::Value value(v);
334 DALI_TEST_CHECK( value.GetType() == Property::VECTOR3 );
335 DALI_TEST_CHECK( value.Get<Vector3>() == v );
340 int UtcDaliPropertyValueConstructors08P(void)
342 TestApplication application;
343 Matrix3 v(1.0,1.0,1.0, 1.0,1.0,1.0, 1.0,1.0,1.0);
344 Property::Value value(v);
346 DALI_TEST_CHECK( value.GetType() == Property::MATRIX3 );
347 DALI_TEST_CHECK( value.Get<Matrix3>() == v );
352 int UtcDaliPropertyValueConstructors09P(void)
354 TestApplication application;
355 float a[] = {1.0,1.0,1.0,1.0, 1.0,1.0,1.0,1.0, 1.0,1.0,1.0,1.0, 1.0,1.0,1.0,1.0};
357 Property::Value value(v);
359 DALI_TEST_CHECK( value.GetType() == Property::MATRIX );
360 DALI_TEST_CHECK( value.Get<Matrix>() == v );
365 int UtcDaliPropertyValueConstructors10P(void)
367 TestApplication application;
368 Rect<int> v(1.0,1.0,1.0,1.0);
369 Property::Value value(v);
371 DALI_TEST_CHECK( value.GetType() == Property::RECTANGLE );
372 DALI_TEST_CHECK( value.Get<Rect<int> >() == v );
377 int UtcDaliPropertyValueConstructors11P(void)
379 TestApplication application;
380 AngleAxis v(Degree(1.0), Vector3(1.0,1.0,1.0));
381 Property::Value value(v);
383 DALI_TEST_CHECK( value.GetType() == Property::ROTATION );
384 AngleAxis got = value.Get<AngleAxis>();
385 DALI_TEST_CHECK( got.angle == v.angle );
386 DALI_TEST_CHECK( got.axis == v.axis );
391 int UtcDaliPropertyValueConstructors12P(void)
393 TestApplication application;
394 Quaternion v( Vector4(1.0,1.0,1.0,1.0) );
395 Property::Value value(v);
397 DALI_TEST_CHECK( value.GetType() == Property::ROTATION );
398 DALI_TEST_CHECK( value.Get<Quaternion>() == v );
403 int UtcDaliPropertyValueConstructors13P(void)
405 TestApplication application;
407 Property::Value value(v);
409 DALI_TEST_CHECK( value.GetType() == Property::STRING );
410 DALI_TEST_CHECK( value.Get<std::string>() == v );
415 int UtcDaliPropertyValueConstructors14P(void)
417 TestApplication application;
419 Property::Value value(Property::ARRAY);
420 value.AppendItem(Property::Value(1));
422 DALI_TEST_CHECK( value.GetType() == Property::ARRAY );
423 DALI_TEST_CHECK( value.GetSize() == 1);
428 int UtcDaliPropertyValueConstructors15P(void)
430 TestApplication application;
432 Property::Value value(Property::MAP);
433 value.SetValue("1", Property::Value(1));
435 DALI_TEST_CHECK( value.GetType() == Property::MAP );
436 DALI_TEST_CHECK( value.GetSize() == 1);
441 int UtcDaliPropertyValueCopyConstructor01P(void)
443 TestApplication application;
444 CheckCopyCtorP<float> check(1.f);
448 int UtcDaliPropertyValueCopyConstructor02P(void)
450 TestApplication application;
451 CheckCopyCtorP<bool> check(true);
455 int UtcDaliPropertyValueCopyConstructor03P(void)
457 TestApplication application;
458 CheckCopyCtorP<float> check(1.f);
462 int UtcDaliPropertyValueCopyConstructor04P(void)
464 TestApplication application;
465 CheckCopyCtorP<int> check(1);
469 int UtcDaliPropertyValueCopyConstructor05P(void)
471 TestApplication application;
472 CheckCopyCtorP<unsigned int> check(1u);
476 int UtcDaliPropertyValueCopyConstructor06P(void)
478 TestApplication application;
479 CheckCopyCtorP<Vector2> check( Vector2(1,1) );
483 int UtcDaliPropertyValueCopyConstructor07P(void)
485 TestApplication application;
486 CheckCopyCtorP<Vector3> check( Vector3(1.0,1.0,1.0) );
490 int UtcDaliPropertyValueCopyConstructor08P(void)
492 TestApplication application;
493 CheckCopyCtorP<Matrix3> check( Matrix3::IDENTITY );
497 int UtcDaliPropertyValueCopyConstructor09P(void)
499 TestApplication application;
500 CheckCopyCtorP<Matrix> check(Matrix::IDENTITY);
504 int UtcDaliPropertyValueCopyConstructor10P(void)
506 TestApplication application;
507 CheckCopyCtorP<Rect<int> > check( Rect<int>(1.0,1.0,1.0,1.0) );
511 int UtcDaliPropertyValueCopyConstructor11P(void)
513 TestApplication application;
514 CheckCopyCtorP<AngleAxis> check( AngleAxis(Degree(1.0), Vector3(1.0,1.0,1.0)) );
518 int UtcDaliPropertyValueCopyConstructor12P(void)
520 TestApplication application;
521 CheckCopyCtorP<Quaternion> check( Quaternion( Vector4(1.0, 1.0, 1.0, 1.0) ) );
525 int UtcDaliPropertyValueCopyConstructor13P(void)
527 TestApplication application;
528 CheckCopyCtorP<std::string> check( std::string("1") );
532 int UtcDaliPropertyValueCopyConstructor14P(void)
534 TestApplication application;
535 Property::Array value;
536 value.PushBack(Property::Value(1));
537 CheckCopyCtorP<Property::Array> check(value);
541 int UtcDaliPropertyValueCopyConstructor15P(void)
543 TestApplication application;
545 value["1"] = Property::Value(1);
546 CheckCopyCtorP<Property::Map> check(value);
551 int UtcDaliPropertyValueAssignmentOperator01P(void)
553 TestApplication application;
554 Property::Value value;
555 value = Property::Value(true);
557 Property::Value copy( false );
559 DALI_TEST_CHECK( true == copy.Get<bool>() );
565 int UtcDaliPropertyValueAssignmentOperator02P(void)
567 TestApplication application;
568 Property::Value value;
569 value = Property::Value(10.f);
571 Property::Value copy(false);
573 DALI_TEST_CHECK( Dali::Equals(10.f, copy.Get<float>() ) );
578 int UtcDaliPropertyValueAssignmentOperator03P(void)
580 TestApplication application;
581 Property::Value value;
582 value = Property::Value(10);
584 Property::Value copy(false);
586 DALI_TEST_CHECK( 10 == copy.Get<int>() );
591 int UtcDaliPropertyValueAssignmentOperator04P(void)
593 TestApplication application;
594 Property::Value value;
595 value = Property::Value(10U);
597 Property::Value copy(false);
599 DALI_TEST_CHECK( 10 == copy.Get< unsigned int>() );
604 int UtcDaliPropertyValueAssignmentOperator05P(void)
606 TestApplication application;
607 Property::Value value;
608 value = Property::Value( Vector2(1,1) );
610 Property::Value copy(false);
612 DALI_TEST_CHECK( Vector2(1,1) == copy.Get<Vector2>() );
617 int UtcDaliPropertyValueAssignmentOperator06P(void)
619 TestApplication application;
620 Property::Value value;
621 value = Property::Value( Vector3(1.f,1.f,1.f) );
623 Property::Value copy(false);
625 DALI_TEST_CHECK( Vector3(1.f,1.f,1.f) == copy.Get<Vector3>() );
630 int UtcDaliPropertyValueAssignmentOperator07P(void)
632 TestApplication application;
633 Property::Value value;
634 value = Property::Value( Vector4(1,1,1,1) );
636 Property::Value copy(false);
638 DALI_TEST_CHECK( Vector4(1,1,1,1) == copy.Get<Vector4>() );
643 int UtcDaliPropertyValueAssignmentOperator08P(void)
645 TestApplication application;
646 Property::Value value;
647 value = Property::Value( Matrix3::IDENTITY );
649 Property::Value copy(false);
651 DALI_TEST_CHECK( Matrix3::IDENTITY == copy.Get<Matrix3>() );
656 int UtcDaliPropertyValueAssignmentOperator09P(void)
658 TestApplication application;
659 Property::Value value;
660 value = Property::Value( Matrix::IDENTITY );
662 Property::Value copy(false);
664 DALI_TEST_CHECK( Matrix::IDENTITY == copy.Get<Matrix>() );
669 int UtcDaliPropertyValueAssignmentOperator10P(void)
671 TestApplication application;
672 Property::Value value;
673 typedef Dali::Rect<int> Rectangle;
675 value = Property::Value( Rectangle(1,1,1,1) );
677 Property::Value copy(false);
681 DALI_TEST_CHECK( Rectangle(1,1,1,1) == copyRect);
686 int UtcDaliPropertyValueAssignmentOperator11P(void)
688 TestApplication application;
689 Property::Value value;
690 value = Property::Value( Quaternion(1,1,1,1) );
692 Property::Value copy(false);
694 DALI_TEST_CHECK( Quaternion(1,1,1,1) == copy.Get<Quaternion>() );
700 int UtcDaliPropertyValueAssignmentOperator12P(void)
702 TestApplication application;
703 Property::Value value;
704 value = Property::Value( AngleAxis( Radian(Math::PI_2), Vector3::XAXIS ));
706 Property::Value copy(false);
708 DALI_TEST_CHECK( value.Get<AngleAxis>().axis == copy.Get<AngleAxis>().axis );
709 DALI_TEST_CHECK( value.Get<AngleAxis>().angle == copy.Get<AngleAxis>().angle );
714 int UtcDaliPropertyValueAssignmentOperator13P(void)
716 TestApplication application;
717 Property::Value value;
718 value = Property::Value("yes");
720 Property::Value copy(false);
722 DALI_TEST_CHECK( "yes" == copy.Get<std::string>() );
727 int UtcDaliPropertyValueAssignmentOperator14P(void)
729 TestApplication application;
730 Property::Value value;
731 Property::Array array;
732 value = Property::Value(Property::ARRAY);
733 value.AppendItem(10);
735 Property::Value copy(false);
739 array[0].Get( getItem );
740 DALI_TEST_CHECK( getItem == 10 );
745 int UtcDaliPropertyValueAssignmentOperator15P(void)
747 TestApplication application;
748 Property::Value value;
750 value = Property::Value(Property::MAP);
751 value.SetValue("key", "value");
753 Property::Value copy(false);
756 DALI_TEST_CHECK( map.GetKey(0) == "key" );
762 int UtcDaliPropertyValueGetTypeP(void)
764 TestApplication application;
766 Property::Value value;
767 DALI_TEST_CHECK( value.GetType() == Property::NONE );
771 int UtcDaliPropertyValueGet01P(void)
773 TestApplication application;
774 Property::Value value(true);
775 DALI_TEST_CHECK( value.Get<bool>() == true );
776 value = Property::Value(1.f);
777 DALI_TEST_CHECK( value.Get<float>() == 1.f );
781 int UtcDaliPropertyValueGet01N(void)
783 TestApplication application;
785 Property::Value value;
788 value.Get<bool>() == true;
789 tet_result(TET_FAIL);
791 catch( Dali::DaliException& e )
793 DALI_TEST_PRINT_ASSERT( e );
794 DALI_TEST_ASSERT( e, "Property type invalid", TEST_LOCATION );
798 tet_printf("Assertion test failed - wrong Exception\n" );
799 tet_result(TET_FAIL);
805 int UtcDaliPropertyValueGet02P(void)
807 TestApplication application;
808 Property::Value value(true);
809 DALI_TEST_CHECK( value.Get<bool>() == true );
813 int UtcDaliPropertyValueGet02N(void)
815 TestApplication application;
816 GetCheckN<bool> check;
821 int UtcDaliPropertyValueGet03P(void)
823 TestApplication application;
824 GetCheckP<float> check(1.f);
828 int UtcDaliPropertyValueGet03N(void)
830 TestApplication application;
831 GetCheckN<float> check;
835 int UtcDaliPropertyValueGet04P(void)
837 TestApplication application;
838 GetCheckP<int> check(1);
842 int UtcDaliPropertyValueGet04N(void)
844 TestApplication application;
845 GetCheckN<int> check;
849 int UtcDaliPropertyValueGet05P(void)
851 TestApplication application;
852 GetCheckP<unsigned int> check(1u);
856 int UtcDaliPropertyValueGet05N(void)
858 TestApplication application;
859 GetCheckN<unsigned int> check;
863 int UtcDaliPropertyValueGet06P(void)
865 TestApplication application;
866 GetCheckP<Rect<int> > check(Rect<int>(1,1,1,1));
870 int UtcDaliPropertyValueGet06N(void)
872 TestApplication application;
873 GetCheckN<Rect<int> > check;
877 int UtcDaliPropertyValueGet07P(void)
879 TestApplication application;
880 GetCheckP<Vector2> check(Vector2(1.0,1.0));
884 int UtcDaliPropertyValueGet07N(void)
886 TestApplication application;
887 GetCheckN<Vector2> check;
891 int UtcDaliPropertyValueGet8P(void)
893 TestApplication application;
894 GetCheckP<Vector3> check(Vector3(1.0,1.0,1.0));
898 int UtcDaliPropertyValueGet08N(void)
900 TestApplication application;
901 GetCheckN<Vector3> check;
905 int UtcDaliPropertyValueGet09P(void)
907 TestApplication application;
908 GetCheckP<Vector4> check(Vector4(1.0,1.0,1.0,1.0));
912 int UtcDaliPropertyValueGet09N(void)
914 TestApplication application;
915 GetCheckN<Vector4> check;
919 int UtcDaliPropertyValueGet10P(void)
921 TestApplication application;
922 GetCheckP<Matrix3> check(Matrix3(Matrix3::IDENTITY));
926 int UtcDaliPropertyValueGet10N(void)
928 TestApplication application;
929 GetCheckN<Matrix3> check;
933 int UtcDaliPropertyValueGet11P(void)
935 TestApplication application;
936 GetCheckP<Matrix> check(Matrix(Matrix::IDENTITY));
940 int UtcDaliPropertyValueGet11N(void)
942 TestApplication application;
943 GetCheckN<Matrix> check;
947 int UtcDaliPropertyValueGet12P(void)
949 TestApplication application;
950 AngleAxis a(Degree(1.0), Vector3(1.0,1.0,1.0));
951 Property::Value v(a);
952 AngleAxis b = v.Get<AngleAxis>();
953 DALI_TEST_CHECK(a.angle == b.angle);
954 DALI_TEST_CHECK(a.axis == b.axis);
958 int UtcDaliPropertyValueGet12N(void)
960 TestApplication application;
961 GetCheckN<AngleAxis> check;
965 int UtcDaliPropertyValueGet13P(void)
967 TestApplication application;
968 GetCheckP<Quaternion> check(Quaternion(1.0,1.0,1.0,1.0));
972 int UtcDaliPropertyValueGet13N(void)
974 TestApplication application;
975 GetCheckN<Quaternion> check;
979 int UtcDaliPropertyValueGet14P(void)
981 TestApplication application;
982 GetCheckP<std::string> check(std::string("astring"));
986 int UtcDaliPropertyValueGet14N(void)
988 TestApplication application;
989 GetCheckN<std::string> check;
993 int UtcDaliPropertyValueGet15P(void)
995 TestApplication application;
996 Property::Value a(Property::ARRAY);
997 a.AppendItem(Property::Value(1));
998 Property::Array got = a.Get<Property::Array>();
999 DALI_TEST_CHECK(got[0].Get<int>() == 1);
1003 int UtcDaliPropertyValueGet15N(void)
1005 TestApplication application;
1006 GetCheckN<Property::Array> check;
1010 int UtcDaliPropertyValueGet16P(void)
1012 TestApplication application;
1013 Property::Value a(Property::MAP);
1014 a.SetValue("key", Property::Value(1));
1015 Property::Map got = a.Get<Property::Map>();
1016 DALI_TEST_CHECK(got.GetValue(0).Get<int>() == 1);
1020 int UtcDaliPropertyValueGet16N(void)
1022 TestApplication application;
1023 GetCheckN<Property::Map> check;
1027 int UtcDaliPropertyValueGetValueP(void)
1029 TestApplication application;
1030 Property::Value map(Property::MAP);
1031 Property::Value a(1);
1032 map.SetValue("key", a);
1033 DALI_TEST_CHECK( map.GetValue("key").Get<int>() == 1 );
1037 int UtcDaliPropertyValueGetValue01N(void)
1039 TestApplication application;
1040 Property::Value value(1);
1044 Property::Value got = value.GetValue("key");
1045 tet_result(TET_FAIL);
1047 catch( Dali::DaliException& e )
1049 DALI_TEST_PRINT_ASSERT( e );
1050 DALI_TEST_ASSERT( e, "Property type invalid", TEST_LOCATION );
1054 tet_printf("Assertion test failed - wrong Exception\n" );
1055 tet_result(TET_FAIL);
1061 int UtcDaliPropertyValueGetValue02N(void)
1063 TestApplication application;
1064 Property::Value value(Property::MAP);
1065 value.SetValue("key", Property::Value(1));
1069 Property::Value got = value.GetValue("nokey");
1070 tet_result(TET_FAIL);
1072 catch( Dali::DaliException& e )
1074 DALI_TEST_PRINT_ASSERT( e );
1075 DALI_TEST_ASSERT( e, "Cannot find property map key", TEST_LOCATION );
1079 tet_printf("Assertion test failed - wrong Exception\n" );
1080 tet_result(TET_FAIL);
1086 int UtcDaliPropertyValueHasKeyP(void)
1088 TestApplication application;
1089 Property::Value map(Property::MAP);
1090 Property::Value a(1);
1091 map.SetValue("key", a);
1092 DALI_TEST_CHECK( map.HasKey("key") == true );
1093 DALI_TEST_CHECK( map.HasKey("key2") == false );
1097 int UtcDaliPropertyValueHasKeyN(void)
1099 TestApplication application;
1100 Property::Value a(1);
1101 DALI_TEST_CHECK( a.HasKey("key") == false );
1105 int UtcDaliPropertyValueGetKeyP(void)
1107 TestApplication application;
1108 Property::Value map(Property::MAP);
1109 Property::Value a(1);
1110 map.SetValue("key", a);
1112 DALI_TEST_CHECK( map.GetKey(-1) == empty );
1113 DALI_TEST_CHECK( map.GetKey(1) == empty );
1117 int UtcDaliPropertyValueGetKeyN(void)
1119 TestApplication application;
1120 Property::Value a(1);
1122 DALI_TEST_CHECK( a.GetKey(0) == empty );
1126 int UtcDaliPropertyValueSetValueP(void)
1128 TestApplication application;
1129 Property::Value map(Property::MAP);
1130 Property::Value a(1);
1131 map.SetValue("key", a);
1132 DALI_TEST_CHECK( map.GetValue("key").Get<int>() == 1 );
1136 int UtcDaliPropertyValueSetValueN(void)
1138 TestApplication application;
1139 Property::Value value(1);
1143 value.SetValue("key", Property::Value(1));
1144 tet_result(TET_FAIL);
1146 catch( Dali::DaliException& e )
1148 DALI_TEST_PRINT_ASSERT( e );
1149 DALI_TEST_ASSERT( e, "Property type invalid", TEST_LOCATION );
1153 tet_printf("Assertion test failed - wrong Exception\n" );
1154 tet_result(TET_FAIL);
1160 int UtcDaliPropertyValueGetItem01P(void)
1162 TestApplication application;
1163 Property::Value value(Property::ARRAY);
1164 value.AppendItem(Property::Value(0));
1165 value.SetItem(0, Property::Value(1));
1166 DALI_TEST_CHECK( value.GetItem(0).Get<int>() == 1 );
1168 value = Property::Value(Property::MAP);
1169 value.SetValue("key", Property::Value(0));
1170 value.SetItem(0, Property::Value(1));
1171 DALI_TEST_CHECK( value.GetItem(0).Get<int>() == 1 );
1176 int UtcDaliPropertyValueGetItem01N(void)
1178 TestApplication application;
1180 Property::Value value(1);
1184 Property::Value item = value.GetItem(0);
1185 tet_result(TET_FAIL);
1187 catch( Dali::DaliException& e )
1189 DALI_TEST_PRINT_ASSERT( e );
1190 DALI_TEST_ASSERT( e, "Cannot GetItem on property Type; not a container", TEST_LOCATION );
1194 tet_printf("Assertion test failed - wrong Exception\n" );
1195 tet_result(TET_FAIL);
1201 int UtcDaliPropertyValueGetItem02P(void)
1203 TestApplication application;
1204 Property::Value value(Property::ARRAY);
1205 value.AppendItem(Property::Value(0));
1206 value.SetItem(0, Property::Value(1));
1208 DALI_TEST_CHECK( value.GetItem(0, key).Get<int>() == 1 );
1209 DALI_TEST_CHECK( key.size() == 0u );
1211 value = Property::Value(Property::MAP);
1212 value.SetValue("key", Property::Value(0));
1213 value.SetItem(0, Property::Value(1));
1214 DALI_TEST_CHECK( value.GetItem(0, key).Get<int>() == 1 );
1215 DALI_TEST_CHECK( key.size() == 3 );
1216 DALI_TEST_CHECK( key == std::string("key") );
1221 int UtcDaliPropertyValueGetItem02N(void)
1223 TestApplication application;
1225 Property::Value value(1);
1229 Property::Value item = value.GetItem(0, key);
1230 tet_result(TET_FAIL);
1232 catch( Dali::DaliException& e )
1234 DALI_TEST_PRINT_ASSERT( e );
1235 DALI_TEST_ASSERT( e, "Cannot GetItem on property Type; not a container", TEST_LOCATION );
1239 tet_printf("Assertion test failed - wrong Exception\n" );
1240 tet_result(TET_FAIL);
1246 int UtcDaliPropertyValueSetItemP(void)
1248 TestApplication application;
1250 Property::Value value(Property::ARRAY);
1251 value.AppendItem(Property::Value(0));
1252 value.SetItem(0, Property::Value(1));
1253 DALI_TEST_CHECK( value.GetItem(0).Get<int>() == 1 );
1255 value = Property::Value(Property::MAP);
1256 value.SetValue("key", Property::Value(0));
1257 value.SetItem(0, Property::Value(1));
1258 DALI_TEST_CHECK( value.GetItem(0).Get<int>() == 1 );
1263 int UtcDaliPropertyValueSetItemN(void)
1265 TestApplication application;
1267 Property::Value value(1);
1271 value.SetItem(0, Property::Value(2));
1272 tet_result(TET_FAIL);
1274 catch( Dali::DaliException& e )
1276 DALI_TEST_PRINT_ASSERT( e );
1277 DALI_TEST_ASSERT( e, "Cannot SetItem on property Type; not a container", TEST_LOCATION );
1281 tet_printf("Assertion test failed - wrong Exception\n" );
1282 tet_result(TET_FAIL);
1288 int UtcDaliPropertyValueAppendItemP(void)
1290 TestApplication application;
1292 Property::Value value(Property::ARRAY);
1293 value.AppendItem(Property::Value(1));
1294 DALI_TEST_CHECK( value.GetItem(0).Get<int>() == 1 );
1299 int UtcDaliPropertyValueAppendItemN(void)
1301 TestApplication application;
1303 Property::Value value(1);
1307 Property::Value item = value.AppendItem(Property::Value(1));
1308 tet_result(TET_FAIL);
1310 catch( Dali::DaliException& e )
1312 DALI_TEST_PRINT_ASSERT( e );
1313 DALI_TEST_ASSERT( e, "Property type invalid", TEST_LOCATION );
1317 tet_printf("Assertion test failed - wrong Exception\n" );
1318 tet_result(TET_FAIL);
1325 int UtcDaliPropertyValueOutputStream(void)
1327 TestApplication application;
1328 tet_infoline("Testing Property::Value output stream");
1329 typedef Dali::Rect<int> Rectangle;
1331 Property::Value value(true);
1333 std::ostringstream stream;
1335 DALI_TEST_CHECK( stream.str() == "1")
1339 value = Property::Value(20.2f);
1340 std::ostringstream stream;
1342 DALI_TEST_CHECK( stream.str() == "20.2")
1346 value = Property::Value(-25);
1347 std::ostringstream stream;
1349 DALI_TEST_CHECK( stream.str() == "-25")
1353 value = Property::Value(25U);
1354 std::ostringstream stream;
1356 DALI_TEST_CHECK( stream.str() == "25")
1360 value = Property::Value( Vector2(1.f,1.f) );
1361 std::ostringstream stream;
1363 DALI_TEST_CHECK( stream.str() == "[1, 1]");
1367 value = Property::Value( Vector3(1.f,1.f,1.f) );
1368 std::ostringstream stream;
1370 DALI_TEST_CHECK( stream.str() == "[1, 1, 1]");
1374 value = Property::Value( Matrix3::IDENTITY );
1375 std::ostringstream stream;
1377 DALI_TEST_CHECK( stream.str() == "[ [1, 0, 0], [0, 1, 0], [0, 0, 1] ]");
1381 value = Property::Value( Matrix::IDENTITY );
1382 std::ostringstream stream;
1384 DALI_TEST_CHECK( stream.str() == "[ [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1] ]");
1388 value = Property::Value( Rectangle(1,2,3,4) );
1389 std::ostringstream stream;
1391 DALI_TEST_CHECK( stream.str() == "[1, 2, 3, 4]");
1395 value = Property::Value( AngleAxis( Radian(1.2f), Vector3::XAXIS ));
1396 std::ostringstream stream;
1398 tet_printf("angle axis = %s \n", stream.str().c_str() );
1399 DALI_TEST_CHECK( stream.str() == "[1.2, -0, 0, 0]");
1402 // Maps and arrays currently not supported, we just check a message is output
1405 value = Property::Value( map );
1406 std::ostringstream stream;
1408 DALI_TEST_CHECK( !stream.str().empty() );
1411 Property::Array array;
1412 value = Property::Value( array );
1413 std::ostringstream stream;
1415 DALI_TEST_CHECK( !stream.str().empty() );