1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
# -*- coding: utf-8 -*-
# Copyright 2011 Jaap Karssenberg <jaap.karssenberg@gmail.com>
import tests
from zim.objectmanager import *
class TestObjectManager(tests.TestCase):
def runTest(self):
'''Test object manager for inline objects'''
manager = ObjectManager
# registering
self.assertFalse(manager.is_registered('classa'))
self.assertFalse(manager.is_registered('classb'))
self.assertFalse(manager.is_registered('foo'))
manager.register_object('classa', classafactory)
manager.register_object('classb', ClassB)
self.assertTrue(manager.is_registered('classa'))
self.assertTrue(manager.is_registered('classb'))
self.assertFalse(manager.is_registered('foo'))
# get objects
self.assertEqual(list(manager.get_active_objects('classa')), [])
self.assertEqual(list(manager.get_active_objects('classb')), [])
obj = manager.get_object('classa', {}, '')
self.assertTrue(isinstance(obj, ClassA))
self.assertEqual(list(manager.get_active_objects('classa')), [obj])
self.assertEqual(list(manager.get_active_objects('classb')), [])
self.assertTrue(isinstance(manager.get_object('classb', {}, ''), ClassB))
self.assertTrue(isinstance(manager.get_object('foo', {}, ''), FallbackObject))
# unregister
self.assertTrue(manager.is_registered('classa'))
self.assertTrue(manager.unregister_object('classa'))
self.assertFalse(manager.is_registered('classa'))
self.assertFalse(manager.unregister_object('classa'))
# find plugin
from zim.plugins.sourceview import SourceViewPlugin
self.assertEqual(
manager.find_plugin('code'),
('sourceview', 'Source View', True, SourceViewPlugin)
)
def classafactory(attrib, text, ui):
return ClassA(attrib, text, ui)
class ClassA(CustomObjectClass):
pass
class ClassB(CustomObjectClass):
pass
class TestFallbackObject(tests.TestCase):
def runTest(self):
attrib = {'lang': 'text/html'}
text = '''<b>test 123</b>\n'''
obj = FallbackObject(attrib, text)
self.assertEqual(obj.get_data(), text)
|