class CssSelectorTest in Zircon Profile 8.0
Same name in this branch
- 8.0 vendor/symfony/css-selector/Tests/CssSelectorTest.php \Symfony\Component\CssSelector\Tests\CssSelectorTest
- 8.0 vendor/behat/mink/tests/Selector/CssSelectorTest.php \Behat\Mink\Tests\Selector\CssSelectorTest
Same name and namespace in other branches
- 8 vendor/symfony/css-selector/Tests/CssSelectorTest.php \Symfony\Component\CssSelector\Tests\CssSelectorTest
Hierarchy
- class \Symfony\Component\CssSelector\Tests\CssSelectorTest extends \Symfony\Component\CssSelector\Tests\PHPUnit_Framework_TestCase
Expanded class hierarchy of CssSelectorTest
File
- vendor/
symfony/ css-selector/ Tests/ CssSelectorTest.php, line 16
Namespace
Symfony\Component\CssSelector\TestsView source
class CssSelectorTest extends \PHPUnit_Framework_TestCase {
public function testCssToXPath() {
$this
->assertEquals('descendant-or-self::*', CssSelector::toXPath(''));
$this
->assertEquals('descendant-or-self::h1', CssSelector::toXPath('h1'));
$this
->assertEquals("descendant-or-self::h1[@id = 'foo']", CssSelector::toXPath('h1#foo'));
$this
->assertEquals("descendant-or-self::h1[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]", CssSelector::toXPath('h1.foo'));
$this
->assertEquals('descendant-or-self::foo:h1', CssSelector::toXPath('foo|h1'));
}
/** @dataProvider getCssToXPathWithoutPrefixTestData */
public function testCssToXPathWithoutPrefix($css, $xpath) {
$this
->assertEquals($xpath, CssSelector::toXPath($css, ''), '->parse() parses an input string and returns a node');
}
public function testParseExceptions() {
try {
CssSelector::toXPath('h1:');
$this
->fail('->parse() throws an Exception if the css selector is not valid');
} catch (\Exception $e) {
$this
->assertInstanceOf('\\Symfony\\Component\\CssSelector\\Exception\\ParseException', $e, '->parse() throws an Exception if the css selector is not valid');
$this
->assertEquals('Expected identifier, but <eof at 3> found.', $e
->getMessage(), '->parse() throws an Exception if the css selector is not valid');
}
}
public function getCssToXPathWithoutPrefixTestData() {
return array(
array(
'h1',
'h1',
),
array(
'foo|h1',
'foo:h1',
),
array(
'h1, h2, h3',
'h1 | h2 | h3',
),
array(
'h1:nth-child(3n+1)',
"*/*[name() = 'h1' and (position() - 1 >= 0 and (position() - 1) mod 3 = 0)]",
),
array(
'h1 > p',
'h1/p',
),
array(
'h1#foo',
"h1[@id = 'foo']",
),
array(
'h1.foo',
"h1[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]",
),
array(
'h1[class*="foo bar"]',
"h1[@class and contains(@class, 'foo bar')]",
),
array(
'h1[foo|class*="foo bar"]',
"h1[@foo:class and contains(@foo:class, 'foo bar')]",
),
array(
'h1[class]',
'h1[@class]',
),
array(
'h1 .foo',
"h1/descendant-or-self::*/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]",
),
array(
'h1 #foo',
"h1/descendant-or-self::*/*[@id = 'foo']",
),
array(
'h1 [class*=foo]',
"h1/descendant-or-self::*/*[@class and contains(@class, 'foo')]",
),
array(
'div>.foo',
"div/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]",
),
array(
'div > .foo',
"div/*[@class and contains(concat(' ', normalize-space(@class), ' '), ' foo ')]",
),
);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CssSelectorTest:: |
public | function | ||
CssSelectorTest:: |
public | function | ||
CssSelectorTest:: |
public | function | @dataProvider getCssToXPathWithoutPrefixTestData | |
CssSelectorTest:: |
public | function |