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
Ingo Schommer
3f13791404
Only delete files/folders if they exist on filesystem
...
This broke "add a folder" in manage-files.feature
2013-11-06 01:22:30 +01:00
Ingo Schommer
7e37cc8e00
New "there should be a file" step
2013-10-23 21:27:54 +02:00
Ingo Schommer
32c7cea104
Clean up files from assets/ after each scenario
2013-10-23 21:27:52 +02:00
Ingo Schommer
9b34e635d8
New "password should be" step
2013-10-22 10:53:29 +02:00
Ingo Schommer
4aef64a789
Fixed email link step quoting and selection
2013-10-22 00:04:25 +02:00
Ingo Schommer
a284e3183d
New "password should be" step
2013-10-22 00:04:25 +02:00
Ingo Schommer
a244986495
"go to <named record>" behat step definition
2013-10-21 13:19:46 +02:00
Ingo Schommer
5ca904ae12
Initializer and custom namespace support
2013-10-18 17:47:33 +02:00
Ingo Schommer
7bb06f0fea
Fixed screenshot_path usage
...
Was referencing outdated $this->context settings
instead of parent context. Still a bit hacky to make
assumptions on parent context, but its difficult to pass
through arguments to subcontexts.
2013-10-09 14:29:42 +02:00
Ingo Schommer
89a72625d4
BasicContext->stepPageCantBeFound
2013-10-02 17:10:13 +02:00
Ingo Schommer
69589bf316
Behat: Remove "start session" log
...
Need to find a better way to log this, which is not interfering
with the main formatter output
2013-09-14 19:36:12 +02:00
Ingo Schommer
a0ac37fa1e
More useful fillField() implementation
...
Was defaulting to the first non-visible
2013-09-14 19:27:19 +02:00
Ingo Schommer
f89879836a
Step def for "record has the <field> <value>"
2013-09-14 19:20:58 +02:00
Ingo Schommer
f18a54afbe
stepIPressTheButtonConfirmingTheDialog
2013-08-16 13:32:13 +02:00
Ingo Schommer
2e3d97cbc4
More verbose startsession
2013-08-13 13:04:49 +02:00
Ingo Schommer
6f9352cac4
Use stdout instead of stderror for notices
2013-08-13 13:03:29 +02:00
Ingo Schommer
d734586346
Merge remote-tracking branch 'origin/0.1'
2013-07-11 16:02:15 +02:00
Ingo Schommer
0e0c601a4a
FixtureContext 5.3.8 compat (wrong usage of is_a())
2013-07-11 16:00:19 +02:00
Ingo Schommer
3928919964
Using 3.1 compatible Config API for setup
...
Avoids deprecation notices when testing against master
2013-06-19 12:24:11 +02:00
Ingo Schommer
5e879a88b8
Only match visible buttons in "I press button" step
2013-06-07 16:26:12 +02:00
Ingo Schommer
71245ababd
Behat: More informative error on login form not found
...
"setValue() on a non-object" wasn't very helpful
2013-06-07 16:26:12 +02:00
Sam Minnee
790d086def
FIX: Perform error checking on testsession/start.
...
This fix improves the robustness of the behat tests, ensuring that the testsession has actually
been successfully started before the test kicks off. Although it doesn't fix anything that
wasn't previously broken, it makes environment set-up errors a bit easier to figure out.
It looks for a new status comment in the result of testsession, that is also being added to the
module.
2013-06-07 11:19:42 +12:00
Ingo Schommer
aab86a6b08
More verbose fixture step definitions
...
Too many clashes with other steps otherwise,
e.g. with 'And the preview contains "You can fill"'
2013-06-05 14:17:28 +02:00
Ingo Schommer
55c7f578fd
Documentation
2013-06-05 13:34:45 +02:00
Ingo Schommer
1eed512b7d
Member and Group fixture support
2013-06-05 13:34:45 +02:00
Ingo Schommer
460ce55d22
Delay UI interactions after ajax to allow browser rendering
...
merge
2013-06-05 13:34:45 +02:00
Ingo Schommer
8418bea0f8
Step transformations rather than special case step overrides
2013-06-05 13:34:45 +02:00
Ingo Schommer
fd9e84006f
Use FixtureFactory for YAML, move helpers to FixtureContext, consistently create assets
2013-06-05 13:34:45 +02:00
Ingo Schommer
30ece1347f
NEW FixtureContext ( #2 )
2013-06-05 13:34:42 +02:00
Ingo Schommer
e98233db65
NEW Auto-detect base_url from FILE_TO_URL_MAPPING
...
Removed framework_host since its no longer necessary due to the changed execution logic.
Unfortunately had to subclass the existing Mink Extension class since we can't influence
its config persistence from our own extensions (with a completely separate ContainerBuilder).
Also restructured README to be more focused on execution rather
than diving into deep config concerns early on.
2013-05-09 16:26:24 +02:00
Ingo Schommer
3a34c204c1
Generalized and fixed UploadField handling in behat
2013-04-09 11:32:43 +02:00
Ingo Schommer
72141f4474
3.1 compat
2013-04-09 01:58:34 +02:00
Ingo Schommer
b170e621c9
More feedback on which temp db gets created
2012-12-19 15:56:33 +01:00
Ingo Schommer
6c9be905f9
NEW Email testing
2012-12-19 15:56:20 +01:00
Ingo Schommer
95b9408c86
Using new and more flexible 'testsession' module instead of dev/tests/setdb
2012-12-19 15:55:54 +01:00
Ingo Schommer
135ae89617
Removed reconnect to DB on fixture defaults, it breaks state
...
Specifically, it resets to the standard database config,
rather than the session/cookie state for the temporary database.
2012-12-06 17:40:04 +01:00
Ingo Schommer
90443b64f9
More forgiving syntax for "wait for x seconds"
2012-12-06 17:40:04 +01:00
Ingo Schommer
2dc613f488
Fixed usage of private var from Selenium driver
...
Changed in selenium master recently
2012-11-28 16:44:09 +01:00
Ingo Schommer
74e0d8cd83
Fixed coding conventions (no functional changes)
...
Both Symfony and SilverStripe conventions mandate
lower camel case for instance properties
2012-11-18 11:51:00 +01:00
Ingo Schommer
feba280470
NEW LocatorProcessor and ClassGuesser to manage modules
...
Important for running behat tests per-module,
while stil keeping parameters like "base_url" configurable
without modifying behat.yml files in the modules own source code.
2012-11-15 17:42:45 +01:00
Ingo Schommer
046350fcce
Suppress DB default record output in behat runs
2012-11-15 16:08:47 +01:00
Ingo Schommer
38a27d2a50
NEW Reduced boilerplate configuration
...
- Moved all extension-specific conf into its own configuration namespace
- Described configuration via PHP, and added default values
- Removed boilerplate config from README
- Made screenshot_path optional
- Configurable ajax_timeout settings
Note: The DI system plus the initializer+context combo requires insane amounts of code duplication,
will need to be looked at more closely (very little docs on that level of Behat extension available).
2012-11-14 00:29:40 +01:00
Ingo Schommer
66a07442cf
Docs about commands and testing dependencies
2012-11-14 00:29:37 +01:00
Ingo Schommer
3ac7e83dae
ENHANCEMENT Migrated generic contexts from temporary 'behat-tests' module
...
The CMS specific context classes will move to framework
2012-11-09 17:34:24 +01:00
Ingo Schommer
ee4d8b7381
BUGFIX Flush manifests when bootstrapping tests
2012-11-09 15:46:33 +01:00
Ingo Schommer
99761ac1f9
Fixed paths
2012-11-08 21:51:17 +01:00
Ingo Schommer
afcae36eec
Resolved vendor confusion, its "SilverStripe", not "Behat"
...
"Behat" as a vendor namespace is already taken by the project
of the same name.
2012-10-16 22:05:17 +02:00
Michał Ochman
dc01926525
BUG add setAjaxEnabledSteps as interface method
2012-08-19 12:22:51 +02:00
Michał Ochman
2e1cfcc65d
initial commit
2012-08-15 16:50:19 +02:00