From 5ea2f157b0775ad5eb27a293753edaeb61468feb Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Tue, 12 Sep 2023 13:03:49 +1200 Subject: [PATCH] NEW Assert element attributes --- src/Context/BasicContext.php | 11 +++++++++++ src/Context/FixtureContext.php | 12 +++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/Context/BasicContext.php b/src/Context/BasicContext.php index 2ed1dd6..abacd57 100644 --- a/src/Context/BasicContext.php +++ b/src/Context/BasicContext.php @@ -545,6 +545,17 @@ JS; $this->iDismissTheDialog(); } + /** + * @Then /^the "([^"]+)" element "([^"]+)" attribute should be "([^"]*)"$/ + */ + public function theElementAttributeShouldBe($selector, $attribute, $value) + { + $page = $this->getSession()->getPage(); + $element = $page->find('css', $selector); + Assert::assertNotNull($element, sprintf('Element %s not found', $selector)); + Assert::assertEquals($value, $element->getAttribute($attribute)); + } + /** * @Given /^I see the text "([^"]+)" in the alert$/ * @param string $expected diff --git a/src/Context/FixtureContext.php b/src/Context/FixtureContext.php index 2222b5e..34724ae 100644 --- a/src/Context/FixtureContext.php +++ b/src/Context/FixtureContext.php @@ -30,6 +30,7 @@ use SilverStripe\Security\Group; use SilverStripe\Security\Member; use SilverStripe\Security\Permission; use SilverStripe\Versioned\Versioned; +use SilverStripe\Core\Config\Config; /** * Context used to create fixtures in the SilverStripe ORM. @@ -659,7 +660,16 @@ class FixtureContext implements Context // Add the extension to the CLI context /** @var Extensible $targetClass */ - $targetClass = $this->convertTypeToClass($class); + try { + $targetClass = $this->convertTypeToClass($class); + } catch (InvalidArgumentException $e) { + // will end up here if the class is not a subclass of DataObject + if (class_exists($class)) { + $targetClass = $class; + } else { + throw $e; + } + } $targetClass::add_extension($extension); // Write config for this extension too...