mirror of
https://github.com/silverstripe/silverstripe-behat-extension
synced 2024-10-22 15:05:32 +00:00
Formatting Cleanup
This commit is contained in:
parent
6f648a418a
commit
e1d42b89fe
@ -9,7 +9,9 @@ use Behat\Behat\Context\ClosuredContextInterface,
|
||||
Behat\Behat\Event\StepEvent,
|
||||
Behat\Behat\Event\ScenarioEvent,
|
||||
Behat\Behat\Exception\PendingException;
|
||||
|
||||
use Behat\Mink\Driver\Selenium2Driver;
|
||||
|
||||
use Behat\Gherkin\Node\PyStringNode,
|
||||
Behat\Gherkin\Node\TableNode;
|
||||
|
||||
@ -53,8 +55,7 @@ class BasicContext extends BehatContext
|
||||
*
|
||||
* @param array $parameters context parameters (set them up through behat.yml)
|
||||
*/
|
||||
public function __construct(array $parameters)
|
||||
{
|
||||
public function __construct(array $parameters) {
|
||||
// Initialize your context here
|
||||
$this->context = $parameters;
|
||||
}
|
||||
@ -64,8 +65,7 @@ class BasicContext extends BehatContext
|
||||
*
|
||||
* @return \Behat\Mink\Session
|
||||
*/
|
||||
public function getSession($name = null)
|
||||
{
|
||||
public function getSession($name = null) {
|
||||
return $this->getMainContext()->getSession($name);
|
||||
}
|
||||
|
||||
@ -75,8 +75,7 @@ class BasicContext extends BehatContext
|
||||
* Excluding scenarios with @modal tag is required,
|
||||
* because modal dialogs stop any JS interaction
|
||||
*/
|
||||
public function appendErrorHandlerBeforeStep(StepEvent $event)
|
||||
{
|
||||
public function appendErrorHandlerBeforeStep(StepEvent $event) {
|
||||
$javascript = <<<JS
|
||||
window.onerror = function(message, file, line, column, error) {
|
||||
var body = document.getElementsByTagName('body')[0];
|
||||
@ -103,8 +102,7 @@ JS;
|
||||
* Excluding scenarios with @modal tag is required,
|
||||
* because modal dialogs stop any JS interaction
|
||||
*/
|
||||
public function readErrorHandlerAfterStep(StepEvent $event)
|
||||
{
|
||||
public function readErrorHandlerAfterStep(StepEvent $event) {
|
||||
$page = $this->getSession()->getPage();
|
||||
|
||||
$jserrors = $page->find('xpath', '//body[@data-jserrors]');
|
||||
@ -131,8 +129,7 @@ JS;
|
||||
*
|
||||
* @BeforeStep
|
||||
*/
|
||||
public function handleAjaxBeforeStep(StepEvent $event)
|
||||
{
|
||||
public function handleAjaxBeforeStep(StepEvent $event) {
|
||||
$ajaxEnabledSteps = $this->getMainContext()->getAjaxSteps();
|
||||
$ajaxEnabledSteps = implode('|', array_filter($ajaxEnabledSteps));
|
||||
|
||||
@ -175,8 +172,7 @@ JS;
|
||||
*
|
||||
* @AfterStep ~@modal
|
||||
*/
|
||||
public function handleAjaxAfterStep(StepEvent $event)
|
||||
{
|
||||
public function handleAjaxAfterStep(StepEvent $event) {
|
||||
$ajaxEnabledSteps = $this->getMainContext()->getAjaxSteps();
|
||||
$ajaxEnabledSteps = implode('|', array_filter($ajaxEnabledSteps));
|
||||
|
||||
@ -196,8 +192,7 @@ JS;
|
||||
$this->getSession()->executeScript($javascript);
|
||||
}
|
||||
|
||||
public function handleAjaxTimeout()
|
||||
{
|
||||
public function handleAjaxTimeout() {
|
||||
$timeoutMs = $this->getMainContext()->getAjaxTimeout();
|
||||
|
||||
// Wait for an ajax request to complete, but only for a maximum of 5 seconds to avoid deadlocks
|
||||
@ -215,8 +210,7 @@ JS;
|
||||
*
|
||||
* @AfterStep
|
||||
*/
|
||||
public function takeScreenshotAfterFailedStep(StepEvent $event)
|
||||
{
|
||||
public function takeScreenshotAfterFailedStep(StepEvent $event) {
|
||||
if (4 === $event->getResult()) {
|
||||
$this->takeScreenshot($event);
|
||||
}
|
||||
@ -248,8 +242,7 @@ JS;
|
||||
*
|
||||
* @AfterScenario @assets
|
||||
*/
|
||||
public function cleanAssetsAfterScenario(ScenarioEvent $event)
|
||||
{
|
||||
public function cleanAssetsAfterScenario(ScenarioEvent $event) {
|
||||
foreach(\File::get() as $file) {
|
||||
if(file_exists($file->getFullPath())) $file->delete();
|
||||
}
|
||||
@ -296,8 +289,7 @@ JS;
|
||||
/**
|
||||
* @Then /^I should be redirected to "([^"]+)"/
|
||||
*/
|
||||
public function stepIShouldBeRedirectedTo($url)
|
||||
{
|
||||
public function stepIShouldBeRedirectedTo($url) {
|
||||
if ($this->getMainContext()->canIntercept()) {
|
||||
$client = $this->getSession()->getDriver()->getClient();
|
||||
$client->followRedirects(true);
|
||||
@ -312,8 +304,7 @@ JS;
|
||||
/**
|
||||
* @Given /^the page can't be found/
|
||||
*/
|
||||
public function stepPageCantBeFound()
|
||||
{
|
||||
public function stepPageCantBeFound() {
|
||||
$page = $this->getSession()->getPage();
|
||||
assertTrue(
|
||||
// Content from ErrorPage default record
|
||||
@ -326,16 +317,14 @@ JS;
|
||||
/**
|
||||
* @Given /^I wait (?:for )?([\d\.]+) second(?:s?)$/
|
||||
*/
|
||||
public function stepIWaitFor($secs)
|
||||
{
|
||||
public function stepIWaitFor($secs) {
|
||||
$this->getSession()->wait((float)$secs*1000);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Given /^I press the "([^"]*)" button$/
|
||||
*/
|
||||
public function stepIPressTheButton($button)
|
||||
{
|
||||
public function stepIPressTheButton($button) {
|
||||
$page = $this->getSession()->getPage();
|
||||
$els = $page->findAll('named', array('link_or_button', "'$button'"));
|
||||
$matchedEl = null;
|
||||
@ -353,8 +342,7 @@ JS;
|
||||
*
|
||||
* @Given /^I (?:press|follow) the "([^"]*)" (?:button|link), confirming the dialog$/
|
||||
*/
|
||||
public function stepIPressTheButtonConfirmingTheDialog($button)
|
||||
{
|
||||
public function stepIPressTheButtonConfirmingTheDialog($button) {
|
||||
$this->stepIPressTheButton($button);
|
||||
$this->iConfirmTheDialog();
|
||||
}
|
||||
@ -365,8 +353,7 @@ JS;
|
||||
*
|
||||
* @Given /^I (?:press|follow) the "([^"]*)" (?:button|link), dismissing the dialog$/
|
||||
*/
|
||||
public function stepIPressTheButtonDismissingTheDialog($button)
|
||||
{
|
||||
public function stepIPressTheButtonDismissingTheDialog($button) {
|
||||
$this->stepIPressTheButton($button);
|
||||
$this->iDismissTheDialog();
|
||||
}
|
||||
@ -374,8 +361,7 @@ JS;
|
||||
/**
|
||||
* @Given /^I click "([^"]*)" in the "([^"]*)" element$/
|
||||
*/
|
||||
public function iClickInTheElement($text, $selector)
|
||||
{
|
||||
public function iClickInTheElement($text, $selector) {
|
||||
$page = $this->getSession()->getPage();
|
||||
|
||||
$parentElement = $page->find('css', $selector);
|
||||
@ -390,8 +376,7 @@ JS;
|
||||
/**
|
||||
* @Given /^I type "([^"]*)" into the dialog$/
|
||||
*/
|
||||
public function iTypeIntoTheDialog($data)
|
||||
{
|
||||
public function iTypeIntoTheDialog($data) {
|
||||
$data = array(
|
||||
'text' => $data,
|
||||
);
|
||||
@ -401,8 +386,7 @@ JS;
|
||||
/**
|
||||
* @Given /^I confirm the dialog$/
|
||||
*/
|
||||
public function iConfirmTheDialog()
|
||||
{
|
||||
public function iConfirmTheDialog() {
|
||||
$this->getSession()->getDriver()->getWebDriverSession()->accept_alert();
|
||||
$this->handleAjaxTimeout();
|
||||
}
|
||||
@ -410,8 +394,7 @@ JS;
|
||||
/**
|
||||
* @Given /^I dismiss the dialog$/
|
||||
*/
|
||||
public function iDismissTheDialog()
|
||||
{
|
||||
public function iDismissTheDialog() {
|
||||
$this->getSession()->getDriver()->getWebDriverSession()->dismiss_alert();
|
||||
$this->handleAjaxTimeout();
|
||||
}
|
||||
@ -419,8 +402,7 @@ JS;
|
||||
/**
|
||||
* @Given /^(?:|I )attach the file "(?P<path>[^"]*)" to "(?P<field>(?:[^"]|\\")*)" with HTML5$/
|
||||
*/
|
||||
public function iAttachTheFileTo($field, $path)
|
||||
{
|
||||
public function iAttachTheFileTo($field, $path) {
|
||||
// Remove wrapped button styling to make input field accessible to Selenium
|
||||
$js = <<<JS
|
||||
var input = jQuery('[name="$field"]');
|
||||
@ -469,8 +451,7 @@ JS;
|
||||
*
|
||||
* @Then /^(?:|I )put a breakpoint$/
|
||||
*/
|
||||
public function iPutABreakpoint()
|
||||
{
|
||||
public function iPutABreakpoint() {
|
||||
fwrite(STDOUT, "\033[s \033[93m[Breakpoint] Press \033[1;93m[RETURN]\033[0;93m to continue...\033[0m");
|
||||
while (fgets(STDIN, 1024) == '') {}
|
||||
fwrite(STDOUT, "\033[u");
|
||||
@ -618,7 +599,8 @@ JS;
|
||||
|
||||
$linkObj = $regionObj->findLink($link);
|
||||
if (empty($linkObj)) {
|
||||
throw new \Exception(sprintf('The link "%s" was not found in the region "%s" on the page %s', $link, $region, $this->getSession()->getCurrentUrl()));
|
||||
throw new \Exception(sprintf('The link "%s" was not found in the region "%s"
|
||||
on the page %s', $link, $region, $this->getSession()->getCurrentUrl()));
|
||||
}
|
||||
|
||||
$linkObj->click();
|
||||
@ -631,14 +613,15 @@ JS;
|
||||
*
|
||||
* @Given /^I fill in "(?P<field>[^"]*)" with "(?P<value>[^"]*)" in the "(?P<region>[^"]*)" region$/
|
||||
*/
|
||||
public function iFillinTheRegion($field, $value, $region){
|
||||
public function iFillinTheRegion($field, $value, $region) {
|
||||
$context = $this->getMainContext();
|
||||
$regionObj = $context->getRegionObj($region);
|
||||
assertNotNull($regionObj, "Region Object is null");
|
||||
|
||||
$fieldObj = $regionObj->findField($field);
|
||||
if (empty($fieldObj)) {
|
||||
throw new \Exception(sprintf('The field "%s" was not found in the region "%s" on the page %s', $field, $region, $this->getSession()->getCurrentUrl()));
|
||||
throw new \Exception(sprintf('The field "%s" was not found in the region "%s"
|
||||
on the page %s', $field, $region, $this->getSession()->getCurrentUrl()));
|
||||
}
|
||||
|
||||
$regionObj->fillField($field, $value);
|
||||
@ -756,10 +739,12 @@ JS;
|
||||
);
|
||||
|
||||
// Find tables by a <caption> field
|
||||
$candidates += $page->findAll('xpath', "//table//caption[contains(normalize-space(string(.)), $selector)]/ancestor-or-self::table[1]");
|
||||
$candidates += $page->findAll('xpath', "//table//caption[contains(normalize-space(string(.)),
|
||||
$selector)]/ancestor-or-self::table[1]");
|
||||
|
||||
// Find tables by a .title node
|
||||
$candidates += $page->findAll('xpath', "//table//*[@class='title' and contains(normalize-space(string(.)), $selector)]/ancestor-or-self::table[1]");
|
||||
$candidates += $page->findAll('xpath', "//table//*[@class='title' and contains(normalize-space(string(.)),
|
||||
$selector)]/ancestor-or-self::table[1]");
|
||||
|
||||
// Some tables don't have a visible title, so look for a fieldset with data-name instead
|
||||
$candidates += $page->findAll('xpath', "//fieldset[@data-name=$selector]//table");
|
||||
|
Loading…
x
Reference in New Issue
Block a user