Commit Graph

197 Commits

Author SHA1 Message Date
Ingo Schommer
88dabf555a Fixed "wait" step, merge regression from df4a859 2015-04-21 15:26:15 +12:00
madmatt
6da19dac18 Fix step when multiple relations exist between the two joined objects 2015-04-21 14:38:58 +12:00
Ingo Schommer
0cdfb2e116 Graceful handling of regions which aren't CSS selectors
The dual use of regions (CSS selector and natural language name)
causes some difficulties in processing. Since the CSS selector
is tried first, we need to ensure the underlying logic
doesn't bail on invald selector syntax.

See https://github.com/silverstripe-labs/silverstripe-behat-extension/pull/84
2015-04-08 08:19:34 +12:00
Ingo Schommer
7db12fc9bb Unit tests 2015-04-07 23:15:22 +12:00
Ingo Schommer
4297e36762 Allow updating of fixtures in creation steps if they already exist 2015-02-15 21:47:22 +13:00
Ingo Schommer
7e8eaae73a Save ParentID alongside first record write to avoid validation errors 2015-02-15 21:47:20 +13:00
Ingo Schommer
4dece01c34 Allow "given ... has data" notation for fixtures
Makes more sense in english when the fixture has already been created beforehand
2015-02-15 21:39:06 +13:00
Damian Mooyman
f3c5df7957 Merge pull request #80 from silverstripe-iterators/pulls/password-complexity
More complex password default to comply with custom authenticators
2015-01-12 09:48:58 +13:00
Jeffrey Guo
df4a859dbc Scroll to page top/bottom or an element
Amended by @chillu, see https://github.com/silverstripe-labs/silverstripe-behat-extension/pull/74
2015-01-08 00:03:23 +13:00
Ingo Schommer
fcdfb04825 More complex password default to comply with custom authenticators
Changed from 'secret' to 'Secret!123'.

For example, the CWP default configuration increases the required
complexity to include uppercase letters, see https://gitlab.cwp.govt.nz/cwp/cwp-core/blob/master/_config.php#L134

This should not impact existing tests since the password is only used
indirectly, through "Given I login with ADMIN permissions".
2015-01-06 14:22:15 +13:00
Ben Manu
13271a8a6d FIX: adding caller class parameter to DataObject get 2015-01-06 10:51:41 +13:00
Jeffrey Guo
9a51b32196 Updated and added new step to check the email contains text
add text to readme for pull request 3635 in framework
2014-11-27 17:58:11 +13:00
Ingo Schommer
752abd4447 Note about publication state on child pages 2014-11-11 15:59:24 +13:00
Sean Harvey
61e7bb44cf Revert "Allow setting create_temp_database to false to stop temp db creation" 2014-10-09 09:55:00 +13:00
Sean Harvey
9c3319a342 Allow setting create_temp_database to false to stop temp db creation
TestSessionEnvironment by default will create a temporary database for
use with behat tests, but this may not be required.

e.g. in your behat.yml:

```
default:
...

  extensions:
    ...
    SilverStripe\BehatExtension\Extension:
      create_temp_database: false
```
2014-10-08 19:59:06 +13:00
Sriram Venkatesh
e1d42b89fe Formatting Cleanup 2014-10-01 02:20:40 +13:00
Sriram Venkatesh
6f648a418a Fixes #27: I wait for the text/element 2014-10-01 01:44:30 +13:00
Ingo Schommer
060f45f2cc Merge pull request #73 from jeffreyguo/pulls/cms-modal
Handle modal dialogue which will block all tests in the cms
2014-09-23 22:20:23 +12:00
Jeffrey Guo
54eaa63845 Handle modal dialogue which will block all tests in the cms
updated as an afterScenario event
2014-09-22 17:32:46 +12:00
Ingo Schommer
dd2f51fa74 Merge pull request #71 from jeffreyguo/pulls/jserror-2
Fixed issue on removing a DOM attribute
2014-09-09 08:18:09 +12:00
Jeffrey Guo
cfbf61f60c wait for DOM to remove attribute
use window.jQuery instead of $
updated to removeAttr method
2014-09-08 16:45:23 +12:00
Ingo Schommer
83a72210cd Merge pull request #69 from jeffreyguo/pulls/assign-object-to-object
Assign one object to another object
2014-09-05 09:48:20 +12:00
Ingo Schommer
6e13a68762 Merge pull request #70 from jeffreyguo/pulls/jserror
wait for DOM to remove attribute
2014-09-05 09:46:24 +12:00
Jeffrey Guo
8ea981519e wait for DOM to remove attribute
use window.jQuery instead of $
2014-09-04 14:10:25 +12:00
Jeffrey Guo
67eca1fcff assign one object to another
corrected name convention and sql issue
corrected grammar in description
2014-09-03 17:00:29 +12:00
Ingo Schommer
16d5a0099b Merge pull request #67 from tractorcow/pulls/refactor-resize
Refactor default screen resize into SilverStripeContext
2014-09-02 08:47:31 +12:00
Ingo Schommer
d139eb82e0 Merge pull request #60 from jeffreyguo/pulls/text-before-after
check a text is before or after another text
2014-08-22 09:04:47 +12:00
Jeffrey Guo
9ba5043871 check a text is before or after another text
added comments for each step
check a text is before or after another text in an element
2014-08-21 18:22:22 +12:00
Damian Mooyman
c0801a63ef Refactor default screen resize into SilverStripeContext 2014-08-14 16:21:31 +12:00
Damian Mooyman
01b129de35 Ensure that the window is maximised prior to running each step 2014-08-11 17:58:02 +12:00
Damian Mooyman
bc3b0b4cd5 API Support extended JS error reporting 2014-08-08 16:50:10 +12:00
Fred Condo
81f292a2b5 Make SiteTree reference conditional
This makes the boilerplate code compatible for testing
framework-only sites.
2014-07-16 17:01:45 -07:00
Ingo Schommer
8956b2d4fa More resilient login form detection (works with absolute URLs and GET params) 2014-07-01 19:13:32 +12:00
Damian Mooyman
042989e270 BUG Fix js change event not triggering 2014-06-26 09:22:18 +12:00
Sean Harvey
223bb9ec22 Fixing call to protected method elementNotFound.
elementNotFound() is protected, it can't be called from outside.
Throw an ElementNotFoundException instead.
2014-06-25 13:47:35 +12:00
Ingo Schommer
3fe596be63 Fix quoting in getRegionObj()
Based on work by @jeffreyguo.
See https://github.com/silverstripe-labs/silverstripe-behat-extension/pull/53/commits
2014-06-18 12:58:37 +12:00
Sean Harvey
2dbd92b16b Merge pull request #51 from silverstripe-labs/pulls/table
Step definitions for table interactions
2014-06-17 13:43:29 +12:00
Ingo Schommer
74116566f3 Merge pull request #47 from silverstripe-labs/develop
Update to mink 1.6 and remove custom fork
2014-06-13 15:37:05 +12:00
Ingo Schommer
ff86bde036 Step definitions for table interactions
Moved from framework module which had GridField specific steps under the same naming.
Made them more versatile, working for both GridField and other <table> nodes.
2014-06-13 15:05:32 +12:00
Jeffrey Guo
27a381f4e0 handle single quote with build-in way in getRegionObj 2014-06-12 14:51:01 +12:00
Ingo Schommer
1af1620fb4 Merge pull request #36 from jeffreyguo/pulls/find-email-by-title
add new step definition to identify multiple emails by from to and title
2014-06-04 13:26:48 +12:00
Ingo Schommer
0694d4e3a3 Merge pull request #39 from srizzling/pulls/fill-in-field-region
Adding support to fill in field in a specfic region
2014-06-04 13:24:50 +12:00
Damian Mooyman
0050149bfa Update to mink 1.6 and remove custom fork
Add javascript-workaround for selecting hidden elements
2014-05-30 16:27:47 +12:00
Jeffrey Guo
86d8139f1b find radiobutton by its type 2014-05-23 11:16:50 +12:00
Sean Harvey
b789a3b67c Adding "I follow the link "test", dismissing the dialog" step 2014-05-16 10:35:07 +12:00
Sriram Venkatesh
5e58444e07 Adding support to fill in field in a specfic region 2014-05-07 16:07:21 +12:00
Ingo Schommer
10da00c796 Guard against older jQuery versions 2014-05-07 10:47:29 +12:00
Damian Mooyman
a7ae2497d4 API Allow "I select the * radio button" 2014-05-05 13:05:15 +12:00
Jeffrey Guo
29d99e884f add new step definition to identify multiple emails by title 2014-05-01 10:28:20 +12:00
Ingo Schommer
68524346c6 Merge pull request #35 from jeffreyguo/pulls/test-mailer-update
Get the latest email from the email
2014-04-30 17:53:15 +12:00
Jeffrey Guo
4f7b794d9c get the last one email 2014-04-30 17:30:50 +12:00
Ingo Schommer
3b8518e4ab NEW Set current date and time through Behat 2014-04-16 11:14:42 +12:00
Ingo Schommer
d313b4ccce Merge pull request #32 from tractorcow/pulls/asset-fixture
API Allow usage of assets with modified / created date specification
2014-04-16 11:12:27 +12:00
madmatt
1a1d5bdead FIX: Invalid Exception throw results in CI failures 2014-04-15 23:56:03 +12:00
Damian Mooyman
2520cb1bbf API Allow usage of assets with modified / created date specification 2014-04-15 09:25:32 +12:00
Sriram Venkatesh
2294ee92a2 Session in undefined 2014-04-09 13:06:35 +12:00
Ingo Schommer
2ec760cb1d Improved region support, added "see text in region" step 2014-04-09 10:31:41 +12:00
Ingo Schommer
6a7df2f702 More resistant login form detection
Had some issues with multiple login forms on the same page,
e.g. for social login, or with duplicated hidden login forms
in the header.
2014-04-07 18:08:56 +12:00
Ingo Schommer
6f0cc7f68e Support multiple login forms on a page
Thanks to Jeffrey Guo for contributing.
2014-04-07 13:03:40 +12:00
Sean Harvey
c8120b2785 Don't validate passwords when writing a fake password
Stops existing password validators causing issues with logging in fake
users, as "secret" might not meet complexity requirements.
2014-04-02 22:09:22 +13:00
Ingo Schommer
8211d3f5fc More versatile "press button/link, confirming dialog" 2014-03-31 14:30:49 +13:00
Ingo Schommer
e55c6bb22a Fixed key/value confusion on fixture label mapping 2014-03-30 23:02:57 +13:00
Ingo Schommer
415a7d3c87 Allow fields and buttons to be disabled in behat steps 2014-03-26 13:35:41 +13:00
Sriram Venkatesh
2acd0889d4 Find Link in Region 2014-03-19 17:09:43 +13:00
Ingo Schommer
41cdc87eae Import DB and fixtures as a separate step
Usually triggered by manual test session environment runs
2014-03-19 08:42:23 +13:00
Will Rossiter
21b05999ee Prevent undefined method on error 2014-03-03 22:11:04 +13:00
Ingo Schommer
ca455423ef Changes required for persisting state directly on disk
applyState() used to persist in memory, which could lead
to outdated state depending on execution flow between CLI
and web requests. Since state is now in a JSON object,
it also fixes the array access.
2014-03-01 18:26:21 +13:00
Ingo Schommer
a40896db8b Using TestSessionEnvironment for saving emails
Easier debugging through JSON file inspection,
which can be logged in its entirety more easily
than a database table. It also keeps data in one place.
2014-03-01 14:47:12 +13:00
Ingo Schommer
a0517d7680 Better email assertions 2014-02-27 23:02:43 +13:00
Ingo Schommer
d09f2353e6 Negation for email assertions 2014-02-26 14:25:53 +13:00
Ingo Schommer
d003707894 BEHAT_SCREEN_SIZE env var 2014-02-25 11:33:12 +13:00
Ingo Schommer
7f3cc3b6b9 Using CLI to start test session rather than browser
Now possible because we don't rely on browser session state
to link up state to CLI (recent changes in testsession module).
2014-02-24 22:54:12 +13:00
Sam Minnee
5a7d25e530 FIX: Use executeScript() because we discard the return value.
evaluateScript() injects 'return ' into the executed script, which often breaks multi-line code.
executeScript() is better
2014-02-13 18:08:28 +13:00
Sriram Venkatesh
f7125a9eff Added a step for creating a breakpoint 2014-02-12 15:09:19 +13:00
Ingo Schommer
0be032261a Calling destructor on fatal errors
Avoids leaving TESTS_RUNNING.js around
2014-02-09 18:56:40 +13:00
Ingo Schommer
0308dee0dc Merge pull request #23 from madmatt/pulls/TestSessionEnvironment
Update SilverStripeAwareInitializer to use new TestSessionEnvironment class
2014-02-09 18:47:13 +13:00
Mateusz Uzdowski
77d5a3d2e9 NEW Add generic checks for fields being enabled/disabled. 2014-02-07 15:04:43 +13:00
madmatt
d61760ddc6 Update SilverStripeAwareInitializer to use new TestSessionEnvironment class.
This change is designed to be merged in at the same time as the matching
testsession PR (silverstripe-labs/silverstripe-testsession#7) is merged in, as
it relies on changes introduced in that PR to function.

This updates the behat-extension to use the new file-based capabilities of the
testsession module. Instead of creating a temp database, it will create an
entire testsession in the initializer, and then continue on as per normal. When
Behat runs end, the cleanup code will completely remove the testsession state,
instead of just removing the temp database. This may mean in the future that
you can hook into the TestSessionEnvironment via extensions, and connect to
other test services during a testsession, then cleanup after yourself on ending
a test session.

API CHANGES:
- Remove SilverStripeAwareInitializer::initializeTempDb()
- Remove SilverStripeAwareInitializer::deleteTempDb()
2014-02-05 11:57:46 +13:00
Ingo Schommer
db5dfa0e01 Merge pull request #19 from madmatt/pulls/fix-fixture-parentid
Fix FixtureContext::prepareAsset() assuming Parent exists
2014-01-30 15:06:39 -08:00
Matt
fe77d1dacb In stepCreateRecordWithTable, if a fixture already exists then update that record
rather than create a new, identical fixture.
2014-01-31 10:01:31 +13:00
Sriram Venkatesh
26f47d9d58 General Coding Convention Changes 2014-01-27 10:50:20 +13:00
Sriram Venkatesh
f5957a0586 Click first visable link 2014-01-27 10:42:14 +13:00
Matt Peel
d9d0b4fa93 Fix FixtureContext::prepareAsset() assuming ParentID
In some cases, we want to create an asset that doesn't have a ParentID set. This
fix allows that to happen.
2014-01-07 09:22:49 +13:00
Ingo Schommer
22330d02cb Env var support, documented xdebug usage 2013-12-18 14:58:44 +01:00
Ingo Schommer
58a9d59e7f More flexible EmailContext 2013-12-13 17:52:42 +01:00
Ingo Schommer
d79acc457a Fixed Behat scope for "I log in as"
Fixes an issues where multiple "Email" form fields are present
on a page, e.g. through a global login overlay in the header.
2013-12-10 23:28:47 +01:00
Sean Harvey
8141ced2fd BUG Fixing logout issues with steps
stepIAmNotLoggedIn() would previously just kill the test
session, but this has the side effect of losing the current testsession
temporary database, so this causes steps of logging out to fail the
rest of the steps in a scenario.

See https://github.com/silverstripe-labs/silverstripe-behat-extension/pull/12
2013-11-29 00:49:36 +01:00
Ingo Schommer
0a9505e8b2 Merge pull request #15 from halkyon/select_radio
Adding definition for selecting an input by the group's label.
2013-11-28 15:24:43 -08:00
Ingo Schommer
aa31606dde Merge pull request #14 from halkyon/message_rework
stepIWillSeeALogInMessage now allows for other form message types.
2013-11-28 15:23:50 -08:00
Sean Harvey
084980ea27 Adding definition for selecting an input by the group's label.
Allows for a step like: `I select "Admins" from "Groups" input group`

Adding it to BasicContext as it seems useful to be used in
other places, not just the CMS admin interface. It could be used
frontend forms that use CheckboxSetField, or OptionsetField,
for example.

Thanks to @srizzling for writing the definition for this step!
2013-11-28 23:18:59 +13:00
Sean Harvey
8da0dbaea5 stepIWillSeeALogInMessage now allows for other form message types.
Not just "bad", but others like "good", "required", and "warning".
2013-11-28 22:54:00 +13:00
Sean Harvey
c53a01c652 Don't create a group in iAmLoggedInWithPermissions if already exists. 2013-11-28 22:30:45 +13:00
Ingo Schommer
d4006b9735 Allow augmentation of test session state
Useful e.g. to add a 'stubfile' path in a custom feature context.
2013-11-27 19:32:14 +01:00
Ingo Schommer
fc6d1ac12b Fixed Behat+SS coding conventions 2013-11-15 17:38:37 +01:00
Sriram Venkatesh
1166991d49 New step: "record last edited at relative date"
Thanks to @srizzling for getting this started in
https://github.com/silverstripe/silverstripe-cms/pull/896
2013-11-15 14:09:24 +01:00
Ingo Schommer
1c950f07de Relative date/time format support
Thanks to @srizzling for getting this started in
https://github.com/silverstripe/silverstripe-cms/pull/896
2013-11-15 14:05:28 +01:00
Ingo Schommer
7d48da31d4 Merge pull request #10 from srizzling/is620
Added delete state to step defination
2013-11-15 02:32:13 -08:00
Ingo Schommer
e7e5912f07 FIX: need to upper-case each word, not just first word
Thanks to @jthomerson
See https://github.com/silverstripe-labs/silverstripe-behat-extension/pull/5
2013-11-15 11:30:10 +01:00
Sriram Venkatesh
aea5357c23 Fixed up some formatting issues 2013-11-15 16:57:15 +13:00
Sriram Venkatesh
6b7f5f8d3c Added delete state to step defination 2013-11-15 16:15:37 +13:00