We've upgraded SilverStripe core to PHPUnit 4.x now, and the Functions.php has moved locations.
Since all custom contexts either use one of these contexts, or extend off SilverStripeContext,
we can be certain that the required assertions are automatically included for custom contexts,
no need to duplicate the require_once() calls.
Note that Behat 3.x suggests using static methods on a class, e.g. PHPUnit_Framework_Assert::assertSame (see http://docs.behat.org/en/master/quick_intro.html).
This seems quite verbose, and increases the upgrade burden on any project using Behat.
- Don't delete Folders (managed by backend)
- Fix deletion to match correct columns
- New assertion for matching files by filename and hash
- Skip createdFilesPath - Managed by backend not by behat anymore
Fixes regression caused by 8d49da2609
prepareAsset('Folder','some/folder') would create some/folder/folder due to wrong ParentID relations.
Also set the 'ID' of folders to avoid creating them again.
The issue that prompted this change was that at line 361, if an exception needed to be thrown, it would be thrown with $field being a NodeElement rather than a string, causing a Catchable Fatal Error to be thrown in ElementNotFoundException::__construct#46 (can't convert object of type NodeElement to string).
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
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".
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
```