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>
118 struct CheckCopyCtorP
120 CheckCopyCtorP(Property::Value value)
122 Property::Value copy( value );
123 DALI_TEST_CHECK( value.Get<T>() == copy.Get<T>() );
128 struct CheckCopyCtorP<AngleAxis>
130 CheckCopyCtorP(Property::Value value)
132 Property::Value copy( value );
133 AngleAxis a = value.Get<AngleAxis>();
134 AngleAxis b = copy.Get<AngleAxis>();
135 DALI_TEST_CHECK( a.angle == b.angle );
136 DALI_TEST_CHECK( a.axis == b.axis );
141 struct CheckCopyCtorP<Property::Array>
143 CheckCopyCtorP(Property::Value value)
145 Property::Value copy( value );
146 Property::Array a = value.Get<Property::Array>();
147 Property::Array b = copy.Get<Property::Array>();
148 DALI_TEST_CHECK( a.Size() == b.Size() );
153 struct CheckCopyCtorP<Property::Map>
155 CheckCopyCtorP(Property::Value value)
157 Property::Value copy( value );
158 Property::Map a = value.Get<Property::Map>();
159 Property::Map b = copy.Get<Property::Map>();
160 DALI_TEST_CHECK( a.Count() == b.Count() );
164 } // unnamed namespace
166 void utc_dali_property_value_startup(void)
168 test_return_value = TET_UNDEF;
171 void utc_dali_property_value_cleanup(void)
173 test_return_value = TET_PASS;
177 int UtcDaliPropertyValueConstructorsNoneP(void)
179 Property::Value value;
181 DALI_TEST_CHECK( value.GetType() == Property::NONE );
186 int UtcDaliPropertyValueConstructorsNoneTypeP(void)
188 Property::Value value( Property::NONE );
190 DALI_TEST_CHECK( value.GetType() == Property::NONE );
192 Property::Value value2( Property::TYPE_COUNT );
194 DALI_TEST_CHECK( value2.GetType() == Property::NONE );
199 int UtcDaliPropertyValueConstructorsBoolP(void)
201 Property::Value value(true);
203 DALI_TEST_CHECK( value.GetType() == Property::BOOLEAN );
204 DALI_TEST_CHECK( value.Get<bool>() == true );
209 int UtcDaliPropertyValueConstructorBoolTypeP(void)
211 Property::Value value(Property::BOOLEAN);
213 DALI_TEST_CHECK( value.GetType() == Property::BOOLEAN );
214 DALI_TEST_CHECK( value.Get<bool>() == false );
219 int UtcDaliPropertyValueConstructorsFloatP(void)
221 Property::Value value(2.f);
223 DALI_TEST_CHECK( value.GetType() == Property::FLOAT );
224 DALI_TEST_CHECK( value.Get<float>() == 2.f );
229 int UtcDaliPropertyValueConstructorsFloatTypeP(void)
231 Property::Value value(Property::FLOAT);
233 DALI_TEST_CHECK( value.GetType() == Property::FLOAT );
234 DALI_TEST_CHECK( value.Get<float>() == 0.f );
239 int UtcDaliPropertyValueConstructorsIntP(void)
241 Property::Value value(1);
243 DALI_TEST_CHECK( value.GetType() == Property::INTEGER );
244 DALI_TEST_CHECK( value.Get<int>() == 1 );
249 int UtcDaliPropertyValueConstructorsIntTypeP(void)
251 Property::Value value(Property::INTEGER);
253 DALI_TEST_CHECK( value.GetType() == Property::INTEGER );
254 DALI_TEST_CHECK( value.Get<int>() == 0 );
259 int UtcDaliPropertyValueConstructorsUnsignedIntP(void)
261 Property::Value value(1u);
263 DALI_TEST_CHECK( value.GetType() == Property::UNSIGNED_INTEGER );
264 DALI_TEST_CHECK( value.Get<unsigned int>() == 1u );
269 int UtcDaliPropertyValueConstructorsUnsignedIntTypeP(void)
271 Property::Value value( Property::UNSIGNED_INTEGER );
273 DALI_TEST_CHECK( value.GetType() == Property::UNSIGNED_INTEGER );
274 DALI_TEST_CHECK( value.Get<unsigned int>() == 0u );
279 int UtcDaliPropertyValueConstructorsVector2P(void)
282 Property::Value value(v);
284 DALI_TEST_CHECK( value.GetType() == Property::VECTOR2 );
285 DALI_TEST_CHECK( value.Get<Vector2>() == v );
290 int UtcDaliPropertyValueConstructorsVector2TypeP(void)
292 Property::Value value( Property::VECTOR2 );
294 DALI_TEST_CHECK( value.GetType() == Property::VECTOR2 );
295 DALI_TEST_CHECK( value.Get<Vector2>() == Vector2::ZERO );
300 int UtcDaliPropertyValueConstructorsVector3P(void)
302 Vector3 v(1.f,2.f,3.f);
303 Property::Value value(v);
305 DALI_TEST_CHECK( value.GetType() == Property::VECTOR3 );
306 DALI_TEST_CHECK( value.Get<Vector3>() == v );
311 int UtcDaliPropertyValueConstructorsVector3TypeP(void)
313 Property::Value value( Property::VECTOR3 );
315 DALI_TEST_CHECK( value.GetType() == Property::VECTOR3 );
316 DALI_TEST_CHECK( value.Get<Vector3>() == Vector3() );
321 int UtcDaliPropertyValueConstructorsVector4P(void)
323 Vector4 v(1.f,1.f,1.f,0.9f);
324 Property::Value value(v);
326 DALI_TEST_CHECK( value.GetType() == Property::VECTOR4 );
327 DALI_TEST_CHECK( value.Get<Vector4>() == v );
332 int UtcDaliPropertyValueConstructorsVector4TypeP(void)
334 Property::Value value( Property::VECTOR4 );
336 DALI_TEST_CHECK( value.GetType() == Property::VECTOR4 );
337 DALI_TEST_CHECK( value.Get<Vector4>() == Vector4() );
342 int UtcDaliPropertyValueConstructorsMatrix3P(void)
344 Matrix3 v(1.0,1.0,1.0, 1.0,1.0,1.0, 1.0,1.0,1.0);
345 Property::Value value(v);
347 DALI_TEST_CHECK( value.GetType() == Property::MATRIX3 );
348 DALI_TEST_CHECK( value.Get<Matrix3>() == v );
353 int UtcDaliPropertyValueConstructorsMatrix3TypeP(void)
355 Property::Value value( Property::MATRIX3 );
357 DALI_TEST_CHECK( value.GetType() == Property::MATRIX3 );
358 DALI_TEST_CHECK( value.Get<Matrix3>() == Matrix3() );
363 int UtcDaliPropertyValueConstructorsMatrixP(void)
365 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};
367 Property::Value value(v);
369 DALI_TEST_CHECK( value.GetType() == Property::MATRIX );
370 DALI_TEST_CHECK( value.Get<Matrix>() == v );
375 int UtcDaliPropertyValueConstructorsMatrixTypeP(void)
377 Property::Value value( Property::MATRIX );
379 DALI_TEST_CHECK( value.GetType() == Property::MATRIX );
380 DALI_TEST_CHECK( value.Get<Matrix>() == Matrix() );
385 int UtcDaliPropertyValueConstructorsRectP(void)
387 Rect<int> v(1.0,1.0,1.0,1.0);
388 Property::Value value(v);
390 DALI_TEST_EQUALS( value.GetType(), Property::RECTANGLE, TEST_LOCATION );
391 DALI_TEST_CHECK( value.Get<Rect<int> >() == v );
396 int UtcDaliPropertyValueConstructorsRectTypeP(void)
398 Property::Value value( Property::RECTANGLE );
400 DALI_TEST_CHECK( value.GetType() == Property::RECTANGLE );
401 DALI_TEST_CHECK( value.Get<Rect<int> >() == Rect<int>(0,0,0,0) );
406 int UtcDaliPropertyValueConstructorsAngleAxisP(void)
408 AngleAxis input( Dali::ANGLE_90, Vector3::XAXIS );
409 Property::Value value( input );
411 DALI_TEST_CHECK( value.GetType() == Property::ROTATION );
412 AngleAxis result = value.Get<AngleAxis>();
413 DALI_TEST_EQUALS( result.angle, input.angle, TEST_LOCATION );
414 DALI_TEST_EQUALS( result.axis, input.axis, TEST_LOCATION );
419 int UtcDaliPropertyValueConstructorsQuaternionP(void)
421 Quaternion v( Vector4(1.0,1.0,1.0,1.0) );
422 Property::Value value(v);
424 DALI_TEST_CHECK( value.GetType() == Property::ROTATION );
425 DALI_TEST_CHECK( value.Get<Quaternion>() == v );
430 int UtcDaliPropertyValueConstructorsRotationTypeP(void)
432 Property::Value value( Property::ROTATION );
434 DALI_TEST_CHECK( value.GetType() == Property::ROTATION );
435 AngleAxis result = value.Get<AngleAxis>();
436 DALI_TEST_EQUALS( result.angle, Radian(0.f), TEST_LOCATION );
437 DALI_TEST_EQUALS( result.axis, Vector3::ZERO, TEST_LOCATION ); // identity quaternion returns a zero angle-axis
442 int UtcDaliPropertyValueConstructorsStringP(void)
445 Property::Value value(v);
447 DALI_TEST_CHECK( value.GetType() == Property::STRING );
448 DALI_TEST_CHECK( value.Get<std::string>() == v );
453 int UtcDaliPropertyValueConstructorsStringTypeP(void)
455 Property::Value value( Property::STRING );
457 DALI_TEST_CHECK( value.GetType() == Property::STRING );
458 DALI_TEST_CHECK( value.Get<std::string>() == std::string() );
463 int UtcDaliPropertyValueConstructorsArrayP(void)
466 Property::Value value( foo );
468 DALI_TEST_CHECK( value.GetType() == Property::ARRAY );
469 DALI_TEST_CHECK( value.Get<Property::Array>().Count() == 0 );
474 int UtcDaliPropertyValueConstructorsArray2P(void)
477 foo.PushBack( Property::Value() );
478 Property::Value value( foo );
480 DALI_TEST_CHECK( value.GetType() == Property::ARRAY );
481 DALI_TEST_CHECK( value.Get<Property::Array>().Count() == 1 );
486 int UtcDaliPropertyValueConstructorsArrayTypeP(void)
488 Property::Value value(Property::ARRAY);
490 DALI_TEST_CHECK( value.GetType() == Property::ARRAY );
491 DALI_TEST_CHECK( value.Get<Property::Array>().Count() == 0 );
496 int UtcDaliPropertyValueConstructorsMapP(void)
499 Property::Value value( map );
501 DALI_TEST_CHECK( value.GetType() == Property::MAP );
502 DALI_TEST_CHECK( value.Get<Property::Map>().Count() == 0 );
507 int UtcDaliPropertyValueConstructorsMap2P(void)
510 map.Insert( "", "" );
511 Property::Value value( map );
513 DALI_TEST_CHECK( value.GetType() == Property::MAP );
514 DALI_TEST_CHECK( value.Get<Property::Map>().Count() == 1 );
519 int UtcDaliPropertyValueConstructorsMapTypeP(void)
521 Property::Value value(Property::MAP);
523 DALI_TEST_CHECK( value.GetType() == Property::MAP );
524 DALI_TEST_CHECK( value.Get<Property::Map>().Count() == 0 );
529 int UtcDaliPropertyValueCopyConstructorP(void)
531 Property::Value value;
532 Property::Value value2( value );
533 DALI_TEST_EQUALS( value.GetType(), value2.GetType(), TEST_LOCATION );
534 DALI_TEST_EQUALS( value.IsMap(), value2.IsMap(), TEST_LOCATION );
535 DALI_TEST_EQUALS( value.IsArray(), value2.IsArray(), TEST_LOCATION );
539 int UtcDaliPropertyValueCopyConstructorBoolP(void)
541 CheckCopyCtorP<bool> check(true);
545 int UtcDaliPropertyValueCopyConstructorFloatP(void)
547 CheckCopyCtorP<float> check(1.f);
551 int UtcDaliPropertyValueCopyConstructorIntP(void)
553 CheckCopyCtorP<int> check(1);
557 int UtcDaliPropertyValueCopyConstructorUnsignedIntP(void)
559 CheckCopyCtorP<unsigned int> check(1u);
563 int UtcDaliPropertyValueCopyConstructoVector2P(void)
565 CheckCopyCtorP<Vector2> check( Vector2(2,1) );
569 int UtcDaliPropertyValueCopyConstructorVector3P(void)
571 CheckCopyCtorP<Vector3> check( Vector3(3.f,2.f,1.f) );
575 int UtcDaliPropertyValueCopyConstructorVector4P(void)
577 CheckCopyCtorP<Vector3> check( Vector4(4.f,3.f,2.f,1.f) );
581 int UtcDaliPropertyValueCopyConstructorMatrix3P(void)
583 CheckCopyCtorP<Matrix3> check( Matrix3::IDENTITY );
587 int UtcDaliPropertyValueCopyConstructorMatrixP(void)
589 CheckCopyCtorP<Matrix> check(Matrix::IDENTITY);
593 int UtcDaliPropertyValueCopyConstructorRectP(void)
595 CheckCopyCtorP<Rect<int> > check( Rect<int>(1.0,1.0,1.0,1.0) );
599 int UtcDaliPropertyValueCopyConstructorAngleAxisP(void)
601 CheckCopyCtorP<AngleAxis> check( AngleAxis(Degree(1.0), Vector3(1.0,1.0,1.0)) );
605 int UtcDaliPropertyValueCopyConstructorQuaternionP(void)
607 CheckCopyCtorP<Quaternion> check( Quaternion( Vector4(1.0, 1.0, 1.0, 1.0) ) );
611 int UtcDaliPropertyValueCopyConstructorStringP(void)
613 CheckCopyCtorP<std::string> check( std::string("1") );
617 int UtcDaliPropertyValueCopyConstructorArrayP(void)
619 Property::Value value1(Property::ARRAY);
620 Property::Array* array= value1.GetArray();
621 array->PushBack(Property::Value(1));
623 Property::Value value2( value1 );
624 DALI_TEST_EQUALS( value1.GetType(), value2.GetType(), TEST_LOCATION );
625 DALI_TEST_EQUALS( value1.GetArray()->Count(), value2.GetArray()->Count(), TEST_LOCATION );
630 int UtcDaliPropertyValueCopyConstructorMapP(void)
632 Property::Value value1(Property::MAP);
633 Property::Map* map = value1.GetMap();
634 (*map)["1"] = Property::Value(1);
636 Property::Value value2( value1 );
637 DALI_TEST_EQUALS( value1.GetType(), value2.GetType(), TEST_LOCATION );
638 DALI_TEST_EQUALS( value1.GetMap()->Count(), value2.GetMap()->Count(), TEST_LOCATION );
639 DALI_TEST_EQUALS( value1.GetMap()->GetKey( 0 ), value2.GetMap()->GetKey( 0 ), TEST_LOCATION );
644 int UtcDaliPropertyValueAssignmentSelfP(void)
646 Property::Value value;
647 Property::Value* self = &value;
649 DALI_TEST_EQUALS( value.GetType(), Property::NONE, TEST_LOCATION );
650 DALI_TEST_EQUALS( value.IsMap(), false, TEST_LOCATION );
651 DALI_TEST_EQUALS( value.IsArray(), false, TEST_LOCATION );
655 int UtcDaliPropertyValueAssignmentOperatorNoneP(void)
657 Property::Value value;
658 value = Property::Value(); // type match
659 DALI_TEST_EQUALS( value.GetType(), Property::NONE, TEST_LOCATION );
660 Property::Value copy( false );
661 copy = value; // type mismatch
662 DALI_TEST_EQUALS( value.GetType(), Property::NONE, TEST_LOCATION );
666 int UtcDaliPropertyValueAssignmentOperatorBoolP(void)
668 Property::Value value;
669 value = Property::Value(true); // type mismatch
670 DALI_TEST_CHECK( true == value.Get<bool>() );
671 Property::Value copy( false );
672 copy = value; // type match
673 DALI_TEST_CHECK( true == copy.Get<bool>() );
677 int UtcDaliPropertyValueAssignmentOperatorIntP(void)
679 Property::Value value;
680 value = Property::Value(10); // type mismatch
681 DALI_TEST_CHECK( 10 == value.Get<int>() );
682 Property::Value copy( 99 );
683 copy = value; // type match
684 DALI_TEST_CHECK( 10 == copy.Get<int>() );
688 int UtcDaliPropertyValueAssignmentOperatorUnsignedIntP(void)
690 Property::Value value;
691 value = Property::Value(10U); // type mismatch
692 DALI_TEST_CHECK( 10U == value.Get<unsigned int>() );
693 Property::Value copy( 123U);
694 copy = value; // type match
695 DALI_TEST_CHECK( 10U == copy.Get<unsigned int>() );
699 int UtcDaliPropertyValueAssignmentOperatorFloatP(void)
701 Property::Value value;
702 value = Property::Value(10.f); // mismatch
703 DALI_TEST_CHECK( Dali::Equals(10.f, value.Get<float>() ) );
704 Property::Value copy(321.f);
705 copy = value; // match
706 DALI_TEST_CHECK( Dali::Equals(10.f, copy.Get<float>() ) );
710 int UtcDaliPropertyValueAssignmentOperatorVector2P(void)
712 Property::Value value;
713 value = Property::Value( Vector2(1,2) ); // mismatch
714 DALI_TEST_CHECK( Vector2(1,2) == value.Get<Vector2>() );
715 Property::Value copy( Property::VECTOR2 );
716 copy = value; // match
717 DALI_TEST_CHECK( Vector2(1,2) == copy.Get<Vector2>() );
721 int UtcDaliPropertyValueAssignmentOperatorVector3P(void)
723 Property::Value value;
724 value = Property::Value( Vector3(1.f,2.f,3.f) ); // mismatch
725 DALI_TEST_CHECK( Vector3(1.f,2.f,3.f) == value.Get<Vector3>() );
726 Property::Value copy( Property::VECTOR3 );
727 copy = value; // match
728 DALI_TEST_CHECK( Vector3(1.f,2.f,3.f) == copy.Get<Vector3>() );
732 int UtcDaliPropertyValueAssignmentOperatorVector4P(void)
734 Property::Value value;
735 value = Property::Value( Vector4(1,2,3,4) ); // mismatch
736 DALI_TEST_CHECK( Vector4(1,2,3,4) == value.Get<Vector4>() );
737 Property::Value copy( Vector4(0,1,2,3) );
738 copy = value; // match
739 DALI_TEST_CHECK( Vector4(1,2,3,4) == copy.Get<Vector4>() );
743 int UtcDaliPropertyValueAssignmentOperatorMatrix3P(void)
745 Property::Value value;
746 value = Property::Value( Matrix3::IDENTITY ); // mismatch
747 DALI_TEST_CHECK( Matrix3::IDENTITY == value.Get<Matrix3>() );
748 Property::Value copy( Property::MATRIX3 );
749 copy = value; // match
750 DALI_TEST_CHECK( Matrix3::IDENTITY == copy.Get<Matrix3>() );
754 int UtcDaliPropertyValueAssignmentOperatorMatrixP(void)
756 Property::Value value;
757 value = Property::Value( Matrix::IDENTITY ); // mismatch
758 DALI_TEST_CHECK( Matrix::IDENTITY == value.Get<Matrix>() );
760 Property::Value copy( foo );
761 copy = value; // match
762 DALI_TEST_CHECK( Matrix::IDENTITY == copy.Get<Matrix>() );
766 int UtcDaliPropertyValueAssignmentOperatorRectP(void)
768 Property::Value value;
769 typedef Dali::Rect<int> Rectangle;
770 value = Property::Value( Rectangle(4,3,2,1) ); // mismatch
771 DALI_TEST_CHECK( Rectangle(4,3,2,1) == value.Get<Rectangle>() );
772 Property::Value copy( Property::RECTANGLE );
773 copy = value; // match
776 DALI_TEST_CHECK( Rectangle(4,3,2,1) == copyRect );
780 int UtcDaliPropertyValueAssignmentOperatorQuaternionP(void)
782 Property::Value value;
783 value = Property::Value( Quaternion(1,1,1,1) ); // mismatch
784 DALI_TEST_CHECK( Quaternion(1,1,1,1) == value.Get<Quaternion>() );
785 Property::Value copy( Property::ROTATION );
786 copy = value; // match
787 DALI_TEST_CHECK( Quaternion(1,1,1,1) == copy.Get<Quaternion>() );
792 int UtcDaliPropertyValueAssignmentOperatorAngleAxisP(void)
794 Property::Value value;
795 value = Property::Value( AngleAxis( Radian(Math::PI_2), Vector3::XAXIS ) ); // mismatch
796 DALI_TEST_EQUALS( value.Get<AngleAxis>().axis, Vector3::XAXIS, TEST_LOCATION );
797 DALI_TEST_EQUALS( value.Get<AngleAxis>().angle, Radian(Math::PI_2), TEST_LOCATION );
798 Property::Value copy( Property::ROTATION );
799 copy = value; // match
800 DALI_TEST_EQUALS( value.Get<AngleAxis>().axis, copy.Get<AngleAxis>().axis, TEST_LOCATION );
801 DALI_TEST_EQUALS( value.Get<AngleAxis>().angle, copy.Get<AngleAxis>().angle, TEST_LOCATION );
805 int UtcDaliPropertyValueAssignmentOperatorStringP(void)
807 Property::Value value;
808 value = Property::Value("yes"); // mismatch
809 DALI_TEST_CHECK( "yes" == value.Get<std::string>() );
810 Property::Value copy("no");
811 copy = value; // match
812 DALI_TEST_CHECK( "yes" == copy.Get<std::string>() );
816 int UtcDaliPropertyValueAssignmentOperatorArrayP(void)
818 Property::Value value;
819 value = Property::Value(Property::ARRAY); // mismatch
820 value.GetArray()->PushBack(10);
821 DALI_TEST_CHECK( value.GetArray() );
822 Property::Value copy(Property::ARRAY);
823 copy = value; // match
824 Property::Array array;
827 array[0].Get( getItem );
828 DALI_TEST_CHECK( getItem == 10 );
832 int UtcDaliPropertyValueAssignmentOperatorMapP(void)
834 Property::Value value;
835 value = Property::Value(Property::MAP); // mismatch
836 value.GetMap()->Insert("key", "value");
837 Property::Value copy( Property::MAP ); // match
841 DALI_TEST_CHECK( map.GetKey(0) == "key" );
845 int UtcDaliPropertyValueGetTypeP(void)
847 Property::Value value;
848 DALI_TEST_CHECK( value.GetType() == Property::NONE );
852 int UtcDaliPropertyValueGetBoolP(void)
854 Property::Value value(true);
855 DALI_TEST_CHECK( value.Get<bool>() == true );
856 value = Property::Value(1.f);
857 DALI_TEST_CHECK( value.Get<float>() == 1.f );
861 int UtcDaliPropertyValueGetBoolN(void)
863 Property::Value value;
864 DALI_TEST_CHECK( value.Get<bool>() == false );
868 int UtcDaliPropertyValueGetFloatP(void)
870 Property::Value value(1.1f);
871 DALI_TEST_EQUALS( 1.1f, value.Get<float>(), TEST_LOCATION );
875 int UtcDaliPropertyValueGetFloatN(void)
877 Property::Value value;
878 DALI_TEST_EQUALS( 0.0f, value.Get<float>(), TEST_LOCATION );
882 int UtcDaliPropertyValueGetIntP(void)
884 Property::Value value(123);
885 DALI_TEST_EQUALS( 123, value.Get<int>(), TEST_LOCATION );
889 int UtcDaliPropertyValueGetIntN(void)
891 Property::Value value;
892 DALI_TEST_EQUALS( 0, value.Get<int>(), TEST_LOCATION );
896 int UtcDaliPropertyValueGetUnsignedIntP(void)
898 Property::Value value(123u);
899 DALI_TEST_EQUALS( 123u, value.Get<unsigned int>(), TEST_LOCATION );
903 int UtcDaliPropertyValueGetUnsignedIntN(void)
905 Property::Value value;
906 DALI_TEST_EQUALS( 0u, value.Get<unsigned int>(), TEST_LOCATION );
910 int UtcDaliPropertyValueGetRectP(void)
912 Property::Value value( Rect<int>(1,2,3,4) );
913 DALI_TEST_EQUALS( Rect<int>(1,2,3,4), value.Get< Rect<int> >(), TEST_LOCATION );
917 int UtcDaliPropertyValueGetRectN(void)
919 Property::Value value;
920 DALI_TEST_EQUALS( Rect<int>(0,0,0,0), value.Get< Rect<int> >(), TEST_LOCATION );
924 int UtcDaliPropertyValueGetVector2P(void)
926 Property::Value value( Vector2(1.0f,2.0f) );
927 DALI_TEST_EQUALS( Vector2(1.0f,2.0f), value.Get< Vector2 >(), TEST_LOCATION );
931 int UtcDaliPropertyValueGetVector2N(void)
933 Property::Value value;
934 DALI_TEST_EQUALS( Vector2(0.f,0.f), value.Get< Vector2 >(), TEST_LOCATION );
938 int UtcDaliPropertyValueGetVector3P(void)
940 Property::Value value( Vector3(1.0f,2.0f,-1.f) );
941 DALI_TEST_EQUALS( Vector3(1.0f,2.0f,-1.f), value.Get< Vector3 >(), TEST_LOCATION );
945 int UtcDaliPropertyValueGetVector3N(void)
947 Property::Value value;
948 DALI_TEST_EQUALS( Vector3(0.f,0.f,0.f), value.Get< Vector3 >(), TEST_LOCATION );
952 int UtcDaliPropertyValueGetVector4P(void)
954 Property::Value value( Vector4(1.f,2.f,-1.f,-3.f) );
955 DALI_TEST_EQUALS( Vector4(1.f,2.f,-1.f,-3.f), value.Get< Vector4 >(), TEST_LOCATION );
959 int UtcDaliPropertyValueGetVector4N(void)
961 Property::Value value;
962 DALI_TEST_EQUALS( Vector4(0.f,0.f,0.f,0.f), value.Get< Vector4 >(), TEST_LOCATION );
966 int UtcDaliPropertyValueGetMatrix3P(void)
968 Property::Value value( Matrix3(1.f,2.f,3.f,4.f,5.f,6.f,7.f,8.f,9.f) );
969 DALI_TEST_EQUALS( Matrix3(1.f,2.f,3.f,4.f,5.f,6.f,7.f,8.f,9.f), value.Get< Matrix3 >(), TEST_LOCATION );
973 int UtcDaliPropertyValueGetMatrix3N(void)
975 Property::Value value;
976 DALI_TEST_EQUALS( Matrix3::IDENTITY, value.Get< Matrix3 >(), TEST_LOCATION );
980 int UtcDaliPropertyValueGetMatrixP(void)
982 float matrixValues[16] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 };
983 Matrix input( matrixValues );
984 Property::Value value( input );
985 DALI_TEST_EQUALS( input, value.Get< Matrix >(), TEST_LOCATION );
989 int UtcDaliPropertyValueGetMatrixN(void)
991 Property::Value value;
992 DALI_TEST_EQUALS( Matrix::IDENTITY, value.Get< Matrix >(), TEST_LOCATION );
996 int UtcDaliPropertyValueGetAngleAxisP(void)
998 AngleAxis input( Dali::ANGLE_90, Vector3::XAXIS );
999 Property::Value value( input );
1000 AngleAxis result = value.Get<AngleAxis>();
1001 DALI_TEST_EQUALS( input.angle, result.angle, TEST_LOCATION );
1002 DALI_TEST_EQUALS( input.axis, result.axis, TEST_LOCATION );
1006 int UtcDaliPropertyValueGetAngleAxisN(void)
1008 Property::Value value;
1009 AngleAxis b = value.Get<AngleAxis>();
1010 DALI_TEST_EQUALS( 0.f, b.angle, TEST_LOCATION );
1011 DALI_TEST_EQUALS( Vector3::ZERO, b.axis, TEST_LOCATION );
1015 int UtcDaliPropertyValueGetQuaternionP(void)
1017 Property::Value value( Quaternion(1.f,2.f,3.f,4.f) );
1018 DALI_TEST_EQUALS( Quaternion(1.f,2.f,3.f,4.f), value.Get< Quaternion >(), TEST_LOCATION );
1022 int UtcDaliPropertyValueGetQuaternionN(void)
1024 Property::Value value;
1025 DALI_TEST_EQUALS( Quaternion::IDENTITY, value.Get< Quaternion >(), TEST_LOCATION );
1029 int UtcDaliPropertyValueGetStringP(void)
1031 Property::Value value( std::string("hello") );
1032 DALI_TEST_EQUALS( std::string("hello"), value.Get< std::string >(), TEST_LOCATION );
1036 int UtcDaliPropertyValueGetStringN(void)
1038 Property::Value value;
1039 DALI_TEST_EQUALS( std::string(""), value.Get< std::string >(), TEST_LOCATION );
1043 int UtcDaliPropertyValueGetArrayP(void)
1045 Property::Value value( Property::ARRAY );
1046 DALI_TEST_CHECK( NULL != value.GetArray() );
1047 value.GetArray()->PushBack( Property::Value(1) );
1048 Property::Array got = value.Get<Property::Array>();
1049 DALI_TEST_CHECK( got[0].Get<int>() == 1);
1053 int UtcDaliPropertyValueGetArrayN(void)
1055 Property::Value value;
1056 DALI_TEST_CHECK( NULL == value.GetArray() );
1057 Property::Array array;
1058 array.PushBack( Property::Value( 10 ) );
1060 DALI_TEST_CHECK( 0 == array.Count() );
1064 int UtcDaliPropertyValueGetMapP(void)
1066 Property::Value value(Property::MAP);
1067 DALI_TEST_CHECK( NULL == value.GetArray() );
1068 DALI_TEST_CHECK( NULL != value.GetMap() );
1069 value.GetMap()->Insert("key", Property::Value(1));
1070 Property::Map got = value.Get<Property::Map>();
1071 DALI_TEST_CHECK(got.Find("key")->Get<int>() == 1);
1075 int UtcDaliPropertyValueGetMapN(void)
1077 Property::Value value;
1078 DALI_TEST_CHECK( NULL == value.GetMap() );
1079 Property::Map map = value.Get<Property::Map>();
1080 DALI_TEST_CHECK( 0 == map.Count() );
1084 int UtcDaliPropertyValueOutputStream(void)
1086 TestApplication application;
1087 tet_infoline("Testing Property::Value output stream");
1088 typedef Dali::Rect<int> Rectangle;
1090 Property::Value value(true);
1092 std::ostringstream stream;
1094 DALI_TEST_CHECK( stream.str() == "1" )
1098 Property::Value empty;
1099 std::ostringstream stream;
1101 DALI_TEST_EQUALS( stream.str(), "empty type", TEST_LOCATION );
1105 Property::Value empty( Property::NONE );
1106 std::ostringstream stream;
1108 DALI_TEST_CHECK( stream.str() == "undefined type" )
1112 Property::Value empty( Property::TYPE_COUNT );
1113 std::ostringstream stream;
1115 DALI_TEST_CHECK( stream.str() == "undefined type" )
1119 value = Property::Value(20.2f);
1120 std::ostringstream stream;
1122 DALI_TEST_CHECK( stream.str() == "20.2" )
1126 value = Property::Value(-25);
1127 std::ostringstream stream;
1129 DALI_TEST_CHECK( stream.str() == "-25" )
1133 value = Property::Value(25U);
1134 std::ostringstream stream;
1136 DALI_TEST_CHECK( stream.str() == "25" )
1140 value = Property::Value( Vector2(1.f,1.f) );
1141 std::ostringstream stream;
1143 DALI_TEST_CHECK( stream.str() == "[1, 1]" );
1147 value = Property::Value( Vector3(1.f,1.f,1.f) );
1148 std::ostringstream stream;
1150 DALI_TEST_CHECK( stream.str() == "[1, 1, 1]" );
1154 value = Property::Value( Vector4(-4.f,-3.f,-2.f,-1.f) );
1155 std::ostringstream stream;
1157 DALI_TEST_EQUALS( stream.str(), "[-4, -3, -2, -1]", TEST_LOCATION );
1161 value = Property::Value( Matrix3::IDENTITY );
1162 std::ostringstream stream;
1164 DALI_TEST_CHECK( stream.str() == "[ [1, 0, 0], [0, 1, 0], [0, 0, 1] ]" );
1168 value = Property::Value( Matrix::IDENTITY );
1169 std::ostringstream stream;
1171 DALI_TEST_CHECK( stream.str() == "[ [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1] ]" );
1175 value = Property::Value( Rectangle(1,2,3,4) );
1176 std::ostringstream stream;
1178 DALI_TEST_CHECK( stream.str() == "[1, 2, 3, 4]" );
1182 value = Property::Value( AngleAxis( Dali::ANGLE_120, Vector3::XAXIS ) );
1183 std::ostringstream stream;
1185 tet_printf("angle axis = %s \n", stream.str().c_str() );
1186 DALI_TEST_EQUALS( stream.str(), "[ Axis: [1, 0, 0], Angle: 120 degrees ]", TEST_LOCATION );
1190 value = Property::Value( std::string( "Foo" ) );
1191 std::ostringstream stream;
1193 DALI_TEST_CHECK( stream.str() == "Foo" );
1196 // Maps and arrays currently not supported, we just check a message is output
1199 value = Property::Value( map );
1200 std::ostringstream stream;
1202 DALI_TEST_CHECK( !stream.str().empty() );
1205 Property::Array array;
1206 value = Property::Value( array );
1207 std::ostringstream stream;
1209 DALI_TEST_CHECK( !stream.str().empty() );