[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