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.FileInputStream;
020    
021    import javax.xml.parsers.DocumentBuilder;
022    import javax.xml.parsers.DocumentBuilderFactory;
023    
024    import junit.framework.TestCase;
025    
026    import org.apache.commons.feedparser.FeedParser;
027    import org.apache.commons.feedparser.FeedParserFactory;
028    import org.apache.commons.feedparser.FeedParserListener;
029    import org.apache.commons.feedparser.impl.DebugFeedParserListener;
030    
031    /**
032     *
033     * @author <a href="mailto:burton@peerfear.org">Kevin A. Burton</a>
034     * @version $Id: TestFeedParserUTF8.java 373622 2006-01-30 22:53:00Z mvdb $
035     */
036    public class TestFeedParserUTF8 extends TestCase {
037    
038        public TestFeedParserUTF8( String name ) throws Exception {
039            super( name );
040        }
041    
042        public void testAssertXerces() throws Exception {
043    
044            String v;
045            
046            DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
047    
048            v = db.getClass().getName();
049            
050            if ( ! v.equals( "org.apache.xerces.jaxp.DocumentBuilderImpl" ) )
051                throw new Exception( "Incorrect version of Xerces: " + v );
052    
053            v = org.apache.xerces.impl.Version.fVersion;
054            
055            if ( v.indexOf( "2.6" ) == -1 )
056                throw new Exception( "Incorrect version of Xerces: " + v);
057    
058        }
059    
060        public void test( String path ) throws Exception {
061    
062            FeedParser parser = FeedParserFactory.newFeedParser();
063    
064            FeedParserListener listener = new DebugFeedParserListener();
065    
066            parser.parse( listener,
067                          new FileInputStream( "src/java/org/apache/commons/feedparser/test/" + path),
068                          path );
069    
070        }
071    
072        public void test1() throws Exception {
073    
074            test( "TestFeedParserUTF8.rss" );
075    
076        }
077            
078        public void test2() throws Exception {
079    
080            test( "broken-UTF8-feed.rss" );
081        }
082    
083        public void test3() throws Exception {
084    
085            test( "broken-Invalid-byte-2-of-3-byte-UTF-8-sequence.xml" );
086        }
087    
088        public void test4() throws Exception {
089    
090            test( "broken-salon.rdf" );
091        }
092    
093        public static void main( String[] args ) throws Exception {
094    
095            TestFeedParserUTF8 test = new TestFeedParserUTF8( null );
096    
097            //test.testGetWeblogLinkForResource();
098            //test.testParse();
099            test.test2();
100            
101        }
102    
103    }
104