diff options
Diffstat (limited to 'lib/querypath/test/Tests/QueryPath/Extensions')
-rw-r--r-- | lib/querypath/test/Tests/QueryPath/Extensions/QPXMLTest.php | 41 | ||||
-rw-r--r-- | lib/querypath/test/Tests/QueryPath/Extensions/QPXSLTest.php | 60 |
2 files changed, 101 insertions, 0 deletions
diff --git a/lib/querypath/test/Tests/QueryPath/Extensions/QPXMLTest.php b/lib/querypath/test/Tests/QueryPath/Extensions/QPXMLTest.php new file mode 100644 index 0000000..266003e --- /dev/null +++ b/lib/querypath/test/Tests/QueryPath/Extensions/QPXMLTest.php @@ -0,0 +1,41 @@ +<?php +/** + * Tests for the QueryPath library. + * @author M Butcher <matt@aleph-null.tv> + * @license The GNU Lesser GPL (LGPL) or an MIT-like license. + */ +namespace QueryPath\Tests; + +//require_once 'PHPUnit/Autoload.php'; +require_once __DIR__ . '/../TestCase.php'; +require_once 'src/QueryPath/Extension/QPXML.php'; +/** + * @ingroup querypath_tests + * @group extension + */ +class QPXMLTests extends TestCase { + + protected $file = './test/advanced.xml'; + public static function setUpBeforeClass() { + \QueryPath::enable('\QueryPath\Extension\QPXML'); + } + + public function testCDATA() { + $this->assertEquals('This is a CDATA section.', qp($this->file, 'first')->cdata()); + + $msg = 'Another CDATA Section'; + $this->assertEquals($msg, qp($this->file, 'second')->cdata($msg)->top()->find('second')->cdata()); + } + + public function testComment(){ + $this->assertEquals('This is a comment.', trim(qp($this->file, 'root')->comment())); + $msg = "Message"; + $this->assertEquals($msg, qp($this->file, 'second')->comment($msg)->top()->find('second')->comment()); + } + + public function testProcessingInstruction() { + $this->assertEquals('This is a processing instruction.', trim(qp($this->file, 'third')->pi())); + $msg = "Message"; + $this->assertEquals($msg, qp($this->file, 'second')->pi('qp', $msg)->top()->find('second')->pi()); + } +} diff --git a/lib/querypath/test/Tests/QueryPath/Extensions/QPXSLTest.php b/lib/querypath/test/Tests/QueryPath/Extensions/QPXSLTest.php new file mode 100644 index 0000000..f0c5ed1 --- /dev/null +++ b/lib/querypath/test/Tests/QueryPath/Extensions/QPXSLTest.php @@ -0,0 +1,60 @@ +<?php +/** + * Tests for the QueryPath library. + * @author M Butcher <matt@aleph-null.tv> + * @license The GNU Lesser GPL (LGPL) or an MIT-like license. + */ + +namespace QueryPath\Tests; + +//require_once 'PHPUnit/Autoload.php'; +require_once 'src/QueryPath/Extension/QPXSL.php'; +require_once __DIR__ . '/../TestCase.php'; +/** + * @ingroup querypath_tests + * @extension + */ +class QPXSLTests extends TestCase { + + protected $file = './test/advanced.xml'; + + public static function setUpBeforeClass() { + \QueryPath::enable('\QueryPath\Extension\QPXSL'); + } + public function testXSLT() { + // XML and XSLT taken from http://us.php.net/manual/en/xsl.examples-collection.php + // and then modified to be *actually welformed* XML. + $orig = '<?xml version="1.0"?><collection> + <cd> + <title>Fight for your mind</title> + <artist>Ben Harper</artist> + <year>1995</year> + </cd> + <cd> + <title>Electric Ladyland</title> + <artist>Jimi Hendrix</artist> + <year>1997</year> + </cd> + </collection>'; + + $template = '<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + <xsl:param name="owner" select="\'Nicolas Eliaszewicz\'"/> + <xsl:output method="html" encoding="iso-8859-1" indent="no"/> + <xsl:template match="collection"> + <div> + Hey! Welcome to <xsl:value-of select="$owner"/>\'s sweet CD collection! + <xsl:apply-templates/> + </div> + </xsl:template> + <xsl:template match="cd"> + <h1><xsl:value-of select="title"/></h1> + <h2>by <xsl:value-of select="artist"/> - <xsl:value-of select="year"/></h2> + <hr /> + </xsl:template> + </xsl:stylesheet> + '; + + $qp = qp($orig)->xslt($template); + $this->assertEquals(2, $qp->top('h1')->size(), 'Make sure that data was formatted'); + } +} |