|
@@ -1,245 +0,0 @@
|
|
|
-<?php
|
|
|
-require_once dirname(__FILE__) . '/../functions.php';
|
|
|
-/**
|
|
|
- * Unit tests for functions.php
|
|
|
- *
|
|
|
- * @author Christian Weiske <cweiske@php.net>
|
|
|
- */
|
|
|
-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
|
|
|
- */
|
|
|
- public function testFixUrlFeed()
|
|
|
- {
|
|
|
- $this->assertEquals('http://tt-rss.org/', fix_url('feed://tt-rss.org'));
|
|
|
- $this->assertEquals('http://tt-rss.org/', fix_url('feed://tt-rss.org/'));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Test fix_url with non-http protocols
|
|
|
- */
|
|
|
- public function testFixUrlProtocols()
|
|
|
- {
|
|
|
- $this->assertEquals('https://tt-rss.org/', fix_url('https://tt-rss.org'));
|
|
|
- $this->assertEquals('ftp://tt-rss.org/', fix_url('ftp://tt-rss.org/'));
|
|
|
- $this->assertEquals(
|
|
|
- 'reallylongprotocolisthat://tt-rss.org/',
|
|
|
- fix_url('reallylongprotocolisthat://tt-rss.org')
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Test fix_url with domain names only
|
|
|
- */
|
|
|
- public function testFixUrlDomainOnly()
|
|
|
- {
|
|
|
- $this->assertEquals('http://tt-rss.org/', fix_url('tt-rss.org'));
|
|
|
- $this->assertEquals('http://tt-rss.org/', fix_url('tt-rss.org/'));
|
|
|
- $this->assertEquals('http://tt-rss.org/', fix_url('http://tt-rss.org'));
|
|
|
- $this->assertEquals('http://tt-rss.org/', fix_url('http://tt-rss.org/'));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Test fix_url with domain + paths
|
|
|
- */
|
|
|
- public function testFixUrlWithPaths()
|
|
|
- {
|
|
|
- $this->assertEquals('http://tt-rss.org/foo', fix_url('tt-rss.org/foo'));
|
|
|
-
|
|
|
- $this->assertEquals(
|
|
|
- 'http://tt-rss.org/foo/bar/baz',
|
|
|
- fix_url('tt-rss.org/foo/bar/baz')
|
|
|
- );
|
|
|
- $this->assertEquals(
|
|
|
- 'http://tt-rss.org/foo/bar/baz/',
|
|
|
- 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));
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * Test rewrite_relative_url() with a relative path
|
|
|
- */
|
|
|
- public function testRewriteRelativeUrlRelative()
|
|
|
- {
|
|
|
- $this->assertEquals(
|
|
|
- 'http://tt-rss.org/foo/bar',
|
|
|
- rewrite_relative_url('http://tt-rss.org', 'foo/bar')
|
|
|
- );
|
|
|
- $this->assertEquals(
|
|
|
- 'http://tt-rss.org/foo/bar',
|
|
|
- rewrite_relative_url('http://tt-rss.org/', 'foo/bar')
|
|
|
- );
|
|
|
- $this->assertEquals(
|
|
|
- 'http://tt-rss.org/bar',
|
|
|
- rewrite_relative_url('http://tt-rss.org/foo', 'bar')
|
|
|
- );
|
|
|
- $this->assertEquals(
|
|
|
- 'http://tt-rss.org/foo/bar',
|
|
|
- rewrite_relative_url('http://tt-rss.org/foo/', 'bar')
|
|
|
- );
|
|
|
- $this->assertEquals(
|
|
|
- 'http://tt-rss.org/f/o/bar',
|
|
|
- rewrite_relative_url('http://tt-rss.org/f/o/o', 'bar')
|
|
|
- );
|
|
|
- $this->assertEquals(
|
|
|
- 'http://tt-rss.org/f/o/o/bar',
|
|
|
- rewrite_relative_url('http://tt-rss.org/f/o/o/', 'bar')
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Test rewrite_relative_url() with an absolute path
|
|
|
- */
|
|
|
- public function testRewriteRelativeUrlAbsolutePath()
|
|
|
- {
|
|
|
- $this->assertEquals(
|
|
|
- 'http://tt-rss.org/bar/',
|
|
|
- rewrite_relative_url('http://tt-rss.org/foo/', '/bar/')
|
|
|
- );
|
|
|
- $this->assertEquals(
|
|
|
- 'http://tt-rss.org/bar/',
|
|
|
- rewrite_relative_url('http://tt-rss.org/so/what/is/next', '/bar/')
|
|
|
- );
|
|
|
- $this->assertEquals(
|
|
|
- 'http://tt-rss.org/bar/',
|
|
|
- rewrite_relative_url('http://tt-rss.org/so/what/is/next/', '/bar/')
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Test rewrite_relative_url() with an absolute URL
|
|
|
- */
|
|
|
- public function testRewriteRelativeUrlAbsoluteUrl()
|
|
|
- {
|
|
|
- $this->assertEquals(
|
|
|
- 'http://example.org/bar/',
|
|
|
- rewrite_relative_url('http://tt-rss.org/foo/', 'http://example.org/bar/')
|
|
|
- );
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-?>
|