summaryrefslogtreecommitdiff
path: root/lib/querypath/test/Tests/QueryPath/Extensions
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2017-01-18 20:07:16 +0100
committeremkael <emkael@tlen.pl>2017-01-18 20:07:16 +0100
commit9a9c04512e5dcb77c7fe5d850e3f2a0250cc160e (patch)
treefed46b5f4c2ed3a050bb1a7ad7c6d0a3ea844d55 /lib/querypath/test/Tests/QueryPath/Extensions
parentc5bcf8f74fb80b7e163663845b0d6e35cabface3 (diff)
* Motor Sport Magazine feed provider
Diffstat (limited to 'lib/querypath/test/Tests/QueryPath/Extensions')
-rw-r--r--lib/querypath/test/Tests/QueryPath/Extensions/QPXMLTest.php41
-rw-r--r--lib/querypath/test/Tests/QueryPath/Extensions/QPXSLTest.php60
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');
+ }
+}