2 * Copyright (c) 2022 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.
18 #include <dali-toolkit-test-suite-utils.h>
19 #include <dali-toolkit/dali-toolkit.h>
20 #include <dali-toolkit/public-api/controls/model3d-view/model3d-view.h>
25 using namespace Dali::Toolkit;
27 void model_view_startup(void)
29 test_return_value = TET_UNDEF;
32 void model_view_cleanup(void)
34 test_return_value = TET_PASS;
39 const char* TEST_OBJ_FILE_NAME = TEST_RESOURCE_DIR "/Cube.obj";
40 const char* TEST_MTL_FILE_NAME = TEST_RESOURCE_DIR "/ToyRobot-Metal.mtl";
41 const char* TEST_RESOURCE_LOCATION = TEST_RESOURCE_DIR "/";
44 // Negative test case for a method
45 int UtcDaliModelViewUninitialized(void)
47 ToolkitTestApplication application;
48 tet_infoline(" UtcDaliModel3dViewUninitialized");
50 Toolkit::Model3dView view;
54 // New() must be called to create a Model3dView or it wont be valid.
55 Actor a = Actor::New();
57 DALI_TEST_CHECK(false);
59 catch(Dali::DaliException& e)
61 // Tests that a negative test of an assertion succeeds
62 DALI_TEST_PRINT_ASSERT(e);
63 DALI_TEST_CHECK(!view);
68 // Positive test case for a method
69 int UtcDaliModelViewNew(void)
71 ToolkitTestApplication application;
72 tet_infoline(" UtcDaliModel3dViewNew");
74 Toolkit::Model3dView view = Toolkit::Model3dView::New();
75 DALI_TEST_CHECK(view);
77 Toolkit::Model3dView view2 = Toolkit::Model3dView::New("", "", "");
78 DALI_TEST_CHECK(view2);
82 // Positive test case for a method
83 int UtcDaliModelViewDownCast(void)
85 ToolkitTestApplication application;
86 tet_infoline(" UtcDaliModelViewDownCast");
88 Toolkit::Model3dView view = Toolkit::Model3dView::New();
89 BaseHandle handle(view);
91 Toolkit::Model3dView modelView = Toolkit::Model3dView::DownCast(handle);
92 DALI_TEST_CHECK(view);
93 DALI_TEST_CHECK(modelView);
94 DALI_TEST_CHECK(modelView == view);
98 // Positive test case for a method
99 int UtcDaliModelViewPropertyNames(void)
101 ToolkitTestApplication application;
102 tet_infoline(" UtcDaliModel3dViewPropertyNames");
104 Toolkit::Model3dView view = Toolkit::Model3dView::New();
105 DALI_TEST_CHECK(view);
107 view.SetProperty(Model3dView::Property::GEOMETRY_URL, Dali::Property::Value(TEST_OBJ_FILE_NAME));
108 Property::Value val = view.GetProperty(Model3dView::Property::GEOMETRY_URL);
109 std::string obj_file_name;
110 DALI_TEST_CHECK(val.Get(obj_file_name));
111 DALI_TEST_EQUALS(obj_file_name, TEST_OBJ_FILE_NAME, TEST_LOCATION);
113 view.SetProperty(Model3dView::Property::MATERIAL_URL, Dali::Property::Value(TEST_MTL_FILE_NAME));
114 val = view.GetProperty(Model3dView::Property::MATERIAL_URL);
115 DALI_TEST_CHECK(val.Get(obj_file_name));
116 DALI_TEST_EQUALS(obj_file_name, TEST_MTL_FILE_NAME, TEST_LOCATION);
118 view.SetProperty(Model3dView::Property::IMAGES_URL, Dali::Property::Value(TEST_RESOURCE_LOCATION));
119 val = view.GetProperty(Model3dView::Property::IMAGES_URL);
120 DALI_TEST_CHECK(val.Get(obj_file_name));
121 DALI_TEST_EQUALS(obj_file_name, TEST_RESOURCE_LOCATION, TEST_LOCATION);
123 application.GetScene().Add(view);
128 // Positive test case for a method
129 int UtcDaliModelViewAddRemove(void)
131 ToolkitTestApplication application;
132 tet_infoline(" UtcDaliModel3dViewAddRemove");
134 Toolkit::Model3dView view = Toolkit::Model3dView::New();
135 DALI_TEST_CHECK(view);
137 Actor actor = Actor::New();
138 DALI_TEST_CHECK(!actor.GetProperty<bool>(Actor::Property::CONNECTED_TO_SCENE));
140 view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
141 view.SetProperty(Actor::Property::SIZE, application.GetScene().GetSize());
143 application.GetScene().Add(view);
145 DALI_TEST_CHECK(actor.GetProperty<bool>(Actor::Property::CONNECTED_TO_SCENE));
149 DALI_TEST_CHECK(!actor.GetProperty<bool>(Actor::Property::CONNECTED_TO_SCENE));
153 int UtcDaliModelCopyAndAssignment(void)
155 ToolkitTestApplication application;
157 Model3dView view = Toolkit::Model3dView::New();
158 DALI_TEST_CHECK(view);
160 Model3dView copy(view);
161 DALI_TEST_CHECK(view == copy);
164 DALI_TEST_CHECK(!assign);
167 DALI_TEST_CHECK(assign == view);
172 int UtcDaliModelMoveConstructor(void)
174 ToolkitTestApplication application;
176 Model3dView view = Toolkit::Model3dView::New();
177 DALI_TEST_EQUALS(1, view.GetBaseObject().ReferenceCount(), TEST_LOCATION);
178 view.SetProperty(Actor::Property::SENSITIVE, false);
179 DALI_TEST_CHECK(false == view.GetProperty<bool>(Actor::Property::SENSITIVE));
181 Model3dView moved = std::move(view);
182 DALI_TEST_CHECK(moved);
183 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
184 DALI_TEST_CHECK(false == moved.GetProperty<bool>(Actor::Property::SENSITIVE));
185 DALI_TEST_CHECK(!view);
190 int UtcDaliModelMoveAssignment(void)
192 ToolkitTestApplication application;
194 Model3dView view = Toolkit::Model3dView::New();
195 DALI_TEST_EQUALS(1, view.GetBaseObject().ReferenceCount(), TEST_LOCATION);
196 view.SetProperty(Actor::Property::SENSITIVE, false);
197 DALI_TEST_CHECK(false == view.GetProperty<bool>(Actor::Property::SENSITIVE));
200 moved = std::move(view);
201 DALI_TEST_CHECK(moved);
202 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
203 DALI_TEST_CHECK(false == moved.GetProperty<bool>(Actor::Property::SENSITIVE));
204 DALI_TEST_CHECK(!view);
209 int UtcDaliModelTypeRegistry(void)
211 ToolkitTestApplication application;
213 TypeRegistry typeRegistry = TypeRegistry::Get();
214 DALI_TEST_CHECK(typeRegistry);
216 TypeInfo typeInfo = typeRegistry.GetTypeInfo("Model3dView");
217 DALI_TEST_CHECK(typeInfo);
219 BaseHandle handle = typeInfo.CreateInstance();
220 DALI_TEST_CHECK(handle);
222 Model3dView view = Model3dView::DownCast(handle);
223 DALI_TEST_CHECK(view);
228 int UtcDaliModelOnSizeSet(void)
230 ToolkitTestApplication application;
232 Model3dView view = Toolkit::Model3dView::New();
234 application.GetScene().Add(view);
236 application.SendNotification();
237 application.Render();
239 Vector3 size(200.0f, 300.0f, 0.0f);
240 view.SetProperty(Actor::Property::SIZE, size);
242 application.SendNotification();
243 application.Render();
245 DALI_TEST_EQUALS(view.GetCurrentProperty<Vector3>(Actor::Property::SIZE), size, TEST_LOCATION);