1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\DomCrawler\Tests\Test\Constraint;
use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\TestCase;
use Symfony\Component\DomCrawler\Crawler;
use Symfony\Component\DomCrawler\Test\Constraint\CrawlerAnySelectorTextContains;
class CrawlerAnySelectorTextContainsTest extends TestCase
{
#[\PHPUnit\Framework\Attributes\Group('nophpunit11')]
public function testConstraint()
{
$constraint = new CrawlerAnySelectorTextContains('ul li', 'Foo');
self::assertTrue($constraint->evaluate(new Crawler('<ul><li>Foo</li>'), '', true));
self::assertTrue($constraint->evaluate(new Crawler('<ul><li>Bar</li><li>Foo'), '', true));
self::assertTrue($constraint->evaluate(new Crawler('<ul><li>Bar</li><li>Foo Bar Baz'), '', true));
self::assertFalse($constraint->evaluate(new Crawler('<ul><li>Bar</li><li>Baz'), '', true));
}
public function testDoesNotMatchIfNodeDoesContainExpectedText()
{
$constraint = new CrawlerAnySelectorTextContains('ul li', 'Foo');
$this->expectException(ExpectationFailedException::class);
$this->expectExceptionMessage('Failed asserting that the text of any node matching selector "ul li" contains "Foo".');
$constraint->evaluate(new Crawler('<ul><li>Bar</li><li>Baz'));
}
public function testDoesNotMatchIfNodeDoesNotExist()
{
$constraint = new CrawlerAnySelectorTextContains('ul li', 'Foo');
$this->expectException(ExpectationFailedException::class);
$this->expectExceptionMessage('Failed asserting that the Crawler has a node matching selector "ul li".');
$constraint->evaluate(new Crawler('<html><head><title>Foobar'));
}
}
|