Internalized VisualFactory::InitializeVisual templates
[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
125   std::string file;
126   Property::Map map;
127
128   view.SetProperty( VideoView::Property::VIDEO, Property::Map()
129                     .Add("rendererType", "IMAGE")
130                     .Add("url", "video.mpg") // Note, videoView doesn't use this url
131                     .Add("RENDERER_TARGET", "windowSurfaceTarget" )
132                     .Add("width", 100)
133                     .Add("height", 100) );
134
135   Property::Value val = view.GetProperty( VideoView::Property::VIDEO );
136   Property::Map* resultMap = val.GetMap();
137
138   DALI_TEST_CHECK( resultMap );
139   Property::Value* value = resultMap->Find("url");
140   DALI_TEST_CHECK( value );
141   DALI_TEST_EQUALS( value->Get<std::string>(), "video.mpg", TEST_LOCATION );
142
143   END_TEST;
144 }
145
146 int UtcDaliVideoViewProperty2(void)
147 {
148   ToolkitTestApplication application;
149   tet_infoline(" UtcDaliVideoViewProperty2");
150
151   Toolkit::VideoView view = Toolkit::VideoView::New();
152   DALI_TEST_CHECK( view );
153
154   bool looping;
155   Property::Value val = view.GetProperty( VideoView::Property::LOOPING );
156   DALI_TEST_CHECK( val.Get( looping ) );
157   DALI_TEST_CHECK( !looping );
158
159   view.SetProperty( VideoView::Property::LOOPING, true );
160   val = view.GetProperty( VideoView::Property::LOOPING );
161   DALI_TEST_CHECK( val.Get( looping ) );
162   DALI_TEST_CHECK( looping );
163   END_TEST;
164 }
165
166 int UtcDaliVideoViewProperty3(void)
167 {
168   ToolkitTestApplication application;
169   tet_infoline(" UtcDaliVideoViewProperty3");
170
171   Toolkit::VideoView view = Toolkit::VideoView::New();
172   DALI_TEST_CHECK( view );
173
174   bool muted;
175   Property::Value val = view.GetProperty( VideoView::Property::MUTED );
176   DALI_TEST_CHECK( val.Get( muted ) );
177   DALI_TEST_CHECK( !muted );
178
179   view.SetProperty( VideoView::Property::MUTED, true );
180   val = view.GetProperty( VideoView::Property::MUTED );
181   DALI_TEST_CHECK( val.Get( muted ) );
182   DALI_TEST_CHECK( muted );
183   END_TEST;
184 }
185
186 int UtcDaliVideoViewProperty4(void)
187 {
188   ToolkitTestApplication application;
189   tet_infoline(" UtcDaliVideoViewProperty4");
190
191   Toolkit::VideoView view = Toolkit::VideoView::New();
192   DALI_TEST_CHECK( view );
193
194   float left, right;
195   left = right = 0.f;
196
197   Property::Map map;
198   map.Insert( VOLUME_LEFT, 1.0f );
199   map.Insert( VOLUME_RIGHT, 0.5f );
200
201   Property::Map map2;
202   view.SetProperty( VideoView::Property::VOLUME, map );
203   Property::Value val4 = view.GetProperty( VideoView::Property::VOLUME );
204   DALI_TEST_CHECK( val4.Get( map2 ) );
205
206   Property::Value* volumeLeft = map.Find( VOLUME_LEFT );
207   Property::Value* volumeRight = map.Find( VOLUME_RIGHT );
208
209   DALI_TEST_CHECK( volumeLeft && volumeLeft->Get( left ) );
210   DALI_TEST_CHECK( volumeRight && volumeRight->Get( right ) );
211   DALI_TEST_CHECK( left == 1.0f );
212   DALI_TEST_CHECK( right == 0.5f );
213
214   END_TEST;
215 }
216
217 int UtcDaliVideoViewCopyAndAssignment(void)
218 {
219   ToolkitTestApplication application;
220
221   VideoView view = Toolkit::VideoView::New();
222   DALI_TEST_CHECK( view );
223
224   VideoView copy( view );
225   DALI_TEST_CHECK( view == copy );
226
227   VideoView assign;
228   DALI_TEST_CHECK( !assign );
229
230   assign = copy;
231   DALI_TEST_CHECK( assign == view );
232
233   END_TEST;
234 }
235
236 int UtcDaliVideoViewTypeRegistry(void)
237 {
238   ToolkitTestApplication application;
239
240   TypeRegistry typeRegistry = TypeRegistry::Get();
241   DALI_TEST_CHECK( typeRegistry );
242
243   TypeInfo typeInfo = typeRegistry.GetTypeInfo( "VideoView" );
244   DALI_TEST_CHECK( typeInfo );
245
246   BaseHandle handle = typeInfo.CreateInstance();
247   DALI_TEST_CHECK( handle );
248
249   VideoView view = VideoView::DownCast( handle );
250   DALI_TEST_CHECK( view );
251
252   END_TEST;
253 }
254
255 int UtcDaliVideoViewMethodsForCoverage(void)
256 {
257   ToolkitTestApplication application;
258
259   VideoView videoView = VideoView::New();
260   DALI_TEST_CHECK( videoView );
261
262   videoView.Play();
263   videoView.Pause();
264   videoView.Stop();
265   videoView.Forward(10);
266   videoView.Backward(10);
267   VideoView::VideoViewSignalType& signal = videoView.FinishedSignal();
268   DALI_TEST_EQUALS( 0, signal.GetConnectionCount(), TEST_LOCATION );
269
270   END_TEST;
271 }