Package elisa :: Package core :: Package tests :: Module test_player
[hide private]
[frames] | no frames]

Source Code for Module elisa.core.tests.test_player

  1  # Elisa - Home multimedia server 
  2  # Copyright (C) 2006-2008 Fluendo Embedded S.L. (www.fluendo.com). 
  3  # All rights reserved. 
  4  # 
  5  # This file is available under one of two license agreements. 
  6  # 
  7  # This file is licensed under the GPL version 3. 
  8  # See "LICENSE.GPL" in the root of this distribution including a special 
  9  # exception to use Elisa with Fluendo's plugins. 
 10  # 
 11  # The GPL part of Elisa is also available under a commercial licensing 
 12  # agreement from Fluendo. 
 13  # See "LICENSE.Elisa" in the root directory of this distribution package 
 14  # for details on that license. 
 15   
 16  from twisted.trial import unittest 
 17  from elisa.core.tests.elisa_test_case import ElisaTestCase, BoilerPlateApp 
 18  from elisa.core import common, player_engine_registry, player, media_uri 
 19  from elisa.base_components import player_engine 
 20   
 21  from elisa.core.player import STATES 
 22   
 23  from test_player_engine import FooEngine, StupidPipe 
 24   
 25  import gst 
 26   
27 -class StupidRegistry(object):
28 29 engine = None 30
31 - def __init__(self):
32 pass
33
34 - def create_engine_for_scheme(self, uri_scheme):
35 if uri_scheme == 'non': 36 self.engine = None 37 raise player_engine_registry.NoEngineFound() 38 39 self.engine = FooEngine() 40 return self.engine
41
42 -class simpleManager(object):
43 - def get_real_uri(self, res):
44 return res
45
46 -class TestPlayer(ElisaTestCase):
47
48 - def setUp(self):
49 ElisaTestCase.setUp(self) 50 self._registry = StupidRegistry() 51 self._player = player.Player(self._registry) 52 53 app = BoilerPlateApp('empty.conf') 54 common.set_application(app) 55 56 from elisa.core.common import application 57 application.media_manager = simpleManager()
58
59 - def test_player(self):
60 player = self._player 61 player.uri = media_uri.MediaUri('foo://host/path/file') 62 engine = self._registry.engine 63 self.assertFalse(engine == None) 64 65 engine.state = STATES.STOPPED 66 player.play() 67 self.assertEquals(engine.state, STATES.LOADING) 68 self.assertEquals(engine.pipeline.state, gst.STATE_PLAYING) 69 70 engine.state = STATES.PLAYING 71 player.pause() 72 self.assertEquals(engine.pipeline.state, gst.STATE_PAUSED) 73 74 engine.state = STATES.PLAYING 75 player.toggle_play_pause() 76 self.assertEquals(engine.pipeline.state, gst.STATE_PAUSED) 77 78 engine.state = STATES.PAUSED 79 player.toggle_play_pause() 80 self.assertEquals(engine.pipeline.state, gst.STATE_PLAYING) 81 82 engine.state = STATES.PAUSED 83 player.play() 84 self.assertEquals(engine.state, STATES.PLAYING) 85 self.assertEquals(engine.pipeline.state, gst.STATE_PLAYING) 86 87 engine.state = STATES.PLAYING 88 player.stop() 89 self.assertEquals(engine.pipeline.state, gst.STATE_READY) 90 91 engine.state = STATES.PLAYING 92 player.restart_from_beginning() 93 self.assertEquals(engine.pipeline.state, gst.STATE_PLAYING) 94 95 player.volume = 5 96 self.assertEquals(engine.volume, 5) 97 98 player.muted = True 99 self.assertEquals(engine.volume, 0) 100 self.assertTrue(player.muted) 101 self.assertEquals(player.volume, 5) 102 103 player.muted = False 104 self.assertEquals(engine.volume, 5) 105 self.assertEquals(player.volume, 5) 106 self.assertEquals(player.muted, False) 107 108 self.assertEquals(player.position, -1) 109 self.assertEquals(player.duration, -1) 110 111 player.video_sink = True 112 self.assertTrue(engine.video_sink) 113 self.assertTrue(player.video_sink) 114 115 player.audio_sink = True 116 self.assertTrue(engine.audio_sink) 117 self.assertTrue(player.audio_sink) 118 119 player.uri = media_uri.MediaUri('foo://host/path/file') 120 self.assertEquals(engine, self._registry.engine) 121 122 player.uri = media_uri.MediaUri('bar://host/path/file') 123 self.assertFalse(engine == self._registry.engine) 124 125 engine = self._registry.engine 126 127 player.uri = media_uri.MediaUri('non://host/path/file') 128 self.assertFalse(engine == self._registry.engine) 129 130 player.uri = media_uri.MediaUri('non://host/path/wrong') 131 self.assertEquals(self._registry.engine, None)
132