[Cpan-forum-commit] rev 219 - in trunk: . lib/CPAN/Forum/RM t/live
svn at pti.co.il
svn at pti.co.il
Thu Aug 31 11:48:49 IDT 2006
Author: gabor
Date: 2006-08-31 11:48:48 +0300 (Thu, 31 Aug 2006)
New Revision: 219
Modified:
trunk/
trunk/lib/CPAN/Forum/RM/Notify.pm
trunk/t/live/live.t
Log:
add more tests to the atom feed
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:11101
+ 8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:11102
Modified: trunk/lib/CPAN/Forum/RM/Notify.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Notify.pm 2006-08-31 08:48:43 UTC (rev 218)
+++ trunk/lib/CPAN/Forum/RM/Notify.pm 2006-08-31 08:48:48 UTC (rev 219)
@@ -99,42 +99,49 @@
my $limit = $self->config("${type}_size") || 10;
my $it = $self->get_feed($limit);
- #if ($it) {
- my $call = "_generate_$type";
- return $self->$call($it, $limit);
- #}
- #else {
- # $self->log->warning("Invalid $type feed requested for $ENV{PATH_INFO}");
- # return $self->notes("no_such_${type}_feed");
- #}
+
+ my $call = "_generate_$type";
+ my $url = "http://$ENV{HTTP_HOST}";
+ return $self->$call($url, $it, $limit);
}
sub _generate_atom {
- my ($self, $it, $limit) = @_;
+ my ($self, $url, $it, $limit) = @_;
require XML::Atom::SimpleFeed;
-
- my $url = "http://$ENV{HTTP_HOST}/";
my $feed = XML::Atom::SimpleFeed->new(
title => 'CPAN::Forum',
- link => $url,
+ link => "$url/",
author => 'admin at cpanforum.com',
+ id => "$url/",
);
if ($it) {
while (my $post = $it->next() and $limit--) {
my $title = sprintf "[%s] %s", $post->gid->name, $post->subject;
+ my $author = {
+ name => sprintf("%s %s (%s)",
+ ($post->uid->fname || ''),
+ ($post->uid->lname || ''),
+ $post->uid->username),
+ uri => "$url/users/" . $post->uid->username,
+ };
+ my $link = "$url/posts/" . $post->id();
$feed->add_entry(
+ author => $author,
title => $title, # TODO _subject_escape ?
- link => $url. "posts/" . $post->id(),
+ link => $link,
+ id => $link,
);
}
}
else {
$feed->add_entry(
- title => 'No posts yet',
- link => $url,
+ author => 'No author yet',
+ title => 'No posts yet',
+ link => "$url/",
+ id => "$url/",
);
}
@@ -145,11 +152,10 @@
sub _generate_rss {
- my ($self, $it, $limit) = @_;
+ my ($self, $url, $it, $limit) = @_;
require XML::RSS::SimpleGen;
- my $url = "http://$ENV{HTTP_HOST}/";
- my $rss = XML::RSS::SimpleGen->new( $url, "CPAN Forum", "Discussing Perl CPAN modules");
+ my $rss = XML::RSS::SimpleGen->new( "$url/", "CPAN Forum", "Discussing Perl CPAN modules");
$rss->language( 'en' );
# TODO: replace this e-mail address with a configurable value
@@ -158,13 +164,13 @@
if ($it) {
while (my $post = $it->next() and $limit--) {
my $title = sprintf "[%s] %s", $post->gid->name, $post->subject;
- $rss->item($url. "posts/" . $post->id(), $title); # TODO _subject_escape ?
+ $rss->item("$url/posts/" . $post->id(), $title); # TODO _subject_escape ?
}
}
else {
# TODO: maybe we should put a link here to search that module ot that
# PAUSEID?
- $rss->item($url, "No posts yet");
+ $rss->item("$url/", "No posts yet");
}
$self->header_props(-type => 'application/rss+xml');
Modified: trunk/t/live/live.t
===================================================================
--- trunk/t/live/live.t 2006-08-31 08:48:43 UTC (rev 218)
+++ trunk/t/live/live.t 2006-08-31 08:48:48 UTC (rev 219)
@@ -89,6 +89,32 @@
}
{
+ $w->get_ok("$url/atom/all");
+ $w->content_like(qr{<entry>});
+
+ $w->get_ok("$url/atom/threads");
+ $w->content_like(qr{<entry>});
+
+ #TODO: also test Content type
+
+ $w->get_ok("$url/atom/dist/CPAN-Forum");
+ $w->content_like(qr{<entry>});
+ $w->content_like(qr{No forum for libnet});
+
+ $w->get_ok("$url/atom/author/SZABGAB");
+ $w->content_like(qr{<entry>});
+
+ #$w->get_ok("$url/atom/author/no_such_author");
+ #diag $w->content;
+ #$w->content_like(qr{<entry>});
+
+ $w->get_ok("$url/atom/no_such_feed/xyz");
+ $w->content_like(qr{No posts yet});
+
+ BEGIN { $tests += 11; }
+}
+
+{
$w->get_ok("$url/about/");
$w->content_like(qr{Tools used});
More information about the Cpan-forum-commit
mailing list