Skip to content

Commit 8050501

Browse files
authored
Add fieldValueMatches / fieldValueNotMatches
Would be hand to allow pattern assertions on field values like on the page text. This was mentioned here #696 but: "PR got lost in the sands of time" :)
1 parent 6d637f7 commit 8050501

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

src/WebAssert.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,44 @@ public function fieldValueNotEquals($field, $value, TraversableElement $containe
695695
$this->assert(!preg_match($regex, $actual), $message);
696696
}
697697

698+
/**
699+
* Checks that specific field matches provided regex.
700+
*
701+
* @param string $field field id|name|label|value
702+
* @param string $regex pattern
703+
* @param TraversableElement $container document to check against
704+
*
705+
* @throws ExpectationException
706+
*/
707+
public function fieldValueMatches($field, $regex, TraversableElement $container = null)
708+
{
709+
$node = $this->fieldExists($field, $container);
710+
$actual = $node->getValue();
711+
712+
$message = sprintf('The pattern "%s" was not found in the value "%s" of field "%s".', $regex, $actual, $field);
713+
714+
$this->assert((bool) preg_match($regex, $actual), $message);
715+
}
716+
717+
/**
718+
* Checks that specific field have provided value.
719+
*
720+
* @param string $field field id|name|label|value
721+
* @param string $regex pattern
722+
* @param TraversableElement $container document to check against
723+
*
724+
* @throws ExpectationException
725+
*/
726+
public function fieldValueNotMatches($field, $regex, TraversableElement $container = null)
727+
{
728+
$node = $this->fieldExists($field, $container);
729+
$actual = $node->getValue();
730+
731+
$message = sprintf('The pattern "%s" was found in the value "%s" of field "%s", but it should not.', $regex, $actual, $field);
732+
733+
$this->assert((bool) preg_match($regex, $actual), $message);
734+
}
735+
698736
/**
699737
* Checks that specific checkbox is checked.
700738
*

0 commit comments

Comments
 (0)