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

Source Code for Module elisa.core.tests.test_player_registry

  1  #-*- coding: utf-8 -*- 
  2  # Elisa - Home multimedia server 
  3  # Copyright (C) 2006-2008 Fluendo Embedded S.L. (www.fluendo.com). 
  4  # All rights reserved. 
  5  # 
  6  # This file is available under one of two license agreements. 
  7  # 
  8  # This file is licensed under the GPL version 3. 
  9  # See "LICENSE.GPL" in the root of this distribution including a special 
 10  # exception to use Elisa with Fluendo's plugins. 
 11  # 
 12  # The GPL part of Elisa is also available under a commercial licensing 
 13  # agreement from Fluendo. 
 14  # See "LICENSE.Elisa" in the root directory of this distribution package 
 15  # for details on that license. 
 16   
 17  from twisted.trial import unittest 
 18  from elisa.core.tests.elisa_test_case import ElisaTestCase, BoilerPlateApp 
 19  from elisa.core import common, player_engine_registry, plugin, media_uri 
 20  from elisa.base_components import player_engine 
 21   
 22  from elisa.core.player import STATES, Player 
 23   
 24  from test_player_engine import FooEngine, StupidPipe 
 25   
 26  from elisa.core.player_registry import PlayerRegistry 
 27   
 28  import gst 
 29   
30 -class StupidRegistry(object):
31 32 engine = None 33
34 - def __init__(self):
35 pass
36
37 - def create_engine_for_scheme(self, uri_scheme):
38 if uri_scheme == 'non': 39 self.engine = None 40 raise player_engine_registry.NoEngineFound() 41 42 self.engine = FooEngine() 43 return self.engine
44
45 -class simpleManager(object):
46 - def get_real_uri(self, res):
47 return res
48
49 -class FooPlugin(plugin.Plugin):
50 name = 'foo' 51 components = {'foo_eng': {'path':FooEngine}, 52 }
53 54
55 -class TestPlayerRegistry(ElisaTestCase):
56
57 - def setUp(self):
58 ElisaTestCase.setUp(self) 59 self._player_registry = PlayerRegistry() 60 61 app = BoilerPlateApp('empty.conf') 62 common.set_application(app) 63 64 registry = app.plugin_registry 65 registry.register_plugin(FooPlugin) 66 67 app.config.set_option('player_engines', 68 ['foo:foo_eng']) 69 70 from elisa.core.common import application 71 application.media_manager = simpleManager() 72 73 self._player_registry.initialize()
74
75 - def test_player_registry(self):
76 77 player_registry = self._player_registry 78 player = player_registry.create_player() 79 player.uri = media_uri.MediaUri('foo:///bar') 80 engine = player._engine 81 engine.pipeline = StupidPipe() 82 engine.state = STATES.STOPPED 83 84 player_registry.play_all() 85 self.assertEquals(engine.state, STATES.LOADING) 86 87 engine.state = STATES.PLAYING 88 player_registry.pause_all() 89 self.assertEquals(engine.pipeline.state, gst.STATE_PAUSED) 90 91 engine.state = STATES.PLAYING 92 player_registry.stop_all() 93 self.assertEquals(engine.pipeline.state, gst.STATE_READY) 94 95 engine.volume = 3 96 player_registry.mute_all() 97 self.assertEquals(engine.volume, 0) 98 player_registry.unmute_all() 99 self.assertEquals(engine.volume, 3) 100 player_registry.remove_player(player) 101 102 player_registry.deinitialize()
103