[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