diff --git a/Changes b/Changes
index c0d02cf..1ee7ede 100644
--- a/Changes
+++ b/Changes
@@ -1,7 +1,12 @@
-# $Id: Changes 1948 2006-07-17 16:06:18Z btrott $
+# $Id: Changes 1956 2006-08-08 04:34:54Z btrott $
Revision history for XML::Feed
+0.11 2006.08.07
+ - Fixed a bug in XML::Feed::Atom where entry->link and feed->link didn't
+ return the proper link element if the "rel" attribute wasn't defined for
+ a tag. Thanks to Tatsuhiko Miyagawa for the patch.
+
0.10 2006.07.17
- Oops, an Atom test in 01-parse.t was previously succeeding only because
of a bug in XML::Atom. Now that that bug is fixed, this one is now
diff --git a/MANIFEST b/MANIFEST
index 9e1a4f2..71baa1d 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -15,6 +15,7 @@ inc/Module/Install/Makefile.pm
inc/Module/Install/Metadata.pm
inc/Module/Install/Win32.pm
inc/Module/Install/WriteAll.pm
+inc/Test/More.pm
lib/XML/Feed.pm
lib/XML/Feed/Atom.pm
lib/XML/Feed/Content.pm
@@ -28,6 +29,8 @@ t/00-compile.t
t/01-parse.t
t/02-create.t
t/04-splice.t
+t/05-atom10-link.t
+t/samples/atom-10-example.xml
t/samples/atom.xml
t/samples/rss10-invalid-date.xml
t/samples/rss10.xml
diff --git a/META.yml b/META.yml
index 4c6bfd3..5cdbf06 100644
--- a/META.yml
+++ b/META.yml
@@ -3,6 +3,7 @@ author: Six Apart
build_requires:
HTML::TokeParser: 0
LWP: 0
+ Test::More: 0
distribution_type: module
generated_by: Module::Install version 0.61
license: perl
@@ -22,4 +23,4 @@ requires:
URI::Fetch: 0
XML::Atom: 0.08
XML::RSS: 1.01
-version: 0.10
+version: 0.11
diff --git a/Makefile.PL b/Makefile.PL
index 0333712..9d431f9 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -1,4 +1,4 @@
-# $Id: Makefile.PL 1925 2006-03-03 17:37:50Z btrott $
+# $Id: Makefile.PL 1955 2006-08-02 05:59:58Z btrott $
use inc::Module::Install;
@@ -23,6 +23,7 @@ requires('DateTime::Format::W3CDTF');
requires('List::Util');
build_requires('LWP');
build_requires('HTML::TokeParser');
+build_requires('Test::More');
auto_include();
auto_install();
diff --git a/inc/Test/More.pm b/inc/Test/More.pm
new file mode 100644
index 0000000..471ede9
--- /dev/null
+++ b/inc/Test/More.pm
@@ -0,0 +1,657 @@
+#line 1
+package Test::More;
+
+use 5.004;
+
+use strict;
+
+
+# Can't use Carp because it might cause use_ok() to accidentally succeed
+# even though the module being used forgot to use Carp. Yes, this
+# actually happened.
+sub _carp {
+ my($file, $line) = (caller(1))[1,2];
+ warn @_, " at $file line $line\n";
+}
+
+
+
+use vars qw($VERSION @ISA @EXPORT %EXPORT_TAGS $TODO);
+$VERSION = '0.62';
+$VERSION = eval $VERSION; # make the alpha version come out as a number
+
+use Test::Builder::Module;
+@ISA = qw(Test::Builder::Module);
+@EXPORT = qw(ok use_ok require_ok
+ is isnt like unlike is_deeply
+ cmp_ok
+ skip todo todo_skip
+ pass fail
+ eq_array eq_hash eq_set
+ $TODO
+ plan
+ can_ok isa_ok
+ diag
+ BAIL_OUT
+ );
+
+
+#line 157
+
+sub plan {
+ my $tb = Test::More->builder;
+
+ $tb->plan(@_);
+}
+
+
+# This implements "use Test::More 'no_diag'" but the behavior is
+# deprecated.
+sub import_extra {
+ my $class = shift;
+ my $list = shift;
+
+ my @other = ();
+ my $idx = 0;
+ while( $idx <= $#{$list} ) {
+ my $item = $list->[$idx];
+
+ if( defined $item and $item eq 'no_diag' ) {
+ $class->builder->no_diag(1);
+ }
+ else {
+ push @other, $item;
+ }
+
+ $idx++;
+ }
+
+ @$list = @other;
+}
+
+
+#line 257
+
+sub ok ($;$) {
+ my($test, $name) = @_;
+ my $tb = Test::More->builder;
+
+ $tb->ok($test, $name);
+}
+
+#line 324
+
+sub is ($$;$) {
+ my $tb = Test::More->builder;
+
+ $tb->is_eq(@_);
+}
+
+sub isnt ($$;$) {
+ my $tb = Test::More->builder;
+
+ $tb->isnt_eq(@_);
+}
+
+*isn't = \&isnt;
+
+
+#line 369
+
+sub like ($$;$) {
+ my $tb = Test::More->builder;
+
+ $tb->like(@_);
+}
+
+
+#line 385
+
+sub unlike ($$;$) {
+ my $tb = Test::More->builder;
+
+ $tb->unlike(@_);
+}
+
+
+#line 425
+
+sub cmp_ok($$$;$) {
+ my $tb = Test::More->builder;
+
+ $tb->cmp_ok(@_);
+}
+
+
+#line 461
+
+sub can_ok ($@) {
+ my($proto, @methods) = @_;
+ my $class = ref $proto || $proto;
+ my $tb = Test::More->builder;
+
+ unless( @methods ) {
+ my $ok = $tb->ok( 0, "$class->can(...)" );
+ $tb->diag(' can_ok() called with no methods');
+ return $ok;
+ }
+
+ my @nok = ();
+ foreach my $method (@methods) {
+ local($!, $@); # don't interfere with caller's $@
+ # eval sometimes resets $!
+ eval { $proto->can($method) } || push @nok, $method;
+ }
+
+ my $name;
+ $name = @methods == 1 ? "$class->can('$methods[0]')"
+ : "$class->can(...)";
+
+ my $ok = $tb->ok( !@nok, $name );
+
+ $tb->diag(map " $class->can('$_') failed\n", @nok);
+
+ return $ok;
+}
+
+#line 519
+
+sub isa_ok ($$;$) {
+ my($object, $class, $obj_name) = @_;
+ my $tb = Test::More->builder;
+
+ my $diag;
+ $obj_name = 'The object' unless defined $obj_name;
+ my $name = "$obj_name isa $class";
+ if( !defined $object ) {
+ $diag = "$obj_name isn't defined";
+ }
+ elsif( !ref $object ) {
+ $diag = "$obj_name isn't a reference";
+ }
+ else {
+ # We can't use UNIVERSAL::isa because we want to honor isa() overrides
+ local($@, $!); # eval sometimes resets $!
+ my $rslt = eval { $object->isa($class) };
+ if( $@ ) {
+ if( $@ =~ /^Can't call method "isa" on unblessed reference/ ) {
+ if( !UNIVERSAL::isa($object, $class) ) {
+ my $ref = ref $object;
+ $diag = "$obj_name isn't a '$class' it's a '$ref'";
+ }
+ } else {
+ die <isa on your object and got some weird error.
+This should never happen. Please contact the author immediately.
+Here's the error.
+$@
+WHOA
+ }
+ }
+ elsif( !$rslt ) {
+ my $ref = ref $object;
+ $diag = "$obj_name isn't a '$class' it's a '$ref'";
+ }
+ }
+
+
+
+ my $ok;
+ if( $diag ) {
+ $ok = $tb->ok( 0, $name );
+ $tb->diag(" $diag\n");
+ }
+ else {
+ $ok = $tb->ok( 1, $name );
+ }
+
+ return $ok;
+}
+
+
+#line 589
+
+sub pass (;$) {
+ my $tb = Test::More->builder;
+ $tb->ok(1, @_);
+}
+
+sub fail (;$) {
+ my $tb = Test::More->builder;
+ $tb->ok(0, @_);
+}
+
+#line 650
+
+sub use_ok ($;@) {
+ my($module, @imports) = @_;
+ @imports = () unless @imports;
+ my $tb = Test::More->builder;
+
+ my($pack,$filename,$line) = caller;
+
+ local($@,$!); # eval sometimes interferes with $!
+
+ if( @imports == 1 and $imports[0] =~ /^\d+(?:\.\d+)?$/ ) {
+ # probably a version check. Perl needs to see the bare number
+ # for it to work with non-Exporter based modules.
+ eval <