e155ce8630343e32631ec59acb6487a0b7b6714b
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-Model3dView.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
18 #include <iostream>
19 #include <stdlib.h>
20 #include <dali-toolkit-test-suite-utils.h>
21 #include <dali-toolkit/dali-toolkit.h>
22 #include <dali-toolkit/public-api/controls/model3d-view/model3d-view.h>
23
24
25 using namespace Dali;
26 using namespace Dali::Toolkit;
27
28
29 void model_view_startup(void)
30 {
31   test_return_value = TET_UNDEF;
32 }
33
34 void model_view_cleanup(void)
35 {
36   test_return_value = TET_PASS;
37 }
38
39 namespace
40 {
41 const char* TEST_OBJ_FILE_NAME = TEST_RESOURCE_DIR "/Cube.obj";
42 const char* TEST_MTL_FILE_NAME = TEST_RESOURCE_DIR "/ToyRobot-Metal.mtl";
43 const char* TEST_RESOURCE_LOCATION = TEST_RESOURCE_DIR "/";
44 }
45
46 // Negative test case for a method
47 int UtcDaliModelViewUninitialized(void)
48 {
49   ToolkitTestApplication application;
50   tet_infoline(" UtcDaliModel3dViewUninitialized");
51
52   Toolkit::Model3dView view;
53
54   try
55   {
56     // New() must be called to create a Model3dView or it wont be valid.
57     Actor a = Actor::New();
58     view.Add( a );
59     DALI_TEST_CHECK( false );
60   }
61   catch (Dali::DaliException& e)
62   {
63     // Tests that a negative test of an assertion succeeds
64     DALI_TEST_PRINT_ASSERT( e );
65     DALI_TEST_CHECK(!view);
66   }
67   END_TEST;
68 }
69
70 // Positive test case for a method
71 int UtcDaliModelViewNew(void)
72 {
73   ToolkitTestApplication application;
74   tet_infoline(" UtcDaliModel3dViewNew");
75
76   Toolkit::Model3dView view = Toolkit::Model3dView::New();
77   DALI_TEST_CHECK( view );
78
79   Toolkit::Model3dView view2 = Toolkit::Model3dView::New("","","");
80   DALI_TEST_CHECK( view2 );
81   END_TEST;
82 }
83
84 // Positive test case for a method
85 int UtcDaliModelViewDownCast(void)
86 {
87   ToolkitTestApplication application;
88   tet_infoline(" UtcDaliModelViewDownCast");
89
90   Toolkit::Model3dView view = Toolkit::Model3dView::New();
91   BaseHandle handle(view);
92
93   Toolkit::Model3dView modelView = Toolkit::Model3dView::DownCast( handle );
94   DALI_TEST_CHECK( view );
95   DALI_TEST_CHECK( modelView );
96   DALI_TEST_CHECK( modelView == view );
97   END_TEST;
98 }
99
100
101 // Positive test case for a method
102 int UtcDaliModelViewPropertyNames(void)
103 {
104   ToolkitTestApplication application;
105   tet_infoline(" UtcDaliModel3dViewPropertyNames");
106
107   Toolkit::Model3dView view = Toolkit::Model3dView::New();
108   DALI_TEST_CHECK( view );
109
110   view.SetProperty( Model3dView::Property::GEOMETRY_URL, Dali::Property::Value( TEST_OBJ_FILE_NAME ) );
111   Property::Value val = view.GetProperty( Model3dView::Property::GEOMETRY_URL );
112   std::string obj_file_name;
113   DALI_TEST_CHECK( val.Get( obj_file_name ) );
114   DALI_TEST_EQUALS( obj_file_name, TEST_OBJ_FILE_NAME, TEST_LOCATION );
115
116   view.SetProperty( Model3dView::Property::MATERIAL_URL, Dali::Property::Value( TEST_MTL_FILE_NAME ) );
117   val = view.GetProperty( Model3dView::Property::MATERIAL_URL );
118   DALI_TEST_CHECK( val.Get( obj_file_name ) );
119   DALI_TEST_EQUALS( obj_file_name, TEST_MTL_FILE_NAME, TEST_LOCATION );
120
121   view.SetProperty( Model3dView::Property::IMAGES_URL, Dali::Property::Value( TEST_RESOURCE_LOCATION ) );
122   val = view.GetProperty( Model3dView::Property::IMAGES_URL );
123   DALI_TEST_CHECK( val.Get( obj_file_name ) );
124   DALI_TEST_EQUALS( obj_file_name, TEST_RESOURCE_LOCATION, TEST_LOCATION );
125
126   Stage::GetCurrent().Add(view);
127
128   END_TEST;
129 }
130
131 // Positive test case for a method
132 int UtcDaliModelViewAddRemove(void)
133 {
134   ToolkitTestApplication application;
135   tet_infoline(" UtcDaliModel3dViewAddRemove");
136
137   Toolkit::Model3dView view = Toolkit::Model3dView::New();
138   DALI_TEST_CHECK( view );
139
140   Actor actor = Actor::New();
141   DALI_TEST_CHECK( !actor.OnStage() );
142
143
144   view.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
145   view.SetSize(Stage::GetCurrent().GetSize());
146   view.Add(actor);
147   Stage::GetCurrent().Add(view);
148
149   DALI_TEST_CHECK( actor.OnStage() );
150
151   view.Remove(actor);
152
153   DALI_TEST_CHECK( !actor.OnStage() );
154   END_TEST;
155 }
156
157
158 int UtcDaliModelCopyAndAssignment(void)
159 {
160   ToolkitTestApplication application;
161
162   Model3dView view = Toolkit::Model3dView::New();
163   DALI_TEST_CHECK( view );
164
165   Model3dView copy( view );
166   DALI_TEST_CHECK( view == copy );
167
168   Model3dView assign;
169   DALI_TEST_CHECK( ! assign );
170
171   assign = copy;
172   DALI_TEST_CHECK( assign == view );
173
174   END_TEST;
175 }
176
177 int UtcDaliModelTypeRegistry(void)
178 {
179   ToolkitTestApplication application;
180
181   TypeRegistry typeRegistry = TypeRegistry::Get();
182   DALI_TEST_CHECK( typeRegistry );
183
184   TypeInfo typeInfo = typeRegistry.GetTypeInfo( "Model3dView" );
185   DALI_TEST_CHECK( typeInfo );
186
187   BaseHandle handle = typeInfo.CreateInstance();
188   DALI_TEST_CHECK( handle );
189
190   Model3dView view = Model3dView::DownCast( handle );
191   DALI_TEST_CHECK( view );
192
193   END_TEST;
194 }
195
196 int UtcDaliModelOnSizeSet(void)
197 {
198   ToolkitTestApplication application;
199
200   Model3dView view = Toolkit::Model3dView::New();
201
202   Stage::GetCurrent().Add( view );
203
204   application.SendNotification();
205   application.Render();
206
207   Vector3 size( 200.0f, 300.0f, 0.0f );
208   view.SetSize( size );
209
210   application.SendNotification();
211   application.Render();
212
213   DALI_TEST_EQUALS( view.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ), size, TEST_LOCATION );
214
215   END_TEST;
216 }