<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at
  
       http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<test:suite xmlns:j="jelly:core" xmlns:test="jelly:junit" xmlns:b="jelly:betwixt">

<b:introspector var="introspector" 
  attributesForPrimitives="false" elementNameMapper="lowercase"/>
    
<test:case name="rssParseViaURI">

  <b:parse var="channel" 
    uri="rss-example.xml" 
    introspector="${introspector}"
    rootClass="org.apache.commons.digester.rss.Channel"
    path="rss/channel"/>
  
  <j:include uri="common.jelly"/>
</test:case>
   
<test:case name="rssParseViaTagBody">

  <b:parse var="channel" 
    introspector="${introspector}"
    rootClass="org.apache.commons.digester.rss.Channel"
    path="rss/channel">
      
    <rss version="0.91">
    
      <channel>
    
        <title>MozillaZine</title>
        <link>http://www.mozillazine.org</link>
        <description>Your source for Mozilla news, advocacy,
          interviews, builds, and more!</description>
        <language>en-US</language>
        <rating>(PICS-1.1 "http://www.rsac.org/ratingsv01.html"
          2 gen true comment "RSACi North America Server"
          for "http://www.rsac.org" on "1996.04.16T08:15-0500"
          r (n 0 s 0 v 0 l 0))</rating>
    
        <image>
          <title>MozillaZine</title>
          <url>http://www.mozillazine.org/image/mynetscape88.gif</url>
          <link>http://www.mozillazine.org</link>
          <width>88</width>
          <height>31</height>
          <description>Articles, discussions, builds, and more...</description>
        </image>
    
        <item>
          <title>Java2 in Navigator 5?</title>
          <link>http://www.mozillazine.org/talkback.html?article=607</link>
          <description>Will Java2 be an integrated part of Navigator 5?
          Read more about it in this discussion...</description>
        </item>
    
        <item>
          <title>Communicator 4.61 Out</title>
          <link>http://www.mozillazine.org/talkback.html?article=606</link>
          <description>The latest version of Communicator is now
          available.  It includes security enhancements
          and various bug fixes.</description>
        </item>
    
        <item>
          <title>Mozilla Dispenses with Old,
          Proprietary DOM</title>
          <link>http://www.mozillazine.org/talkback.html?article=604</link>
        </item>
    
        <item>
          <title>The Animation Contest is Now Closed</title>
          <link>http://www.mozillazine.org/talkback.html?article=603</link>
        </item>
    
        <textinput>
          <title>Send</title>
          <description>Comments about MozillaZine?</description>
          <name>responseText</name>
          <link>http://www.mozillazine.org/cgi-bin/sampleonly.cgi</link>
        </textinput>
    
        <skipDays>
          <day>Tuesday</day>
        </skipDays>
      </channel>
    
    </rss>
  
  </b:parse>
    
  <j:include uri="common.jelly"/>
</test:case>

</test:suite>
