File: test_ttwapi.py

package info (click to toggle)
plone3 3.1.3-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 73,972 kB
  • ctags: 39,149
  • sloc: python: 209,481; xml: 25,065; sh: 1,395; makefile: 585; php: 129; lisp: 54
file content (105 lines) | stat: -rw-r--r-- 3,713 bytes parent folder | download
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import unittest

from Testing import ZopeTestCase
ZopeTestCase.installProduct('PythonScripts')

from AccessControl import allow_module
allow_module('kss.core.tests.help_ttwapi')

import Products.Five.component
from Products.Five import zcml

from zope import component
from zope.lifecycleevent import ObjectModifiedEvent
from zope.app.component.hooks import setHooks

from kss.core import KSSView
from kss.core.tests.base import KSSViewTestCase

class TTWTestCase(KSSViewTestCase):

    class layer(KSSViewTestCase.layer):
        @classmethod
        def setUp(cls):
            configure_zcml = '''\
            <configure
                 xmlns="http://namespaces.zope.org/zope"
                 xmlns:browser="http://namespaces.zope.org/browser"
                 package="kss.core.tests.test_ttwapi">
              <subscriber handler=".objectModifiedThruKSSView" />
            </configure>'''
            zcml.load_string(configure_zcml)

    def afterSetUp(self):
        KSSViewTestCase.afterSetUp(self)
        setHooks()
        self.app.manage_addProduct['PythonScripts'].manage_addPythonScript(
            'kss_test')
        self.setDebugRequest()

    def test_scriptWithCore(self):
        pythonScriptCode = '''
from kss.core.ttwapi import startKSSCommands
from kss.core.ttwapi import getKSSCommandSet
from kss.core.ttwapi import renderKSSCommands
startKSSCommands(context, context.REQUEST)
core = getKSSCommandSet('core')
core.replaceInnerHTML('#test', '<p>Done</p>')
return renderKSSCommands()
'''
        self.app.kss_test.ZPythonScript_edit('', pythonScriptCode)
        result = self.app.kss_test() 
        self.assertEquals(len(result), 1)
        command = result[0]
        self.assertEquals(command['selector'], '#test')
        self.assertEquals(command['name'], 'replaceInnerHTML')

    def test_scriptWithEffect(self):
        pythonScriptCode = '''
from kss.core.ttwapi import startKSSCommands
from kss.core.ttwapi import getKSSCommandSet
from kss.core.ttwapi import renderKSSCommands
startKSSCommands(context, context.REQUEST)
commandSet = getKSSCommandSet('effects')
commandSet.effect('#test', 'fade')
return renderKSSCommands()
'''
        self.app.kss_test.ZPythonScript_edit('', pythonScriptCode)
        result = self.app.kss_test() 
        self.assertEquals(len(result), 1)
        command = result[0]
        self.assertEquals(command['selector'], '#test')
        self.assertEquals(command['name'], 'effect')
        self.assertEquals(command['params']['type'], 'fade')

    def test_scriptWithEvents(self):
        pythonScriptCode = '''
from kss.core.ttwapi import startKSSCommands
from kss.core.ttwapi import getKSSCommandSet
from kss.core.ttwapi import renderKSSCommands
from kss.core.tests.help_ttwapi import objectModified
startKSSCommands(context, context.REQUEST)
core = getKSSCommandSet('core')
core.replaceInnerHTML('#test', '<p>Done</p>')
objectModified(context)
return renderKSSCommands()
'''
        self.app.kss_test.ZPythonScript_edit('', pythonScriptCode)
        result = self.app.kss_test()
        self.assertEquals(len(result), 2)
        command = result[0]
        self.assertEquals(command['selector'], '#test')
        self.assertEquals(command['name'], 'replaceInnerHTML')
        command = result[1]
        self.assertEquals(command['selector'], '#event')
        self.assertEquals(command['name'], 'replaceInnerHTML')

@component.adapter(None, KSSView, ObjectModifiedEvent)
def objectModifiedThruKSSView(obj, view, event):
    view.getCommandSet('core').replaceInnerHTML(
        "#event", "Event subscriber was here.")

def test_suite():
    suites = []
    suites.append(unittest.makeSuite(TTWTestCase))
    return unittest.TestSuite(suites)