001 /*
002 * Copyright 1999,2004 The Apache Software Foundation.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016
017 package org.apache.commons.feedparser.test;
018
019 import java.io.FileOutputStream;
020 import java.io.PrintStream;
021 import java.net.URL;
022
023 import junit.framework.TestCase;
024
025 import org.apache.commons.feedparser.FeedParser;
026 import org.apache.commons.feedparser.FeedParserFactory;
027 import org.apache.commons.feedparser.impl.DebugFeedParserListener;
028
029 /**
030 *
031 * @author <a href="mailto:burton@peerfear.org">Kevin A. Burton</a>
032 * @version $Id: TestFeedFilter.java 373622 2006-01-30 22:53:00Z mvdb $
033 */
034 public class TestFeedFilter extends TestCase {
035 protected String feedparserHome;
036
037 public static int current = 0;
038
039 public TestFeedFilter( String name ) throws Exception {
040 super( name );
041
042 feedparserHome = System.getProperty("feedparser.home", ".");
043 // these come in as forward slashes, even on Windows, because of Ant,
044 // so it is safe to check them as / rather than File.separator
045 // Brad Neuberg
046 if (feedparserHome.endsWith("/") == false)
047 feedparserHome = feedparserHome + "/";
048 }
049
050 private void doTest( String resource ) throws Exception {
051
052 System.out.println( "resource: (" + current + ") " + resource );
053
054 URL url = new URL( resource );
055
056 FileOutputStream fos = new FileOutputStream( "/tmp/test-feed-filter-" + current + ".html" );
057
058 PrintStream out = new PrintStream( fos, true, "UTF-8" );
059
060 out.println( "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=UTF-8\"> " );
061 out.println( "<pre>" );
062
063 DebugFeedParserListener listener = new DebugFeedParserListener( out );
064
065 FeedParser parser=FeedParserFactory.newFeedParser();
066 parser.parse( listener, url.openStream(), resource );
067
068 out.println( "</pre>" );
069
070 ++current;
071
072 }
073
074 public void test1() throws Exception {
075 String path = "file:" + feedparserHome;
076
077 doTest( path + "tests/feeds/rss-1.0-EUC-JP.rdf" );
078
079 doTest( path + "tests/filter/nbsp-1.xml" );
080
081 doTest( path + "tests/filter/entity-atom-1.xml" );
082
083 doTest( path + "tests/filter/prolog-atom-1.xml" );
084 doTest( path + "tests/filter/prolog-atom-2.xml" );
085 doTest( path + "tests/filter/prolog-opml-1.xml" );
086
087 doTest( path + "tests/filter/lisa.opml" );
088
089 doTest( path + "tests/feeds/utf16.rss1" );
090 doTest( path + "tests/feeds/utf16.rss2" );
091 doTest( path + "tests/feeds/i18n.atom" );
092 doTest( path + "tests/feeds/utf16.atom" );
093
094 doTest( path + "tests/feeds/atom-1.xml" );
095 doTest( path + "tests/feeds/rss-1.0-EUC-JP.rdf" );
096 doTest( path + "tests/feeds/rss-1.0-international-1.rdf" );
097
098 }
099
100 public static void main( String[] args ) throws Exception {
101
102 TestFeedFilter test = new TestFeedFilter( null );
103
104 //test.testGetWeblogLinkForResource();
105 test.test1();
106
107 }
108
109 }
110