Stop resetting transform values to default in OnRelayout & OnSizeSet
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-VideoView.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/video-view/video-view.h>
23
24 using namespace Dali;
25 using namespace Dali::Toolkit;
26
27 namespace
28 {
29 const char* const TEST_FILE( "test.mp4" );
30 const char* const VOLUME_LEFT( "volumeLeft" );
31 const char* const VOLUME_RIGHT( "volumeRight" );
32
33 }
34
35 void video_view_startup(void)
36 {
37   test_return_value = TET_UNDEF;
38 }
39
40 void video_view_cleanup(void)
41 {
42   test_return_value = TET_PASS;
43 }
44
45 // Negative test case for a method
46 int UtcDaliVideoViewUninitialized(void)
47 {
48   ToolkitTestApplication application;
49   tet_infoline(" UtcDaliVideoViewUninitialized");
50
51   Toolkit::VideoView view;
52
53   try
54   {
55     // New() must be called to create a VideoView or it wont be valid.
56     Actor a = Actor::New();
57     view.Add( a );
58     DALI_TEST_CHECK( false );
59   }
60   catch (Dali::DaliException& e)
61   {
62     // Tests that a negative test of an assertion succeeds
63     DALI_TEST_PRINT_ASSERT( e );
64     DALI_TEST_CHECK(!view);
65   }
66   END_TEST;
67 }
68
69 // Positive test case for a method
70 int UtcDaliVideoViewNew(void)
71 {
72   ToolkitTestApplication application;
73   tet_infoline(" UtcDaliVideoViewNew");
74
75   Toolkit::VideoView view = Toolkit::VideoView::New();
76   DALI_TEST_CHECK( view );
77
78   Toolkit::VideoView view2 = Toolkit::VideoView::New( "" );
79   DALI_TEST_CHECK( view2 );
80   END_TEST;
81 }
82
83 // Positive test case for a method
84 int UtcDaliVideoViewDownCast(void)
85 {
86   ToolkitTestApplication application;
87   tet_infoline(" UtcDaliVideoViewDownCast");
88
89   Toolkit::VideoView view = Toolkit::VideoView::New();
90   BaseHandle handle(view);
91
92   Toolkit::VideoView view2 = Toolkit::VideoView::DownCast( handle );
93   DALI_TEST_CHECK( view );
94   DALI_TEST_CHECK( view2 );
95   DALI_TEST_CHECK( view == view2 );
96   END_TEST;
97 }
98
99 // Positive test case for a method
100 int UtcDaliVideoViewProperty1(void)
101 {
102   ToolkitTestApplication application;
103   tet_infoline(" UtcDaliVideoViewProperty1");
104
105   Toolkit::VideoView view = Toolkit::VideoView::New();
106   DALI_TEST_CHECK( view );
107
108   std::string file;
109   view.SetProperty( VideoView::Property::VIDEO, TEST_FILE );
110   Property::Value val = view.GetProperty( VideoView::Property::VIDEO );
111   DALI_TEST_CHECK( val.Get( file ) );
112   DALI_TEST_CHECK( file == TEST_FILE );
113   END_TEST;
114 }
115
116 // Positive test case for a method
117 int UtcDaliVideoViewProperty1b(void)
118 {
119   ToolkitTestApplication application;
120   tet_infoline(" UtcDaliVideoViewProperty1");
121
122   Toolkit::VideoView view = Toolkit::VideoView::New();
123   DALI_TEST_CHECK( view );
124   Stage stage = Stage::GetCurrent();
125
126   std::string file;
127   Property::Map map;
128
129   view.SetProperty( VideoView::Property::VIDEO, Property::Map()
130                     .Add("rendererType", "IMAGE")
131                     .Add("url", "video.mpg") // Note, videoView doesn't use this url
132                     .Add("RENDERING_TARGET", "windowSurfaceTarget" )
133                     .Add("width", 100)
134                     .Add("height", 100) );
135
136   stage.Add( view );
137
138   Property::Value val = view.GetProperty( VideoView::Property::VIDEO );
139   Property::Map* resultMap = val.GetMap();
140
141   DALI_TEST_CHECK( resultMap );
142   Property::Value* value = resultMap->Find("url");
143   DALI_TEST_CHECK( value );
144   DALI_TEST_EQUALS( value->Get<std::string>(), "video.mpg", TEST_LOCATION );
145
146   stage.Remove( view );
147
148   END_TEST;
149 }
150
151 int UtcDaliVideoViewProperty2(void)
152 {
153   ToolkitTestApplication application;
154   tet_infoline(" UtcDaliVideoViewProperty2");
155
156   Toolkit::VideoView view = Toolkit::VideoView::New();
157   DALI_TEST_CHECK( view );
158
159   bool looping;
160   Property::Value val = view.GetProperty( VideoView::Property::LOOPING );
161   DALI_TEST_CHECK( val.Get( looping ) );
162   DALI_TEST_CHECK( !looping );
163
164   view.SetProperty( VideoView::Property::LOOPING, true );
165   val = view.GetProperty( VideoView::Property::LOOPING );
166   DALI_TEST_CHECK( val.Get( looping ) );
167   DALI_TEST_CHECK( looping );
168   END_TEST;
169 }
170
171 int UtcDaliVideoViewProperty3(void)
172 {
173   ToolkitTestApplication application;
174   tet_infoline(" UtcDaliVideoViewProperty3");
175
176   Toolkit::VideoView view = Toolkit::VideoView::New();
177   DALI_TEST_CHECK( view );
178
179   bool muted;
180   Property::Value val = view.GetProperty( VideoView::Property::MUTED );
181   DALI_TEST_CHECK( val.Get( muted ) );
182   DALI_TEST_CHECK( !muted );
183
184   view.SetProperty( VideoView::Property::MUTED, true );
185   val = view.GetProperty( VideoView::Property::MUTED );
186   DALI_TEST_CHECK( val.Get( muted ) );
187   DALI_TEST_CHECK( muted );
188
189   END_TEST;
190 }
191
192 int UtcDaliVideoViewProperty4(void)
193 {
194   ToolkitTestApplication application;
195   tet_infoline(" UtcDaliVideoViewProperty4");
196
197   Toolkit::VideoView view = Toolkit::VideoView::New();
198   DALI_TEST_CHECK( view );
199
200   float left, right;
201   left = right = 0.f;
202
203   Property::Map map;
204   map.Insert( VOLUME_LEFT, 1.0f );
205   map.Insert( VOLUME_RIGHT, 0.5f );
206
207   Property::Map map2;
208   view.SetProperty( VideoView::Property::VOLUME, map );
209   Property::Value val4 = view.GetProperty( VideoView::Property::VOLUME );
210   DALI_TEST_CHECK( val4.Get( map2 ) );
211
212   Property::Value* volumeLeft = map.Find( VOLUME_LEFT );
213   Property::Value* volumeRight = map.Find( VOLUME_RIGHT );
214
215   DALI_TEST_CHECK( volumeLeft && volumeLeft->Get( left ) );
216   DALI_TEST_CHECK( volumeRight && volumeRight->Get( right ) );
217   DALI_TEST_CHECK( left == 1.0f );
218   DALI_TEST_CHECK( right == 0.5f );
219
220   END_TEST;
221 }
222
223 int UtcDaliVideoViewCopyAndAssignment(void)
224 {
225   ToolkitTestApplication application;
226
227   VideoView view = Toolkit::VideoView::New();
228   DALI_TEST_CHECK( view );
229
230   VideoView copy( view );
231   DALI_TEST_CHECK( view == copy );
232
233   VideoView assign;
234   DALI_TEST_CHECK( !assign );
235
236   assign = copy;
237   DALI_TEST_CHECK( assign == view );
238
239   END_TEST;
240 }
241
242 int UtcDaliVideoViewTypeRegistry(void)
243 {
244   ToolkitTestApplication application;
245
246   TypeRegistry typeRegistry = TypeRegistry::Get();
247   DALI_TEST_CHECK( typeRegistry );
248
249   TypeInfo typeInfo = typeRegistry.GetTypeInfo( "VideoView" );
250   DALI_TEST_CHECK( typeInfo );
251
252   BaseHandle handle = typeInfo.CreateInstance();
253   DALI_TEST_CHECK( handle );
254
255   VideoView view = VideoView::DownCast( handle );
256   DALI_TEST_CHECK( view );
257
258   END_TEST;
259 }
260
261 int UtcDaliVideoViewMethodsForCoverage(void)
262 {
263   ToolkitTestApplication application;
264
265   VideoView videoView = VideoView::New();
266   DALI_TEST_CHECK( videoView );
267
268   videoView.Play();
269   videoView.Pause();
270   videoView.Stop();
271   videoView.Forward(10);
272   videoView.Backward(10);
273   VideoView::VideoViewSignalType& signal = videoView.FinishedSignal();
274   DALI_TEST_EQUALS( 0, signal.GetConnectionCount(), TEST_LOCATION );
275
276   END_TEST;
277 }