convertSelectToTag() public static method

Parse a CSS selector into an associative array suitable for use with findNodes().
Author: Mike Naberezny (mike@maintainable.com)
Author: Derek DeVries (derek@maintainable.com)
public static convertSelectToTag ( string $selector, mixed $content = TRUE ) : array
$selector string
$content mixed
return array
Example #1
0
 public function testConvertAssertRange()
 {
     $selector = '#foo';
     $content = array('greater_than' => 5, 'less_than' => 10);
     $converted = PHPUnit_Util_XML::convertSelectToTag($selector, $content);
     $tag = array('id' => 'foo');
     $this->assertEquals($tag, $converted);
 }
Example #2
0
 /**
  * @param   string      $selector
  * @param   DOMDocument $actual
  * @param   string      $message
  * @param   mixed       $content
  * @param   boolean     $exists
  * @since  Method available since Release 3.3.0
  * @author Mike Naberezny <*****@*****.**>
  * @author Derek DeVries <*****@*****.**>
  */
 protected static function doXmlSelect($selector, DOMDocument $actual, $message, $content, $exists)
 {
     $options = PHPUnit_Util_XML::convertSelectToTag($selector, $content);
     $tags = PHPUnit_Util_XML::findNodes($actual, $options);
     // check if any elements exist with given content
     if (is_bool($content) || is_string($content)) {
         if ($content === TRUE) {
             self::assertFalse($tags, $message);
         } else {
             if ($exists === TRUE) {
                 self::assertTrue(count($tags) > 0 && $tags[0] instanceof DOMNode, $message);
             } else {
                 if ($exists === FALSE) {
                     self::assertFalse(count($tags) > 0 && $tags[0] instanceof DOMNode, $message);
                 }
             }
         }
     } else {
         if (is_numeric($content)) {
             $tagCount = $tags ? count($tags) : 0;
             self::assertEquals($content, $tagCount);
         } else {
             if (is_array($content) && (isset($content['>']) || isset($content['<']) || isset($content['>=']) || isset($content['<=']))) {
                 $tagCount = $tags ? count($tags) : 0;
                 if (isset($content['>'])) {
                     self::assertTrue($tagCount > $content['>'], $message);
                 }
                 if (isset($content['>='])) {
                     self::assertTrue($tagCount >= $content['>='], $message);
                 }
                 if (isset($content['<'])) {
                     self::assertTrue($tagCount < $content['<'], $message);
                 }
                 if (isset($content['<='])) {
                     self::assertTrue($tagCount <= $content['<='], $message);
                 }
             } else {
                 throw new InvalidArgumentException();
             }
         }
     }
 }