2 * Copyright (c) 2015 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/video-view/video-view.h>
25 using namespace Dali::Toolkit;
29 const char* const TEST_FILE( "test.mp4" );
30 const char* const VOLUME_LEFT( "volumeLeft" );
31 const char* const VOLUME_RIGHT( "volumeRight" );
32 const char* const RENDERING_TYPE( "renderingTarget" );
36 void video_view_startup(void)
38 test_return_value = TET_UNDEF;
41 void video_view_cleanup(void)
43 test_return_value = TET_PASS;
46 // Negative test case for a method
47 int UtcDaliVideoViewUninitialized(void)
49 ToolkitTestApplication application;
50 tet_infoline(" UtcDaliVideoViewUninitialized");
52 Toolkit::VideoView view;
56 // New() must be called to create a VideoView 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 UtcDaliVideoViewNew(void)
73 ToolkitTestApplication application;
74 tet_infoline(" UtcDaliVideoViewNew");
76 Toolkit::VideoView view = Toolkit::VideoView::New();
77 DALI_TEST_CHECK( view );
79 Toolkit::VideoView view2 = Toolkit::VideoView::New( "" );
80 DALI_TEST_CHECK( view2 );
84 // Positive test case for a method
85 int UtcDaliVideoViewDownCast(void)
87 ToolkitTestApplication application;
88 tet_infoline(" UtcDaliVideoViewDownCast");
90 Toolkit::VideoView view = Toolkit::VideoView::New();
91 BaseHandle handle(view);
93 Toolkit::VideoView view2 = Toolkit::VideoView::DownCast( handle );
94 DALI_TEST_CHECK( view );
95 DALI_TEST_CHECK( view2 );
96 DALI_TEST_CHECK( view == view2 );
100 // Positive test case for a method
101 int UtcDaliVideoViewProperty1(void)
103 ToolkitTestApplication application;
104 tet_infoline(" UtcDaliVideoViewProperty1");
106 Toolkit::VideoView view = Toolkit::VideoView::New();
107 DALI_TEST_CHECK( view );
110 view.SetProperty( VideoView::Property::VIDEO, TEST_FILE );
111 Property::Value val = view.GetProperty( VideoView::Property::VIDEO );
112 DALI_TEST_CHECK( val.Get( file ) );
113 DALI_TEST_CHECK( file == TEST_FILE );
117 // Positive test case for a method
118 int UtcDaliVideoViewProperty1b(void)
120 ToolkitTestApplication application;
121 tet_infoline(" UtcDaliVideoViewProperty1");
123 Toolkit::VideoView view = Toolkit::VideoView::New();
124 DALI_TEST_CHECK( view );
125 Stage stage = Stage::GetCurrent();
130 view.SetProperty( VideoView::Property::VIDEO, Property::Map()
131 .Add("rendererType", "IMAGE")
132 .Add("url", "video.mpg") // Note, videoView doesn't use this url
133 .Add("RENDERING_TARGET", "windowSurfaceTarget" )
135 .Add("height", 100) );
139 Property::Value val = view.GetProperty( VideoView::Property::VIDEO );
140 Property::Map* resultMap = val.GetMap();
142 DALI_TEST_CHECK( resultMap );
143 Property::Value* value = resultMap->Find("url");
144 DALI_TEST_CHECK( value );
145 DALI_TEST_EQUALS( value->Get<std::string>(), "video.mpg", TEST_LOCATION );
147 stage.Remove( view );
152 int UtcDaliVideoViewProperty2(void)
154 ToolkitTestApplication application;
155 tet_infoline(" UtcDaliVideoViewProperty2");
157 Toolkit::VideoView view = Toolkit::VideoView::New();
158 DALI_TEST_CHECK( view );
161 Property::Value val = view.GetProperty( VideoView::Property::LOOPING );
162 DALI_TEST_CHECK( val.Get( looping ) );
163 DALI_TEST_CHECK( !looping );
165 view.SetProperty( VideoView::Property::LOOPING, true );
166 val = view.GetProperty( VideoView::Property::LOOPING );
167 DALI_TEST_CHECK( val.Get( looping ) );
168 DALI_TEST_CHECK( looping );
172 int UtcDaliVideoViewProperty3(void)
174 ToolkitTestApplication application;
175 tet_infoline(" UtcDaliVideoViewProperty3");
177 Toolkit::VideoView view = Toolkit::VideoView::New();
178 DALI_TEST_CHECK( view );
181 Property::Value val = view.GetProperty( VideoView::Property::MUTED );
182 DALI_TEST_CHECK( val.Get( muted ) );
183 DALI_TEST_CHECK( !muted );
185 view.SetProperty( VideoView::Property::MUTED, true );
186 val = view.GetProperty( VideoView::Property::MUTED );
187 DALI_TEST_CHECK( val.Get( muted ) );
188 DALI_TEST_CHECK( muted );
193 int UtcDaliVideoViewProperty4(void)
195 ToolkitTestApplication application;
196 tet_infoline(" UtcDaliVideoViewProperty4");
198 Toolkit::VideoView view = Toolkit::VideoView::New();
199 DALI_TEST_CHECK( view );
205 map.Insert( VOLUME_LEFT, 0.5f );
206 map.Insert( VOLUME_RIGHT, 0.5f );
208 view.SetProperty( VideoView::Property::VOLUME, map );
209 Property::Value val = view.GetProperty( VideoView::Property::VOLUME );
212 DALI_TEST_CHECK( val.Get( map2 ) );
214 Property::Value* volumeLeft = map2.Find( VOLUME_LEFT );
215 Property::Value* volumeRight = map2.Find( VOLUME_RIGHT );
217 DALI_TEST_CHECK( volumeLeft && volumeLeft->Get( left ) );
218 DALI_TEST_CHECK( volumeRight && volumeRight->Get( right ) );
219 DALI_TEST_CHECK( left == 0.5f );
220 DALI_TEST_CHECK( right == 0.5f );
225 int UtcDaliVideoViewCopyAndAssignment(void)
227 ToolkitTestApplication application;
229 VideoView view = Toolkit::VideoView::New();
230 DALI_TEST_CHECK( view );
232 VideoView copy( view );
233 DALI_TEST_CHECK( view == copy );
236 DALI_TEST_CHECK( !assign );
239 DALI_TEST_CHECK( assign == view );
244 int UtcDaliVideoViewTypeRegistry(void)
246 ToolkitTestApplication application;
248 TypeRegistry typeRegistry = TypeRegistry::Get();
249 DALI_TEST_CHECK( typeRegistry );
251 TypeInfo typeInfo = typeRegistry.GetTypeInfo( "VideoView" );
252 DALI_TEST_CHECK( typeInfo );
254 BaseHandle handle = typeInfo.CreateInstance();
255 DALI_TEST_CHECK( handle );
257 VideoView view = VideoView::DownCast( handle );
258 DALI_TEST_CHECK( view );
263 int UtcDaliVideoViewMethodsForCoverage(void)
265 ToolkitTestApplication application;
267 VideoView videoView = VideoView::New();
268 DALI_TEST_CHECK( videoView );
273 videoView.Forward(10);
274 videoView.Backward(10);
275 VideoView::VideoViewSignalType& signal = videoView.FinishedSignal();
276 DALI_TEST_EQUALS( 0, signal.GetConnectionCount(), TEST_LOCATION );
281 int UtcDaliVideoViewMethodsForRenderType(void)
283 ToolkitTestApplication application;
284 VideoView videoView = VideoView::New();
285 DALI_TEST_CHECK( videoView );
287 Property::Map windowSurfaceTarget;
288 Property::Map nativeImageTarget;
290 windowSurfaceTarget.Insert( RENDERING_TYPE, "windowSurfaceTarget" );
291 nativeImageTarget.Insert( RENDERING_TYPE, "nativeImageTarget" );
294 Property::Value value;
295 videoView.SetProperty( VideoView::Property::VIDEO, windowSurfaceTarget );
297 value = videoView.GetProperty( VideoView::Property::VIDEO );
298 DALI_TEST_CHECK( value.Get( map ) );
300 Property::Value* type = map.Find( RENDERING_TYPE );
301 DALI_TEST_CHECK( type );
302 DALI_TEST_EQUALS( "windowSurfaceTarget", type->Get<std::string>(), TEST_LOCATION );
304 videoView.SetProperty( VideoView::Property::VIDEO, nativeImageTarget );
306 value = videoView.GetProperty( VideoView::Property::VIDEO );
307 DALI_TEST_CHECK( value.Get( map ) );
308 type = map.Find( RENDERING_TYPE );
310 DALI_TEST_CHECK( type );
311 DALI_TEST_EQUALS( "nativeImageTarget", type->Get<std::string>(), TEST_LOCATION );