Added ability to have strings over multiple lines in JSON using a Property Array
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit-internal / utc-Dali-PropertyHelper.cpp
1 /*
2  * Copyright (c) 2017 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
18 #include <dali-toolkit-test-suite-utils.h>
19 #include <dali-toolkit/internal/helpers/property-helper.h>
20
21 using namespace Dali;
22 using namespace Dali::Toolkit;
23
24 void dali_property_helper_startup(void)
25 {
26   test_return_value = TET_UNDEF;
27 }
28
29 void dali_property_helper_cleanup(void)
30 {
31   test_return_value = TET_PASS;
32 }
33
34 int UtcDaliPropertyHelperGetStringFromPropertyWithString(void)
35 {
36   tet_infoline( "Test to check if a simple string is parsed correctly" );
37
38   const std::string inputString = "Hello World";
39   Property::Value value( inputString );
40
41   std::string output;
42   DALI_TEST_CHECK( Toolkit::Internal::GetStringFromProperty( value, output ) );
43   DALI_TEST_EQUALS( output, inputString, TEST_LOCATION );
44
45   END_TEST;
46 }
47
48 int UtcDaliPropertyHelperGetStringFromPropertyWithEmptyValue(void)
49 {
50   tet_infoline( "Test to ensure if an empty value returns false" );
51
52   std::string output;
53   DALI_TEST_CHECK( ! Toolkit::Internal::GetStringFromProperty( Property::Value(), output ) );
54
55   END_TEST;
56 }
57
58 int UtcDaliPropertyHelperGetStringFromPropertyWithStringArray(void)
59 {
60   tet_infoline( "Test to check if a string array is parsed correctly and adds new line characters too" );
61
62   Property::Value value( Property::Array().Add( "Hello World" )
63                                           .Add( "The Quick Brown Fox" )
64                                           .Add( "Jumps over the lazy dog" ) );
65
66   std::string output;
67   DALI_TEST_CHECK( Toolkit::Internal::GetStringFromProperty( value, output ) );
68   DALI_TEST_CHECK( output.find( "Hello World\n" ) != std::string::npos );
69   DALI_TEST_CHECK( output.find( "The Quick Brown Fox\n" ) != std::string::npos );
70   DALI_TEST_CHECK( output.find( "Jumps over the lazy dog\n" ) != std::string::npos );
71
72   END_TEST;
73 }
74
75 int UtcDaliPropertyHelperGetStringFromPropertyWithEmptyArray(void)
76 {
77   tet_infoline( "Test to check if an empty array returns false" );
78
79   Property::Array array;
80
81   std::string output;
82   DALI_TEST_CHECK( ! Toolkit::Internal::GetStringFromProperty( Property::Value( array ), output ) );
83
84   END_TEST;
85 }
86
87 int UtcDaliPropertyHelperGetStringFromPropertyWithMultipleTypesInArray(void)
88 {
89   tet_infoline( "Test to ensure an array with multiple types returns false" );
90
91   Property::Value value( Property::Array().Add( "Hello World" )
92                                           .Add( "The Quick Brown Fox" )
93                                           .Add( 1 )
94                                           .Add( "Jumps" )
95                                           .Add( 25 )
96                                           .Add( "Over" ) );
97
98   std::string output;
99   DALI_TEST_CHECK( ! Toolkit::Internal::GetStringFromProperty( value, output ) );
100   DALI_TEST_CHECK( output.empty() );
101
102   END_TEST;
103 }