mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge pull request #3900 from chillu/pulls/behat-wait-cms-load
Behat: Wait until CMS loading overlay is removed
This commit is contained in:
commit
c7de1f40e1
@ -6,6 +6,7 @@ use Behat\Behat\Context\ClosuredContextInterface,
|
|||||||
Behat\Behat\Context\TranslatedContextInterface,
|
Behat\Behat\Context\TranslatedContextInterface,
|
||||||
Behat\Behat\Context\BehatContext,
|
Behat\Behat\Context\BehatContext,
|
||||||
Behat\Behat\Context\Step,
|
Behat\Behat\Context\Step,
|
||||||
|
Behat\Behat\Event\StepEvent,
|
||||||
Behat\Behat\Exception\PendingException,
|
Behat\Behat\Exception\PendingException,
|
||||||
Behat\Mink\Exception\ElementNotFoundException,
|
Behat\Mink\Exception\ElementNotFoundException,
|
||||||
Behat\Gherkin\Node\PyStringNode,
|
Behat\Gherkin\Node\PyStringNode,
|
||||||
@ -43,6 +44,25 @@ class CmsUiContext extends BehatContext {
|
|||||||
return $this->getMainContext()->getSession($name);
|
return $this->getMainContext()->getSession($name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wait until CMS loading overlay isn't present.
|
||||||
|
* This is an addition to the "ajax steps" logic in
|
||||||
|
* SilverStripe\BehatExtension\Context\BasicContext
|
||||||
|
* which also waits for any ajax requests to finish before continuing.
|
||||||
|
*
|
||||||
|
* The check also applies in when not in the CMS, which is a structural issue:
|
||||||
|
* Every step could cause the CMS to be loaded, and we don't know if we're in the
|
||||||
|
* CMS UI until we run a check.
|
||||||
|
*
|
||||||
|
* @AfterStep
|
||||||
|
*/
|
||||||
|
public function handleCmsLoadingAfterStep(StepEvent $event) {
|
||||||
|
$timeoutMs = $this->getMainContext()->getAjaxTimeout();
|
||||||
|
$this->getSession()->wait($timeoutMs,
|
||||||
|
"document.getElementsByClassName('cms-content-loading-overlay').length == 0"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Then /^I should see the CMS$/
|
* @Then /^I should see the CMS$/
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user