Merge branch 'devel/master' into devel/graphics
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-CameraView.cpp
1 /*
2  * Copyright (c) 2021 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/camera-view/camera-view.h>
23
24 using namespace Dali;
25 using namespace Dali::Toolkit;
26
27 // Negative test case for a method
28 int UtcDaliCameraViewUninitialized(void)
29 {
30   ToolkitTestApplication application;
31   tet_infoline(" UtcDaliCameraViewUninitialized");
32
33   Toolkit::CameraView view;
34
35   try
36   {
37     // New() must be called to create a CameraView or it wont be valid.
38     Actor a = Actor::New();
39     view.Add( a );
40     DALI_TEST_CHECK( false );
41   }
42   catch (Dali::DaliException& e)
43   {
44     // Tests that a negative test of an assertion succeeds
45     DALI_TEST_PRINT_ASSERT( e );
46     DALI_TEST_CHECK(!view);
47   }
48   END_TEST;
49 }
50
51 // Positive test case for a method
52 int UtcDaliCameraViewNew(void)
53 {
54   ToolkitTestApplication application;
55   tet_infoline(" UtcDaliCameraViewNew");
56   Any dummy( 0 );
57   Toolkit::CameraView view = Toolkit::CameraView::New(dummy);
58   DALI_TEST_CHECK( view );
59   END_TEST;
60 }
61
62 // Positive test case for a method
63 int UtcDaliCameraViewDownCast(void)
64 {
65   ToolkitTestApplication application;
66   tet_infoline(" UtcDaliCameraViewDownCast");
67
68   Any dummy( 0 );
69   Toolkit::CameraView view = Toolkit::CameraView::New(dummy);
70   BaseHandle handle(view);
71
72   Toolkit::CameraView view2 = Toolkit::CameraView::DownCast( handle );
73   DALI_TEST_CHECK( view );
74   DALI_TEST_CHECK( view2 );
75   DALI_TEST_CHECK( view == view2 );
76   END_TEST;
77 }
78
79 int UtcDaliCameraViewCopyAndAssignment(void)
80 {
81   ToolkitTestApplication application;
82   tet_infoline("UtcDaliCameraViewCopyAndAssignment");
83
84   Any dummy( 0 );
85   CameraView view = Toolkit::CameraView::New(dummy);
86   DALI_TEST_CHECK( view );
87
88   CameraView copy( view );
89   DALI_TEST_CHECK( view == copy );
90
91   CameraView assign;
92   DALI_TEST_CHECK( !assign );
93
94   assign = copy;
95   DALI_TEST_CHECK( assign == view );
96
97   END_TEST;
98 }
99
100 int UtcDaliCameraViewMoveAssignment(void)
101 {
102   ToolkitTestApplication application;
103   tet_infoline("UtcDaliCameraViewMoveAssignment");
104
105   Any dummy( 0 );
106   CameraView view = Toolkit::CameraView::New(dummy);
107   DALI_TEST_EQUALS( 1, view.GetBaseObject().ReferenceCount(), TEST_LOCATION );
108
109   CameraView moved;
110   moved = std::move( view );
111   DALI_TEST_CHECK( moved );
112   DALI_TEST_EQUALS( 1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION );
113   DALI_TEST_CHECK( !view );
114
115   END_TEST;
116 }
117
118 int UtcDaliCameraViewTypeRegistry(void)
119 {
120   ToolkitTestApplication application;
121   tet_infoline("UtcDaliCameraViewTypeRegistry");
122
123   TypeRegistry typeRegistry = TypeRegistry::Get();
124   DALI_TEST_CHECK( typeRegistry );
125
126   TypeInfo typeInfo = typeRegistry.GetTypeInfo( "CameraView" );
127   DALI_TEST_CHECK( typeInfo );
128
129   BaseHandle handle = typeInfo.CreateInstance();
130   DALI_TEST_CHECK( handle );
131
132   CameraView view = CameraView::DownCast( handle );
133   DALI_TEST_CHECK( view );
134
135   END_TEST;
136 }
137
138 int UtcDaliCameraViewWindowDisplayType(void)
139 {
140   ToolkitTestApplication application;
141   tet_infoline("UtcDaliCameraViewWindowDisplayType");
142
143   Any dummy( 0 );
144   CameraView cameraView = CameraView::New(dummy, Dali::Toolkit::CameraView::DisplayType::WINDOW);
145   DALI_TEST_CHECK( cameraView );
146
147   application.GetScene().Add( cameraView );
148
149   try
150   {
151     cameraView.Update();
152     application.SendNotification();
153     application.Render();
154     DALI_TEST_CHECK( true );
155   }
156   catch (Dali::DaliException& e)
157   {
158     DALI_TEST_PRINT_ASSERT( e );
159     DALI_TEST_CHECK(false);
160   }
161
162   END_TEST;
163 }
164
165 int UtcDaliCameraViewImageDisplayType(void)
166 {
167   ToolkitTestApplication application;
168   tet_infoline("UtcDaliCameraViewImageDisplayType");
169
170   Any dummy( 0 );
171   CameraView cameraView = CameraView::New(dummy, Dali::Toolkit::CameraView::DisplayType::IMAGE);
172   DALI_TEST_CHECK( cameraView );
173
174   application.GetScene().Add( cameraView );
175
176   try
177   {
178     cameraView.Update();
179     application.SendNotification();
180     application.Render();
181     DALI_TEST_CHECK( true );
182   }
183   catch (Dali::DaliException& e)
184   {
185     DALI_TEST_PRINT_ASSERT( e );
186     DALI_TEST_CHECK(false);
187   }
188
189   END_TEST;
190 }
191
192 int UtcDaliCameraViewCoverUpdateDisplayArea1(void)
193 {
194   ToolkitTestApplication application;
195   tet_infoline("UtcDaliCameraViewUpdateDisplayArea1");
196
197   Any dummy( 0 );
198   CameraView view = CameraView::New(dummy, Dali::Toolkit::CameraView::DisplayType::WINDOW);
199   DALI_TEST_CHECK( view );
200
201   application.GetScene().Add( view );
202
203   application.SendNotification();
204   application.Render();
205
206   Vector3 vector(100.0f, 100.0f, 0.0f);
207   view.SetProperty( Actor::Property::SIZE, vector );
208
209   application.SendNotification();
210   application.Render();
211
212   // Check the size in the new frame
213   DALI_TEST_CHECK(vector == view.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ));
214
215   application.GetScene().Remove(view);
216
217   END_TEST;
218 }
219
220 int UtcDaliCameraViewCoverUpdateDisplayArea2(void)
221 {
222   ToolkitTestApplication application;
223   tet_infoline("UtcDaliCameraViewUpdateDisplayArea2");
224
225   Any dummy( 0 );
226   CameraView view = CameraView::New(dummy, Dali::Toolkit::CameraView::DisplayType::WINDOW);
227   DALI_TEST_CHECK( view );
228
229   application.GetScene().Add( view );
230
231   application.SendNotification();
232   application.Render();
233
234   Vector3 vector(100.0f, 100.0f, 0.0f);
235   view.SetProperty( Actor::Property::SIZE, vector );
236
237   application.SendNotification();
238   application.Render();
239
240   // Check the size in the new frame
241   DALI_TEST_CHECK(vector == view.GetCurrentProperty< Vector3 >( Actor::Property::SIZE ));
242
243   application.GetScene().Remove(view);
244
245   END_TEST;
246 }