Source of file FeatureContext.php
Size: 3,155 Bytes - Last Modified: 2021-12-23T10:29:24+00:00
/var/www/docs.ssmods.com/process/src/tests/behat/src/FeatureContext.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | <?php namespace UncleCheese\DisplayLogic\Tests\Behaviour; use SilverStripe\BehatExtension\Context\SilverStripeContext; use SilverStripe\Config\Collections\CachedConfigCollection; use SilverStripe\Core\Config\ConfigLoader; use SilverStripe\Core\Manifest\ClassLoader; use SilverStripe\BehatExtension\Context\MainContextAwareTrait; class FeatureContext extends SilverStripeContext { use MainContextAwareTrait; /** * @Given /^I add a test class "([^"]+)"$/ * @param string $name */ public function iAddATestClass($name) { copy( __DIR__ . "/../bootstrap/{$name}.php.fixture", __DIR__ . "/../../../src/{$name}.php" ); static::flush(); } /** * @Then /^I should not have a test class "([^"]+)"$/ * @param string $name */ public function iShouldNotHaveATestClass($name) { assertNull( ClassLoader::inst()->getManifest()->getItemPath( 'UncleCheese\DisplayLogic\DisplayLogicTestPage' ) ); } /** * @Then /^I should have a test class "([^"]+)"$/ * @param string $name */ public function iShouldHaveATestClass($name) { assertEquals( realpath(__DIR__ . "/../../../src/{$name}.php"), ClassLoader::inst()->getManifest()->getItemPath( 'UncleCheese\DisplayLogic\DisplayLogicTestPage' ) ); } /** * @Given /^I remove the test class "([^"]+)"$/ * @param string $name */ public function iRemoveTheTestClass($name) { unlink(__DIR__ . "/../../../src/{$name}.php"); static::flush(); } /** * @When /^(?:|I )go build the database/ */ public function stepIBuild() { $this->getMainContext()->visit('/dev/build?flush'); } /** * @When /^(?:|I )go flush the website, dismissing the dialog$/ */ public function stepIFlushDismisingTheDialog() { $this->getMainContext()->visit('/?flush=all'); $this->getSession()->getDriver()->getWebDriverSession()->dismiss_alert(); } /** * @Then /^the element "([^"]+)" should be visible$/ * @param string $elem CSS selector */ public function elementIsVisible($elem) { $node = $this->getSession()->getPage()->find('css', $elem); assertNotNull($node, "Element $elem was not found"); assertTrue($node->isVisible(), "Element $elem is not visible"); } /** * @Then /^the element "([^"]+)" should not be visible$/ * @param string $elem CSS selector */ public function elementIsNotVisible($elem) { $node = $this->getSession()->getPage()->find('css', $elem); assertNotNull($node, "Element $elem was not found"); assertFalse($node->isVisible(), "Element $elem is visible"); } protected static function flush() { ClassLoader::inst()->getManifest()->init(false, true); $config = ConfigLoader::inst()->getManifest(); if ($config instanceof CachedConfigCollection) { $config->setFlush(true); } } } |