To add a new test, you want to add two things - a test script (which
is typically just a symlink to the main 'driver' script), and a test
directory. If you just want a symlink test script, then add your
-test script name to 'driver_tests', and rerun Setup. To add a new
-test directory, you're probably best just to copy one of the
-existing ones - 'templates' is a good choice:
+test script name to 'Tests', and rerun Setup. To add a new test
+directory, you're probably best just to copy one of the existing
+ones - 'templates' is a good choice:
cp -rp templates newtest
use IO::File;
my $DRIVER = 'driver';
-my $TESTS = 'driver_tests';
+my $TESTS = 'Tests';
die "cannot find driver file '$DRIVER'" unless -f $DRIVER;
die "cannot find tests file '$TESTS'" unless -f $TESTS;
--- /dev/null
+01_templates.t
+02_smoketest.t
+03_permalinks.t
+03_interpolate.t
+04_plugin_dir.t
+04_plugin_list.t
+08_static_basic.t
my $blosxom_config_dir = "$testdir/config";
die "cannot find blosxom config dir '$blosxom_config_dir'" unless -d $blosxom_config_dir;
$ENV{BLOSXOM_CONFIG_DIR} = $blosxom_config_dir;
+$ENV{TZ} = 'UTC';
my $blosxom_cgi = "$testdir/../../blosxom.cgi";
die "cannot find blosxom.cgi '$blosxom_cgi'" unless -f $blosxom_cgi;
die "blosxom.cgi '$blosxom_cgi' is not executable" unless -x $blosxom_cgi;
my $spec = YAML::LoadFile ("$testdir/spec.yaml")
- or fail("$test - loading spec") and next;
+ or die("$test - could not load spec");
touch_files("$testdir/data");
-my %expected = ();
+# Eval blosxom.conf
+my ($static_dir, $static_password, @static_flavours);
+if (my $fh = IO::File->new("$blosxom_config_dir/blosxom.conf", 'r')) {
+ no strict;
+ local $/ = undef;
+ eval <$fh>;
+}
-for (@{$spec->{tests}}) {
- my ($args, $output) = @$_;
+# Static mode
+if ($static_password) {
+ eval {
+ require File::DirCompare;
+ require File::Remove;
+ };
+ SKIP: {
+ skip "Static tests require additional modules: $@", 1 if $@;
+ my $expected = $spec->{expected};
+ skip "Static tests require 'expected' directory", 1 unless $expected;
+ $expected = "$blosxom_config_dir/../$expected" unless $expected =~ m!^/!;
+ skip "Static tests 'expected' directory is missing", 1 unless -d $expected;
+ skip "Static tests 'static_dir' directory is missing", 1 unless -d $static_dir;
- unless ($expected{$output}) {
- my $fh = IO::File->new("$testdir/$output", 'r')
- or die "cannot open expected output file '$output': $!";
- {
- local $/ = undef;
- $expected{$output} = <$fh>;
- }
- $fh->close;
+ File::Remove::remove(\1, "$static_dir/*");
+
+ my $errors = qx($blosxom_cgi -quiet=1 -password=$static_password);
+ is($errors, '', 'no errors reported from static run');
+ File::DirCompare->compare($static_dir, "$blosxom_config_dir/../" . $spec->{expected}, sub {
+ my ($a, $b) = @_;
+ my ($a_short, $b_short) = ($a, $b);
+ $a_short =~ s!^.*\.\./!! if $a_short;
+ $b_short =~ s!^.*\.\./!! if $b_short;
+ if (! $b) {
+ fail("$a_short has no corresponding file");
+ } elsif (! $a) {
+ fail("$b_short has no corresponding file");
+ } else {
+ my ($got, $expected) = ('', '');
+ my $fh = IO::File->new($a, 'r')
+ or die "cannot open static output file '$a': $!";
+ {
+ local $/ = undef;
+ $got = <$fh>;
+ $fh->close;
+ }
+ $fh = IO::File->new($b, 'r')
+ or die "cannot open static output file '$b': $!";
+ {
+ local $/ = undef;
+ $expected = <$fh>;
+ $fh->close;
+ }
+ eq_or_diff($got, $expected, "file $a_short and $b_short match", { style => 'Unified' });
+ }
+ }, { ignore_cmp => 1 });
}
+}
- my $got = qx($blosxom_cgi $args);
+# Dynamic mode
+else {
+ my %expected = ();
+ for (@{$spec->{tests}}) {
+ my ($args, $output) = @$_;
- eq_or_diff($got, $expected{$output}, "$test - got expected output for args [$args]", { style => 'Unified' });
+ unless ($expected{$output}) {
+ my $fh = IO::File->new("$testdir/$output", 'r')
+ or die "cannot open expected output file '$output': $!";
+ {
+ local $/ = undef;
+ $expected{$output} = <$fh>;
+ }
+ $fh->close;
+ }
+
+ my $got = qx($blosxom_cgi $args);
+
+ eq_or_diff($got, $expected{$output}, "$test - got expected output for args [$args]", { style => 'Unified' });
+ }
}
sub touch_files {
+++ /dev/null
-01_templates.t
-02_smoketest.t
-03_permalinks.t
-03_interpolate.t
-04_plugin_dir.t
-04_plugin_list.t
<item>
<title>Lorem ipsum</title>
- <pubDate>Wed, 19 Jul 2006 22:54:00 +1000</pubDate>
+ <pubDate>Wed, 19 Jul 2006 22:54:00 +0000</pubDate>
<link>http://localhost/2006/07/19#1</link>
<category></category>
<guid isPermaLink="false">/1</guid>
--- /dev/null
+$datadir = "$ENV{BLOSXOM_CONFIG_DIR}/../data";
+$static_dir = "$ENV{BLOSXOM_CONFIG_DIR}/../static";
+$static_password = 'static';
+@static_flavours = qw/html rss/;
--- /dev/null
+Lorem ipsum
+Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet ipso
+facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor sit
+amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+facto.Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet
+ipso facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor
+sit amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+Lorem ipso hoccer foer tyr wuz de ras cora dola tymon ipso hoc cer fuz
+de ramas cora dola tymon ipso hoccer. Lorem ipso foer tyr wuz de ramas
+cora dola tym ipso hor.Lorem ipso foer tyr wuz de ramas cora dola tym
+ipso hor tyr wuz de ramas cora dola tymon ipso foer tyr wuz de ramas
+cora dola tymo. Lorem ipso hoccer foer tyr wuz de ras cora dola tymon
+ipso hoc cer fuz de ramas cora dola tymon ipso hoccer. Lorem ipso foer
+tyr wuz de ramas cora dola tym ipso hor.
--- /dev/null
+Lorem ipsum
+Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet ipso
+facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor sit
+amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+facto.Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet
+ipso facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor
+sit amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+Lorem ipso hoccer foer tyr wuz de ras cora dola tymon ipso hoc cer fuz
+de ramas cora dola tymon ipso hoccer. Lorem ipso foer tyr wuz de ramas
+cora dola tym ipso hor.Lorem ipso foer tyr wuz de ramas cora dola tym
+ipso hor tyr wuz de ramas cora dola tymon ipso foer tyr wuz de ramas
+cora dola tymo. Lorem ipso hoccer foer tyr wuz de ras cora dola tymon
+ipso hoc cer fuz de ramas cora dola tymon ipso hoccer. Lorem ipso foer
+tyr wuz de ramas cora dola tym ipso hor.
--- /dev/null
+text/xhtml; charset=UTF-8
--- /dev/null
+ <h3>$yr-$mo_num-$da</h3>
--- /dev/null
+
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head>
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="$url/index.rss" />
+ <title>$blog_title $path_info_da $path_info_mo $path_info_yr
+ </title>
+ </head>
+ <body>
+ <h1>$blog_title</h1>
+ <h2>$path_info_da $path_info_mo $path_info_yr</h2>
--- /dev/null
+ <h4><a name="$fn">$title</a></h4>
+ <div>$body</div>
+ <p>posted at: $ti | path: <a href="$url$path">$path </a> | <a href="$url/$yr/$mo_num/$da#$fn">permanent link to this entry</a></p>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head>
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="http://localhost/index.rss" />
+ <title>My Weblog 19 07 2006
+ </title>
+ </head>
+ <body>
+ <h1>My Weblog</h1>
+ <h2>19 07 2006</h2>
+ <h3>2006-07-19</h3>
+ <h4><a name="1">Lorem ipsum</a></h4>
+ <div>Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet ipso
+facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor sit
+amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+facto.Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet
+ipso facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor
+sit amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+Lorem ipso hoccer foer tyr wuz de ras cora dola tymon ipso hoc cer fuz
+de ramas cora dola tymon ipso hoccer. Lorem ipso foer tyr wuz de ramas
+cora dola tym ipso hor.Lorem ipso foer tyr wuz de ramas cora dola tym
+ipso hor tyr wuz de ramas cora dola tymon ipso foer tyr wuz de ramas
+cora dola tymo. Lorem ipso hoccer foer tyr wuz de ras cora dola tymon
+ipso hoc cer fuz de ramas cora dola tymon ipso hoccer. Lorem ipso foer
+tyr wuz de ramas cora dola tym ipso hor.</div>
+ <p>posted at: 22:54 | path: <a href="http://localhost"> </a> | <a href="http://localhost/2006/07/19#1">permanent link to this entry</a></p>
+
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<rss version="2.0">
+ <channel>
+ <title>My Weblog</title>
+ <link>http://localhost/</link>
+ <description>Yet another Blosxom weblog.</description>
+ <language>en</language>
+ <docs>http://blogs.law.harvard.edu/tech/rss</docs>
+ <generator>blosxom/2.0.2</generator>
+
+ <item>
+ <title>Lorem ipsum</title>
+ <pubDate>Wed, 19 Jul 2006 22:54:00 +0000</pubDate>
+ <link>http://localhost/2006/07/19#1</link>
+ <category></category>
+ <guid isPermaLink="false">/1</guid>
+ <description>Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet ipso
+facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor sit
+amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+facto.Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet
+ipso facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor
+sit amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+Lorem ipso hoccer foer tyr wuz de ras cora dola tymon ipso hoc cer fuz
+de ramas cora dola tymon ipso hoccer. Lorem ipso foer tyr wuz de ramas
+cora dola tym ipso hor.Lorem ipso foer tyr wuz de ramas cora dola tym
+ipso hor tyr wuz de ramas cora dola tymon ipso foer tyr wuz de ramas
+cora dola tymo. Lorem ipso hoccer foer tyr wuz de ras cora dola tymon
+ipso hoc cer fuz de ramas cora dola tymon ipso hoccer. Lorem ipso foer
+tyr wuz de ramas cora dola tym ipso hor.</description>
+ </item>
+ </channel>
+</rss>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head>
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="http://localhost/index.rss" />
+ <title>My Weblog 07 2006
+ </title>
+ </head>
+ <body>
+ <h1>My Weblog</h1>
+ <h2> 07 2006</h2>
+ <h3>2006-07-19</h3>
+ <h4><a name="1">Lorem ipsum</a></h4>
+ <div>Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet ipso
+facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor sit
+amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+facto.Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet
+ipso facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor
+sit amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+Lorem ipso hoccer foer tyr wuz de ras cora dola tymon ipso hoc cer fuz
+de ramas cora dola tymon ipso hoccer. Lorem ipso foer tyr wuz de ramas
+cora dola tym ipso hor.Lorem ipso foer tyr wuz de ramas cora dola tym
+ipso hor tyr wuz de ramas cora dola tymon ipso foer tyr wuz de ramas
+cora dola tymo. Lorem ipso hoccer foer tyr wuz de ras cora dola tymon
+ipso hoc cer fuz de ramas cora dola tymon ipso hoccer. Lorem ipso foer
+tyr wuz de ramas cora dola tym ipso hor.</div>
+ <p>posted at: 22:54 | path: <a href="http://localhost"> </a> | <a href="http://localhost/2006/07/19#1">permanent link to this entry</a></p>
+
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<rss version="2.0">
+ <channel>
+ <title>My Weblog</title>
+ <link>http://localhost/</link>
+ <description>Yet another Blosxom weblog.</description>
+ <language>en</language>
+ <docs>http://blogs.law.harvard.edu/tech/rss</docs>
+ <generator>blosxom/2.0.2</generator>
+
+ <item>
+ <title>Lorem ipsum</title>
+ <pubDate>Wed, 19 Jul 2006 22:54:00 +0000</pubDate>
+ <link>http://localhost/2006/07/19#1</link>
+ <category></category>
+ <guid isPermaLink="false">/1</guid>
+ <description>Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet ipso
+facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor sit
+amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+facto.Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet
+ipso facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor
+sit amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+Lorem ipso hoccer foer tyr wuz de ras cora dola tymon ipso hoc cer fuz
+de ramas cora dola tymon ipso hoccer. Lorem ipso foer tyr wuz de ramas
+cora dola tym ipso hor.Lorem ipso foer tyr wuz de ramas cora dola tym
+ipso hor tyr wuz de ramas cora dola tymon ipso foer tyr wuz de ramas
+cora dola tymo. Lorem ipso hoccer foer tyr wuz de ras cora dola tymon
+ipso hoc cer fuz de ramas cora dola tymon ipso hoccer. Lorem ipso foer
+tyr wuz de ramas cora dola tym ipso hor.</description>
+ </item>
+ </channel>
+</rss>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head>
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="http://localhost/index.rss" />
+ <title>My Weblog 2006
+ </title>
+ </head>
+ <body>
+ <h1>My Weblog</h1>
+ <h2> 2006</h2>
+ <h3>2006-07-19</h3>
+ <h4><a name="1">Lorem ipsum</a></h4>
+ <div>Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet ipso
+facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor sit
+amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+facto.Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet
+ipso facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor
+sit amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+Lorem ipso hoccer foer tyr wuz de ras cora dola tymon ipso hoc cer fuz
+de ramas cora dola tymon ipso hoccer. Lorem ipso foer tyr wuz de ramas
+cora dola tym ipso hor.Lorem ipso foer tyr wuz de ramas cora dola tym
+ipso hor tyr wuz de ramas cora dola tymon ipso foer tyr wuz de ramas
+cora dola tymo. Lorem ipso hoccer foer tyr wuz de ras cora dola tymon
+ipso hoc cer fuz de ramas cora dola tymon ipso hoccer. Lorem ipso foer
+tyr wuz de ramas cora dola tym ipso hor.</div>
+ <p>posted at: 22:54 | path: <a href="http://localhost"> </a> | <a href="http://localhost/2006/07/19#1">permanent link to this entry</a></p>
+
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<rss version="2.0">
+ <channel>
+ <title>My Weblog</title>
+ <link>http://localhost/</link>
+ <description>Yet another Blosxom weblog.</description>
+ <language>en</language>
+ <docs>http://blogs.law.harvard.edu/tech/rss</docs>
+ <generator>blosxom/2.0.2</generator>
+
+ <item>
+ <title>Lorem ipsum</title>
+ <pubDate>Wed, 19 Jul 2006 22:54:00 +0000</pubDate>
+ <link>http://localhost/2006/07/19#1</link>
+ <category></category>
+ <guid isPermaLink="false">/1</guid>
+ <description>Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet ipso
+facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor sit
+amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+facto.Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet
+ipso facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor
+sit amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+Lorem ipso hoccer foer tyr wuz de ras cora dola tymon ipso hoc cer fuz
+de ramas cora dola tymon ipso hoccer. Lorem ipso foer tyr wuz de ramas
+cora dola tym ipso hor.Lorem ipso foer tyr wuz de ramas cora dola tym
+ipso hor tyr wuz de ramas cora dola tymon ipso foer tyr wuz de ramas
+cora dola tymo. Lorem ipso hoccer foer tyr wuz de ras cora dola tymon
+ipso hoc cer fuz de ramas cora dola tymon ipso hoccer. Lorem ipso foer
+tyr wuz de ramas cora dola tym ipso hor.</description>
+ </item>
+ </channel>
+</rss>
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head>
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="http://localhost/index.rss" />
+ <title>My Weblog
+ </title>
+ </head>
+ <body>
+ <h1>My Weblog</h1>
+ <h2> </h2>
+ <h3>2006-07-19</h3>
+ <h4><a name="1">Lorem ipsum</a></h4>
+ <div>Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet ipso
+facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor sit
+amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+facto.Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet
+ipso facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor
+sit amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+Lorem ipso hoccer foer tyr wuz de ras cora dola tymon ipso hoc cer fuz
+de ramas cora dola tymon ipso hoccer. Lorem ipso foer tyr wuz de ramas
+cora dola tym ipso hor.Lorem ipso foer tyr wuz de ramas cora dola tym
+ipso hor tyr wuz de ramas cora dola tymon ipso foer tyr wuz de ramas
+cora dola tymo. Lorem ipso hoccer foer tyr wuz de ras cora dola tymon
+ipso hoc cer fuz de ramas cora dola tymon ipso hoccer. Lorem ipso foer
+tyr wuz de ramas cora dola tym ipso hor.</div>
+ <p>posted at: 22:54 | path: <a href="http://localhost"> </a> | <a href="http://localhost/2006/07/19#1">permanent link to this entry</a></p>
+
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<rss version="2.0">
+ <channel>
+ <title>My Weblog</title>
+ <link>http://localhost/</link>
+ <description>Yet another Blosxom weblog.</description>
+ <language>en</language>
+ <docs>http://blogs.law.harvard.edu/tech/rss</docs>
+ <generator>blosxom/2.0.2</generator>
+
+ <item>
+ <title>Lorem ipsum</title>
+ <pubDate>Wed, 19 Jul 2006 22:54:00 +0000</pubDate>
+ <link>http://localhost/2006/07/19#1</link>
+ <category></category>
+ <guid isPermaLink="false">/1</guid>
+ <description>Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet ipso
+facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor sit
+amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+facto.Lorem ipsum dolor sit amet ipso facto.Lorem ipsum dolor sit amet
+ipso facto.Lorem ipsum dolor sit amet ipso facto. Lorem ipsum dolor
+sit amet ipso facto.Lorem ipsum dolor sit amet ipso facto.
+
+Lorem ipso hoccer foer tyr wuz de ras cora dola tymon ipso hoc cer fuz
+de ramas cora dola tymon ipso hoccer. Lorem ipso foer tyr wuz de ramas
+cora dola tym ipso hor.Lorem ipso foer tyr wuz de ramas cora dola tym
+ipso hor tyr wuz de ramas cora dola tymon ipso foer tyr wuz de ramas
+cora dola tymo. Lorem ipso hoccer foer tyr wuz de ras cora dola tymon
+ipso hoc cer fuz de ramas cora dola tymon ipso hoccer. Lorem ipso foer
+tyr wuz de ramas cora dola tym ipso hor.</description>
+ </item>
+ </channel>
+</rss>
--- /dev/null
+expected: expected