summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorChristian Weiske <[email protected]>2010-11-10 22:48:16 +0100
committerAndrew Dolgov <[email protected]>2010-11-11 09:43:18 +0300
commit24eb4c780f531363e90fe2d8248d50189dcb6b38 (patch)
treea789fa8395750b45b5bf7bc08e6f7922b58040c2 /tests
parent444537736be8625a5f2ba15de6c284d91666c011 (diff)
add unit tests for url_is_html and fix a bug with UPPERCASE <HTML> in it
Diffstat (limited to 'tests')
-rw-r--r--tests/FunctionsTest.php121
1 files changed, 121 insertions, 0 deletions
diff --git a/tests/FunctionsTest.php b/tests/FunctionsTest.php
index 61264ac50..163e985d0 100644
--- a/tests/FunctionsTest.php
+++ b/tests/FunctionsTest.php
@@ -7,6 +7,19 @@ require_once dirname(__FILE__) . '/../functions.php';
*/
class FunctionsTest extends PHPUnit_Framework_TestCase
{
+ protected $tmpFile = null;
+ public function __construct()
+ {
+ $this->tmpFile = sys_get_temp_dir() . '/tt-rss-unittest.dat';
+ }
+
+ public function tearDown()
+ {
+ if (file_exists($this->tmpFile)) {
+ unlink($this->tmpFile);
+ }
+ }
+
/**
* Test fix_url with feed:// urls
*/
@@ -56,6 +69,114 @@ class FunctionsTest extends PHPUnit_Framework_TestCase
fix_url('tt-rss.org/foo/bar/baz/')
);
}
+
+
+ /**
+ * Test url_is_html() on html with a doctype
+ */
+ public function testUrlIsHtmlNormalHtmlWithDoctype()
+ {
+ file_put_contents(
+ $this->tmpFile, <<<HTM
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+HTM
+ );
+ $this->assertTrue(url_is_html($this->tmpFile));
+
+ file_put_contents(
+ $this->tmpFile, <<<HTM
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+HTM
+ );
+ $this->assertTrue(url_is_html($this->tmpFile));
+ }
+
+ /**
+ * Test url_is_html() on html with a doctype and xml header
+ */
+ public function testUrlIsHtmlNormalHtmlWithDoctypeAndXml()
+ {
+ file_put_contents(
+ $this->tmpFile, <<<HTM
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+HTM
+ );
+ $this->assertTrue(url_is_html($this->tmpFile));
+ }
+
+ /**
+ * Test url_is_html() on html without a doctype
+ */
+ public function testUrlIsHtmlNormalHtmlWithoutDoctype()
+ {
+ file_put_contents(
+ $this->tmpFile, <<<HTM
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+HTM
+ );
+ $this->assertTrue(url_is_html($this->tmpFile));
+ }
+
+ /**
+ * Test url_is_html() on UPPERCASE HTML
+ */
+ public function testUrlIsHtmlNormalHtmlUppercase()
+ {
+ file_put_contents(
+ $this->tmpFile, <<<HTM
+<HTML XMLNS="http://www.w3.org/1999/xhtml" XML:LANG="en">
+<HEAD>
+HTM
+ );
+ $this->assertTrue(url_is_html($this->tmpFile));
+
+ file_put_contents(
+ $this->tmpFile, <<<HTM
+<HTML>
+<HEAD>
+HTM
+ );
+ $this->assertTrue(url_is_html($this->tmpFile));
+ }
+
+ /**
+ * Test url_is_html() on atom
+ */
+ public function testUrlIsHtmlAtom()
+ {
+ file_put_contents(
+ $this->tmpFile, <<<HTM
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <title>Christians Tagebuch</title>
+HTM
+ );
+ $this->assertFalse(url_is_html($this->tmpFile));
+ }
+
+ /**
+ * Test url_is_html() on RSS
+ */
+ public function testUrlIsHtmlRss()
+ {
+ file_put_contents(
+ $this->tmpFile, <<<HTM
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
+ <channel>
+ <title><![CDATA[Planet-PEAR]]></title>
+HTM
+ );
+ $this->assertFalse(url_is_html($this->tmpFile));
+ }
}
?> \ No newline at end of file