1<?php
2
3require_once 'XML_Feed_Parser_TestCase.php';
4
5/**
6 * This test is to make sure that we get errors when we should. In
7 * particular we check that it throws an exception if we hand in an
8 * illegal feed type.
9 */
10class errors extends XML_Feed_Parser_TestCase
11{
12    function test_fakeFeedType()
13    {
14        $file = "<myfeed><myitem /></myfeed>";
15        try {
16            $feed = new XML_Feed_Parser($file, false, true);
17        } catch (Exception $e) {
18            $this->assertTrue($e instanceof XML_Feed_Parser_Exception);
19        }
20    }
21
22    function test_badRSSVersion()
23    {
24        $file = "<?xml version=\"1.0\"?>
25        <rss version=\"0.8\">
26           <channel></channel></rss>";
27       try {
28           $feed = new XML_Feed_Parser($file, false, true);
29       } catch (Exception $e) {
30           $this->assertTrue($e instanceof XML_Feed_Parser_Exception);
31       }
32    }
33
34    function test_emptyInput()
35    {
36        $file = null;
37        try {
38            $feed = new XML_Feed_Parser($file, false, true);
39        } catch (Exception $e) {
40            $this->assertTrue($e instanceof XML_Feed_Parser_Exception);
41        }
42    }
43
44    function test_nonXMLInput()
45    {
46        $file = "My string";
47        try {
48            $feed = new XML_Feed_Parser($file, false, true);
49        } catch (Exception $e) {
50            $this->assertTrue($e instanceof XML_Feed_Parser_Exception);
51        }
52    }
53
54    function test_missingElement() {
55        $file = '<?xml version="1.0" encoding="utf-8"?>
56        <rss version="2.0">
57           <channel>
58              <title>sample blog</title>
59              <link>http://www.example.com/</link>
60              <description>sample rss2 feed</description>
61              <language>en</language>
62              <copyright>Copyright 2006</copyright>
63              <lastBuildDate>Tue, 25 Jul 2006 11:53:38 -0500</lastBuildDate>
64              <generator>http://www.sixapart.com/movabletype/?v=3.31</generator>
65              <docs>http://blogs.law.harvard.edu/tech/rss</docs>
66              <item>
67                 <title>A sample entry</title>
68                 <description>Sample content</description>
69                 <link>http://www.example.com/archives/2006/07</link>
70                 <guid>http://www.example.com/archives/2006/07</guid>
71                 <category>Examples</category>
72                 <pubDate>Tue, 25 Jul 2006 11:53:38 -0500</pubDate>
73              </item>
74            </channel></rss>';
75          $feed = new XML_Feed_Parser($file, false, true);
76          $entry = $feed->getEntryByOffset(0);
77          $this->assertFalse($entry->enclosure());
78    }
79}
80
81?>