merged branch pscheit/master (PR #2742)
Commits
-------
63e2a99
[CssSelector] Fixed Issue for XPathExprOr: missing prefix in string conversion
Discussion
----------
[CssSelector] Issue for XPathExprOr: missing prefix in string conversion
Hi there,
I created a small and dumb test for the issue. I looked at the original implementation and i think the problem is, that private properties are used in the parent class for xPathExprOr. so that the prefix cannot be accessd with $this->prefix in XPathExprOr
However I think the distribution for the prefix should be put in the parts of the or-sub-expressions the way it is shown in the test.
Hope this helps.
Best regards
Philipp
This commit is contained in:
commit
654352f8d1
@ -42,7 +42,7 @@ class XPathExprOr extends XPathExpr
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
$prefix = $this->prefix;
|
||||
$prefix = $this->getPrefix();
|
||||
|
||||
$tmp = array();
|
||||
foreach ($this->items as $i) {
|
||||
|
@ -26,4 +26,18 @@ class OrNodeTest extends \PHPUnit_Framework_TestCase
|
||||
|
||||
$this->assertEquals("h1 | h2 | h3", (string) $or->toXpath(), '->toXpath() returns the xpath representation of the node');
|
||||
}
|
||||
|
||||
public function testIssueMissingPrefix()
|
||||
{
|
||||
// h1, h2, h3
|
||||
$element1 = new ElementNode('*', 'h1');
|
||||
$element2 = new ElementNode('*', 'h2');
|
||||
$element3 = new ElementNode('*', 'h3');
|
||||
$or = new OrNode(array($element1, $element2, $element3));
|
||||
|
||||
$xPath = $or->toXPath();
|
||||
$xPath->addPrefix('descendant-or-self::');
|
||||
|
||||
$this->assertEquals("descendant-or-self::h1 | descendant-or-self::h2 | descendant-or-self::h3", (string) $xPath);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user