[Cpan-forum-commit] rev 213 - in trunk: . lib/CPAN/Forum lib/CPAN/Forum/RM t t/live

svn at pti.co.il svn at pti.co.il
Wed Aug 30 23:10:04 IDT 2006


Author: gabor
Date: 2006-08-30 23:10:03 +0300 (Wed, 30 Aug 2006)
New Revision: 213

Added:
   trunk/t/live/
   trunk/t/live/live.t
Modified:
   trunk/
   trunk/lib/CPAN/Forum/Markup.pm
   trunk/lib/CPAN/Forum/RM/Notify.pm
Log:
fix code to pass tests 
add docs
add the live.t tests that were around for some time already



Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - 8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:11079
   + 8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:11089

Modified: trunk/lib/CPAN/Forum/Markup.pm
===================================================================
--- trunk/lib/CPAN/Forum/Markup.pm	2006-08-30 16:03:44 UTC (rev 212)
+++ trunk/lib/CPAN/Forum/Markup.pm	2006-08-30 20:10:03 UTC (rev 213)
@@ -72,6 +72,16 @@
 
 my $NEXTMARK = '<span class="nextmark">+</span>';
 
+=head2 get_nextmark
+
+get the current value of the separator string
+
+=head2 set_nextmark
+
+set the current value of the separator string
+
+=cut
+
 sub get_nextmark {
     return $NEXTMARK;
 }

Modified: trunk/lib/CPAN/Forum/RM/Notify.pm
===================================================================
--- trunk/lib/CPAN/Forum/RM/Notify.pm	2006-08-30 16:03:44 UTC (rev 212)
+++ trunk/lib/CPAN/Forum/RM/Notify.pm	2006-08-30 20:10:03 UTC (rev 213)
@@ -90,7 +90,7 @@
     my ($self, $type) = @_;
 
     die "invalid _feed call '$type'" 
-        if not defined $type or $type ne 'rss' or $type ne 'atom';
+        if not defined $type or ($type ne 'rss' and  $type ne 'atom');
 
     my $limit  = $self->config("${type}_size") || 10;
     my $it = $self->get_feed($limit);
@@ -99,8 +99,8 @@
         return $self->$call($it, $limit);
     }
     else {
-        $self->log->warning("Invalid $type feed requested for $params[0] $ENV{PATH_INFO}");
-        return $self->notes('no_such_${type}_feed');
+        $self->log->warning("Invalid $type feed requested for $ENV{PATH_INFO}");
+        return $self->notes("no_such_${type}_feed");
     }
 }
 
@@ -135,30 +135,35 @@
     my ($self, $limit) = @_;
 
     my @params = @{$self->param("path_parameters")};
-    my $it;
-    if (@params > 1) {
+
+    return if not @params;
+
     if ($params[0] eq 'dist') {
         my $dist = $params[1] || '';
         $self->log->debug("rss of dist: '$dist'");
         my ($group) = CPAN::Forum::DB::Groups->search({ name => $dist });
         if ($group) {
-            $it = CPAN::Forum::DB::Posts->search(gid => $group->id, {order_by => 'date DESC'});
+            return scalar CPAN::Forum::DB::Posts->search(gid => $group->id, {order_by => 'date DESC'});
         }
     }
-    elsif ($params[0] eq 'author') {
+
+    if ($params[0] eq 'author') {
         my $pauseid = uc($params[1]) || '';
-        $self->log->debug("rss of author: '$pauseid'");
         if ($pauseid) {
-            $it = CPAN::Forum::DB::Posts->search_post_by_pauseid($pauseid);
+            $self->log->debug("rss of author: '$pauseid'");
+            return scalar CPAN::Forum::DB::Posts->search_post_by_pauseid($pauseid);
         }
     }
-    elsif ($params[0] eq 'all') {
-        $it = CPAN::Forum::DB::Posts->retrieve_latest($limit);
+
+    if ($params[0] eq 'all') {
+        return scalar CPAN::Forum::DB::Posts->retrieve_latest($limit);
     }
-    elsif ($params[0] eq 'threads') {
-        $it = CPAN::Forum::DB::Posts->search_latest_threads($limit);
+
+    if ($params[0] eq 'threads') {
+        return scalar CPAN::Forum::DB::Posts->search_latest_threads($limit);
     }
-    return $it;
+
+    return;
 }
 
 1;

Added: trunk/t/live/live.t
===================================================================
--- trunk/t/live/live.t	2006-08-30 16:03:44 UTC (rev 212)
+++ trunk/t/live/live.t	2006-08-30 20:10:03 UTC (rev 213)
@@ -0,0 +1,109 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+use File::Copy qw(copy);
+my $do;
+BEGIN {
+    $do = copy 't/forum.db', 'blib/db/forum.db'; # TODO: later change to generate from t/test.dump
+}
+
+use Test::More;
+my $tests;
+plan skip_all => "t/forum.db is missing" if not $do;
+plan tests => $tests;
+
+use lib qw(t/lib);
+use CPAN::Forum::Test;
+
+
+my $w       = CPAN::Forum::Test::get_mech();
+my $url     = CPAN::Forum::Test::get_url();
+CPAN::Forum::Test::init_db();
+
+$ENV{NO_CPAN_FORUM_MAIL} = 1;
+
+{
+    ok(1);
+    BEGIN { $tests += 1; }
+}
+
+use CPAN::Forum::DB::Posts;
+{
+    my $cnt = 0;
+    my $limit = 10;
+    my $it = CPAN::Forum::DB::Posts->retrieve_latest($limit);
+    while (my $p = $it->next) {
+        last if ++$cnt > $limit;
+    }
+    is($cnt, $limit);
+
+    BEGIN { $tests += 1; }
+}
+
+{
+    my $cnt = 0;
+    my $limit = 10;
+    my ($group) = CPAN::Forum::DB::Groups->search({ name => 'CPAN-Forum' });
+    my $it = CPAN::Forum::DB::Posts->search(gid => $group->id, 
+                        {order_by => 'date DESC'});
+    while (my $p = $it->next) {
+        last if ++$cnt >= $limit;
+    }
+    is($cnt, $limit);
+
+    BEGIN { $tests += 1; }
+}
+    
+
+{
+    # dists, rss feeds
+    $w->get_ok($url);
+    $w->get_ok("$url/rss/all");
+    $w->content_like(qr{<item>});
+
+    #TODO: also test Content type
+
+    $w->get_ok("$url/dist/CPAN-Forum");
+    $w->content_like(qr{No forum for libnet}); # this is a title of a real post
+
+    $w->get_ok("$url/rss/dist/CPAN-Forum");
+    $w->content_like(qr{<item>});
+    $w->content_like(qr{No forum for libnet});
+
+    $w->get_ok("$url/rss/author/SZABGAB");
+    $w->content_like(qr{<item>});
+
+    #$w->get_ok("$url/rss/author/no_such_author");
+    #diag $w->content;
+    #$w->content_like(qr{<item>});
+
+    $w->get_ok("$url/rss/no_such_feed/xyz");
+    $w->content_like(qr{No such RSS feed.});
+
+    BEGIN { $tests += 12; }
+}
+
+{
+    $w->get_ok("$url/about/");
+    $w->content_like(qr{Tools used});
+
+    $w->get_ok("$url/faq/");
+    $w->content_like(qr{Frequently Asked Questions});
+
+    $w->get_ok("$url/stats/");
+    $w->content_like(qr{\QTop 50 modules (number of posts)});
+
+    BEGIN { $tests += 6; }
+}
+
+
+my @bad_urls;
+BEGIN { @bad_urls = qw(rss dist dist/xxx dits/xxx/yyy users users/xxxyy); }
+foreach my $u (@bad_urls) {
+    $w->get_ok("$url/$u");
+    $w->get_ok("$url/$u/");
+
+    BEGIN { $tests += 2*@bad_urls }
+}
+



More information about the Cpan-forum-commit mailing list