Skip to content

Commit

Permalink
Create robot tests for querystring widget
Browse files Browse the repository at this point in the history
  • Loading branch information
Alessandro Pisa authored and garbas committed Feb 13, 2014
1 parent 93dc0d3 commit 828b70e
Show file tree
Hide file tree
Showing 8 changed files with 139 additions and 19 deletions.
3 changes: 1 addition & 2 deletions .travis.yml
Expand Up @@ -7,8 +7,7 @@ addons:
- access_key: $SAUCE_ACCESS_KEY
install:
- mkdir -p buildout-cache/downloads
- mkdir src
- git clone git://github.com/plone/plone.app.contenttypes.git -b mockup-issue-220 src/plone.app.contenttypes
- git clone git://github.com/plone/plone.app.contenttypes.git -b mockup-issue-220
- python bootstrap.py -c travis.cfg
- bin/buildout -N -t 3 -c travis.cfg
script:
Expand Down
7 changes: 6 additions & 1 deletion plone/app/widgets/tests/robot/common.robot
Expand Up @@ -35,9 +35,14 @@ I edit
# Content
# ----------------------------------------------------------------------------

I create a collection
[Arguments] ${title}
Go to ${PLONE_URL}/++add++Collection
Wait until page contains Add Collection
Input text name=form.widgets.IDublinCore.title ${title}

I create a folder
[Arguments] ${title}
Go to ${PLONE_URL}/++add++Folder
Wait until page contains Add Folder
Input text name=form.widgets.IDublinCore.title ${title}

116 changes: 116 additions & 0 deletions plone/app/widgets/tests/robot/test_querystring_widget.robot
@@ -0,0 +1,116 @@
*** Settings ***

Resource common.robot

Test Setup Open SauceLabs test browser
Test Teardown Run keywords Report test status Close all browsers

*** Variables ***
${querywidget_selector} \#formfield-form-widgets-ICollection-query

*** Test Cases ***

Querystring Widget rows appear and disappear correctly
Given I'm logged in as a 'Site Administrator'
And I create a collection My Collection
Page should contain Element css=${querywidget_selector} .querystring-criteria-wrapper:nth-child(1)
Page should not contain Element css=${querywidget_selector} .querystring-criteria-wrapper:nth-child(2)
When I select criteria index in row 1 Expiration date
Page should contain Element css=${querywidget_selector} .querystring-criteria-wrapper:nth-child(2)
When Click Element css=${querywidget_selector} .querystring-criteria-wrapper:nth-child(2) .querystring-criteria-remove
Page should contain Element css=${querywidget_selector} .querystring-criteria-wrapper:nth-child(2)
When Click Element css=${querywidget_selector} .querystring-criteria-wrapper:nth-child(1) .querystring-criteria-remove
Page should not contain Element css=${querywidget_selector} .querystring-criteria-wrapper:nth-child(2)


Querystring Widget date criteria master/select behaviour is correct
Given I'm logged in as a 'Site Administrator'
And I create a collection My Collection
When I select criteria index in row 1 Expiration date
Date criteria operators are functional 1
When I select criteria index in row 1 Event end date
Date criteria operators are functional 1
When I select criteria index in row 1 Effective date
Date criteria operators are functional 1
When I select criteria index in row 1 Event start date
Date criteria operators are functional 1
When I select criteria index in row 1 Creation date
Date criteria operators are functional 1
When I select criteria index in row 1 Modification date
Date criteria operators are functional 1


Querystring Widget text criteria master/select behaviour is correct
Given I'm logged in as a 'Site Administrator'
And I create a collection My Collection
When I select criteria index in row 1 Description
Operator slave field becomes visible 1 .querystring-criteria-value-StringWidget
When I select criteria index in row 1 Title
Operator slave field becomes visible 1 .querystring-criteria-value-StringWidget
When I select criteria index in row 1 Searchable text
Operator slave field becomes visible 1 .querystring-criteria-value-StringWidget
When I select criteria index in row 1 Tag
Operator slave field becomes visible 1 .querystring-criteria-value-MultipleSelectionWidget


Querystring Widget metadata criteria master/select behaviour is correct
Given I'm logged in as a 'Site Administrator'
And I create a collection My Collection
When I select criteria index in row 1 Type
Operator slave field becomes visible 1 .querystring-criteria-value-MultipleSelectionWidget
When I select criteria index in row 1 Short name
Operator slave field becomes visible 1 .querystring-criteria-value-StringWidget
When I select criteria index in row 1 Creator
And I select criteria operator in row 1 Is
Operator slave field becomes visible 1 .querystring-criteria-value-StringWidget
When I select criteria index in row 1 Location
And I select criteria operator in row 1 Relative path
Operator slave field becomes visible 1 .querystring-criteria-value-RelativePathWidget
When I select criteria index in row 1 Location
And I select criteria operator in row 1 Absolute path
Operator slave field becomes visible 1 .querystring-criteria-value-ReferenceWidget
When I select criteria index in row 1 Review state
Operator slave field becomes visible 1 .querystring-criteria-value-MultipleSelectionWidget


Collection Creation works
Given I'm logged in as a 'Site Administrator'
And I create a collection My Collection
When I select criteria index in row 1 Location
And I select criteria operator in row 1 Absolute path
And I save
Page should contain Element jquery=.contenttype-collection:contains(My Collection)


*** Keywords ***

I select criteria index in row
[Arguments] ${number} ${label}
${criteria_row} = Convert to String ${querywidget_selector} .querystring-criteria-wrapper:nth-child(${number})
Click Element css=${criteria_row} .querystring-criteria-index .select2-container a
Press Key jquery=:focus ${label}\n

I select criteria operator in row
[Arguments] ${number} ${label}
${criteria_selector} = Convert to String ${querywidget_selector} .querystring-criteria-wrapper:nth-child(${number}) .querystring-criteria-operator select
Select From List By Label css=${criteria_selector} ${label}

Operator slave field becomes visible
[Arguments] ${number} ${selector}
${criteria_row} = Convert to String ${querywidget_selector} .querystring-criteria-wrapper:nth-child(${number})
Page should contain Element css=${criteria_row} .querystring-criteria-value ${selector}

Date criteria operators are functional
[Arguments] ${number}
I select criteria operator in row ${number} Today
I select criteria operator in row ${number} Within last
Operator slave field becomes visible ${number} .querystring-criteria-value-RelativeDateWidget
I select criteria operator in row ${number} Before date
Operator slave field becomes visible ${number} .querystring-criteria-value-DateWidget
I select criteria operator in row ${number} After date
Then Operator slave field becomes visible ${number} .querystring-criteria-value-DateWidget
I select criteria operator in row ${number} Within next
Then Operator slave field becomes visible ${number} .querystring-criteria-value-RelativeDateWidget
I select criteria operator in row ${number} Before today
I select criteria operator in row ${number} Between dates
Then Operator slave field becomes visible ${number} .querystring-criteria-value-DateRangeWidget
13 changes: 7 additions & 6 deletions plone/app/widgets/tests/test_at.py
Expand Up @@ -405,12 +405,13 @@ def test_widget(self):
self.assertEqual(base_args['name'], 'fieldname')
self.assertEqual(base_args['value'], 'fieldvalue')
self.assertEqual(base_args['pattern'], 'tinymce')
self.assertEqual(base_args['pattern_options']['prependToUrl'],
'resolveuid/')
self.assertEqual(base_args['pattern_options']['prependToUrl'],
'resolveuid/')
self.assertEqual(base_args['pattern_options']['anchorSelector'],
self.portal.portal_tinymce.anchor_selector)
# TODO: remove those lines
#self.assertEqual(base_args['pattern_options']['prependToUrl'],
#'resolveuid/')
#self.assertEqual(base_args['pattern_options']['prependToUrl'],
#'resolveuid/')
#self.assertEqual(base_args['pattern_options']['anchorSelector'],
#self.portal.portal_tinymce.anchor_selector)


class ArchetypesVocabularyPermissionTests(unittest.TestCase):
Expand Down
4 changes: 2 additions & 2 deletions plone/app/widgets/tests/test_dx.py
Expand Up @@ -889,10 +889,10 @@ class IMockSchema(Interface):
'disallowed_field': u'zope2.ViewManagementScreens',
'custom_widget_field': u'zope2.View',
'adapted_widget_field': u'zope2.View',
})
})
IMockSchema.setTaggedValue(WIDGETS_KEY, {
'custom_widget_field': _custom_field_widget,
})
})


class RichTextWidgetTests(unittest.TestCase):
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Expand Up @@ -40,7 +40,7 @@
'test': [
'plone.app.robotframework',
'plone.app.widgets[archetypes, dexterity]',
'plone.app.testing',
'plone.app.testing>=4.2.4', # we need ROBOT_TEST_LEVEL
'mock',
],
'archetypes': [
Expand All @@ -51,7 +51,7 @@
'dexterity': [
'pytz',
'plone.app.dexterity',
'plone.app.contenttypes>=1.0.99',
'plone.app.contenttypes>=1.1a2.dev0',
'plone.app.event',
],
},
Expand Down
5 changes: 2 additions & 3 deletions travis.cfg
Expand Up @@ -9,8 +9,7 @@ package-name = plone.app.widgets
package-extras = [test,archetypes,dexterity]
test-eggs = Pillow
parts += extra

develop += src/plone.app.contenttypes
develop += plone.app.contenttypes

[extra]
recipe = zc.recipe.egg
Expand All @@ -22,4 +21,4 @@ eggs =
[versions]
coverage = 3.7
plone.app.robotframework = 0.7.5
plone.app.contenttypes =
plone.app.contenttypes =
6 changes: 3 additions & 3 deletions versions.cfg
Expand Up @@ -3,18 +3,18 @@ extends = https://raw.github.com/plone/plone.app.event/master/versions.cfg
versions = versions

[versions]
plone.app.contenttypes = 1.1a1
#plone.app.contenttypes = 1.1a1
plone.app.event = 1.1a1
plone.app.jquery = 1.8.3
plone.app.portlets = 2.5a1
plone.app.querystring = 1.1.0
plone.app.testing = 4.2.4
plone.app.vocabularies = 2.1.12
plone.formwidget.querystring = 1.1.0
plone.formwidget.recurrence = 1.1

# versions copied from https://github.com/plone/buildout.coredev/blob/5.0/versions.cfg#L39
plone.app.robotframework = 0.7.5
plone.app.testing = 4.2.4
robotframework = 2.8.4
robotframework-selenium2library = 1.5.0
robotsuite = 1.4.3
Expand All @@ -26,4 +26,4 @@ pep8 = 1.4.6
Babel = 1.3
robotframework-selenium2screenshots = 0.4.0
sphinxcontrib-robotframework = 0.4.3
Pygments = 1.6
Pygments = 1.6

1 comment on commit 828b70e

@mister-roboto
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TESTS FAILED
Mr.roboto url : http://jenkins.plone.org/roboto/get_info?push=9be3de4a9f49441ca741d6bf44e534fb
plone-5.0-python-2.7 [FAILURE]

Please sign in to comment.