+++ /dev/null
-<?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/')
- );
- }
-}
-
-?>
\ No newline at end of file