Skip to content

Commit

Permalink
Add/Fix tests.
Browse files Browse the repository at this point in the history
Remove bundle argument from *registry.xml files since the tests run with plone 4.1 which does not support bundle values.
  • Loading branch information
deiferni committed Oct 29, 2013
1 parent c6a937c commit 2d219df
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 35 deletions.
4 changes: 1 addition & 3 deletions plone/formwidget/recurrence/profiles/default/cssregistry.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
<?xml version="1.0"?>
<object name="portal_css">
<object name="portal_css" meta_type="Stylesheets Registry">

<stylesheet
id="++resource++plone.app.jquerytools.dateinput.css"
enabled="True"/>

<stylesheet
bundle="default"
id="++resource++plone.formwidget.recurrence/jquery.recurrenceinput.css"
applyPrefix="True"
authenticated="False"
Expand All @@ -20,7 +19,6 @@
/>

<stylesheet
bundle="default"
id="++resource++plone.formwidget.recurrence/integration.css"
insert-after="++resource++plone.formwidget.recurrence/jquery.recurrenceinput.css"
applyPrefix="True"
Expand Down
2 changes: 0 additions & 2 deletions plone/formwidget/recurrence/profiles/default/jsregistry.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
enabled="True"/>

<javascript
bundle="default"
id="++resource++plone.formwidget.recurrence/jquery.tmpl-beta1.js"
cacheable="True"
compression="safe"
Expand All @@ -15,7 +14,6 @@
/>

<javascript
bundle="default"
id="++resource++plone.formwidget.recurrence/jquery.recurrenceinput.js"
insert-after="++resource++plone.formwidget.recurrence/jquery.tmpl-beta1.js"
cacheable="True"
Expand Down
2 changes: 2 additions & 0 deletions plone/formwidget/recurrence/tests/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ def setUpPloneSite(self, portal):
# install at example types
self.applyProfile(portal, 'plone.formwidget.recurrence.tests:sample_types')

self.applyProfile(portal, 'plone.formwidget.recurrence:default')

def tearDownZope(self, app):
"""Tear down Zope."""
z2.uninstallProduct(app, 'plone.formwidget.recurrence.tests')
Expand Down
22 changes: 20 additions & 2 deletions plone/formwidget/recurrence/tests/test_atwidget.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
from Products.Archetypes.tests.utils import makeContent
from plone.app.testing import TEST_USER_ID
from plone.app.testing import TEST_USER_ID, TEST_USER_NAME, TEST_USER_PASSWORD
from plone.app.testing import setRoles
from plone.app.testing import login
from plone.formwidget.recurrence.tests.base import IntegrationTestCase
from plone.testing.z2 import Browser
import transaction


TESTVALUE = "FREQ=MONTHLY;BYDAY=+3TU;COUNT=5"

Expand All @@ -21,6 +25,16 @@ def setUp(self):
self.field = self.obj.getField('rec')
self.widget = self.field.widget

login(self.portal, TEST_USER_NAME)
self.browser = Browser(self.layer['app'])
self.browser.handleErrors = False
transaction.commit()

def tearDown(self):
super(ATWidgetTestCase, self).tearDown()
self.portal.manage_delObjects(['test-folder'])
transaction.commit()

def test_widget_properties(self):
widget = self.widget
self.assertEqual(widget.macro_edit, 'recurrence_widget')
Expand All @@ -38,4 +52,8 @@ def test_widget_process(self):
(TESTVALUE, {})
)

# TODO: A test that renders the widget
def test_widget_rendering(self):
self.browser.addHeader('Authorization', 'Basic %s:%s' % (
TEST_USER_NAME, TEST_USER_PASSWORD, ))
self.browser.open(self.obj.absolute_url() + '/edit')
self.assertIn('Recurrence', self.browser.contents)
64 changes: 36 additions & 28 deletions plone/formwidget/recurrence/tests/test_z3cwidget.py
Original file line number Diff line number Diff line change
@@ -1,44 +1,52 @@
from plone.formwidget.recurrence import tests
from plone.formwidget.recurrence.z3cform import widget
from OFS.SimpleItem import SimpleItem
from plone.formwidget.datetime.z3cform.widget import DateFieldWidget
from plone.formwidget.recurrence.tests.base import IntegrationTestCase
from plone.formwidget.recurrence.z3cform.widget import RecurrenceFieldWidget
from z3c.form import form, field
from z3c.form.interfaces import IFormLayer
from zope.publisher.browser import TestRequest
from z3c.form.testing import TestRequest
from zope.schema.fieldproperty import FieldProperty
import zope.interface
import zope.schema


class ITestForm(zope.interface.Interface):
recurrence = zope.schema.Text(title=u'Recurrence', required=True)
day = zope.schema.Date(title=u'Day', required=True)

recurrence = zope.schema.Text(
title=u'Recurrence',
required=True)

class TestForm(SimpleItem):
zope.interface.implements(ITestForm)
recurrence = FieldProperty(ITestForm['recurrence'])
day = FieldProperty(ITestForm['day'])

class TestEditForm(form.EditForm):
def __init__(self, recurrence, day):
super(TestForm, self).__init__(id)
self.recurrence = recurrence
self.day = day


class TestAddForm(form.AddForm):
fields = field.Fields(ITestForm)
fields['recurrence'].widgetFactory = widget.RecurrenceFieldWidget
fields['recurrence'].widgetFactory = RecurrenceFieldWidget
fields['day'].widgetFactory = DateFieldWidget


class Z3CWidgetTestCase(tests.base.IntegrationTestCase):
class Z3CWidgetTestCase(IntegrationTestCase):

def setUp(self):
self.portal = self.layer['portal']
self.portal.portal_quickinstaller.installProduct('plone.formwidget.recurrence')

# This test doesn't work any longer. We need to set up some real, useful tests.

def test_widget(self):
pass
## It doens't test very much, since it's all in Javascript...
#request = TestRequest(skin=IFormLayer)
#request.LANGUAGE = 'en'
#form = TestEditForm(self.portal, request)
#widget_ = widget.RecurrenceFieldWidget(form.fields['recurrence'].field, request)
#widget_.context = form
#widget_.update()
#html = widget_.render()

#self.assertTrue('++resource++jquery.tmpl.js' in html)
#self.assertTrue('++resource++plone.formwidget.recurrence/jquery.recurrenceinput.js' in html)
#self.assertTrue('++resource++plone.formwidget.recurrence/integration.css' in html)

def test_widget_rendering(self):
request = TestRequest()
request.LANGUAGE = 'en'
form = TestAddForm(self.portal, request)
form.update()

widget = RecurrenceFieldWidget(form.fields['recurrence'].field,
request)
widget.form = form
widget.start_field = 'day'
widget.update()

html = widget.render()
self.assertIn('recurrence', html)
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
'Products.GenericSetup',
'z3c.form[test]',
'plone.app.testing',
'plone.formwidget.datetime',
'unittest2'
]),
entry_points="""
Expand Down

0 comments on commit 2d219df

Please sign in to comment.