2 * Copyright (c) 2020 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.
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>
26 using namespace Dali::Toolkit;
29 void model_view_startup(void)
31 test_return_value = TET_UNDEF;
34 void model_view_cleanup(void)
36 test_return_value = TET_PASS;
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 "/";
46 // Negative test case for a method
47 int UtcDaliModelViewUninitialized(void)
49 ToolkitTestApplication application;
50 tet_infoline(" UtcDaliModel3dViewUninitialized");
52 Toolkit::Model3dView view;
56 // New() must be called to create a Model3dView or it wont be valid.
57 Actor a = Actor::New();
59 DALI_TEST_CHECK( false );
61 catch (Dali::DaliException& e)
63 // Tests that a negative test of an assertion succeeds
64 DALI_TEST_PRINT_ASSERT( e );
65 DALI_TEST_CHECK(!view);
70 // Positive test case for a method
71 int UtcDaliModelViewNew(void)
73 ToolkitTestApplication application;
74 tet_infoline(" UtcDaliModel3dViewNew");
76 Toolkit::Model3dView view = Toolkit::Model3dView::New();
77 DALI_TEST_CHECK( view );
79 Toolkit::Model3dView view2 = Toolkit::Model3dView::New("","","");
80 DALI_TEST_CHECK( view2 );
84 // Positive test case for a method
85 int UtcDaliModelViewDownCast(void)
87 ToolkitTestApplication application;
88 tet_infoline(" UtcDaliModelViewDownCast");
90 Toolkit::Model3dView view = Toolkit::Model3dView::New();
91 BaseHandle handle(view);
93 Toolkit::Model3dView modelView = Toolkit::Model3dView::DownCast( handle );
94 DALI_TEST_CHECK( view );
95 DALI_TEST_CHECK( modelView );
96 DALI_TEST_CHECK( modelView == view );
101 // Positive test case for a method
102 int UtcDaliModelViewPropertyNames(void)
104 ToolkitTestApplication application;
105 tet_infoline(" UtcDaliModel3dViewPropertyNames");
107 Toolkit::Model3dView view = Toolkit::Model3dView::New();
108 DALI_TEST_CHECK( view );
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 );
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 );
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 );
126 application.GetScene().Add(view);
131 // Positive test case for a method
132 int UtcDaliModelViewAddRemove(void)
134 ToolkitTestApplication application;
135 tet_infoline(" UtcDaliModel3dViewAddRemove");
137 Toolkit::Model3dView view = Toolkit::Model3dView::New();
138 DALI_TEST_CHECK( view );
140 Actor actor = Actor::New();
141 DALI_TEST_CHECK( !actor.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) );
144 view.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
145 view.SetProperty( Actor::Property::SIZE, application.GetScene().GetSize());
147 application.GetScene().Add(view);
149 DALI_TEST_CHECK( actor.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) );
153 DALI_TEST_CHECK( !actor.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) );
158 int UtcDaliModelCopyAndAssignment(void)
160 ToolkitTestApplication application;
162 Model3dView view = Toolkit::Model3dView::New();
163 DALI_TEST_CHECK( view );
165 Model3dView copy( view );
166 DALI_TEST_CHECK( view == copy );
169 DALI_TEST_CHECK( ! assign );
172 DALI_TEST_CHECK( assign == view );
177 int UtcDaliModelMoveConstructor(void)
179 ToolkitTestApplication application;
181 Model3dView view = Toolkit::Model3dView::New();
182 DALI_TEST_EQUALS( 1, view.GetBaseObject().ReferenceCount(), TEST_LOCATION );
183 view.SetProperty( Actor::Property::SENSITIVE, false );
184 DALI_TEST_CHECK( false == view.GetProperty< bool >( Actor::Property::SENSITIVE ) );
186 Model3dView moved = std::move( view );
187 DALI_TEST_CHECK( moved );
188 DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
189 DALI_TEST_CHECK( false == moved.GetProperty< bool >( Actor::Property::SENSITIVE ) );
190 DALI_TEST_CHECK( !view );
195 int UtcDaliModelMoveAssignment(void)
197 ToolkitTestApplication application;
199 Model3dView view = Toolkit::Model3dView::New();
200 DALI_TEST_EQUALS( 1, view.GetBaseObject().ReferenceCount(), TEST_LOCATION );
201 view.SetProperty( Actor::Property::SENSITIVE, false );
202 DALI_TEST_CHECK( false == view.GetProperty< bool >( Actor::Property::SENSITIVE ) );
205 moved = std::move( view );
206 DALI_TEST_CHECK( moved );
207 DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
208 DALI_TEST_CHECK( false == moved.GetProperty< bool >( Actor::Property::SENSITIVE ) );
209 DALI_TEST_CHECK( !view );
214 int UtcDaliModelTypeRegistry(void)
216 ToolkitTestApplication application;
218 TypeRegistry typeRegistry = TypeRegistry::Get();
219 DALI_TEST_CHECK( typeRegistry );
221 TypeInfo typeInfo = typeRegistry.GetTypeInfo( "Model3dView" );
222 DALI_TEST_CHECK( typeInfo );
224 BaseHandle handle = typeInfo.CreateInstance();
225 DALI_TEST_CHECK( handle );
227 Model3dView view = Model3dView::DownCast( handle );
228 DALI_TEST_CHECK( view );
233 int UtcDaliModelOnSizeSet(void)
235 ToolkitTestApplication application;
237 Model3dView view = Toolkit::Model3dView::New();
239 application.GetScene().Add( view );
241 application.SendNotification();
242 application.Render();
244 Vector3 size( 200.0f, 300.0f, 0.0f );
245 view.SetProperty( Actor::Property::SIZE, size );
247 application.SendNotification();
248 application.Render();
250 DALI_TEST_EQUALS( view.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ), size, TEST_LOCATION );