<?php /** * @package sapphire * @subpackage tests */ class CSSContentParserTest extends SapphireTest { function testSelector2xpath() { $parser = new CSSContentParser("<html><head><title>test</title></head><body><p>test</p></body></html>"); $this->assertEquals("//div[@id='UserProfile']//label", $parser->selector2xpath("div#UserProfile label")); $this->assertEquals("//div", $parser->selector2xpath("div")); $this->assertEquals("//div[contains(@class,'test')]", $parser->selector2xpath("div.test")); $this->assertEquals("//*[@id='UserProfile']//div[contains(@class,'test')]//*[contains(@class,'other')]//div[@id='Item']", $parser->selector2xpath("#UserProfile div.test .other div#Item")); } function testGetBySelector() { $parser = new CSSContentParser(<<<HTML <html> <head> <title>test</title> </head> <body> <div id="A" class="one two three"> <p class="other">result</p> </div> <p>test</p> </body> </html> HTML ); $result = $parser->getBySelector('div.one'); $this->assertEquals("A", $result[0]['id'].''); $result = $parser->getBySelector('div.two'); $this->assertEquals("A", $result[0]['id'].''); $result = $parser->getBySelector('div.three'); $this->assertEquals("A", $result[0]['id'].''); $result = $parser->getBySelector('div#A p.other'); $this->assertEquals("result", $result[0] . ''); $result = $parser->getBySelector('#A .other'); $this->assertEquals("result", $result[0] . ''); } }