[Cpan-forum-commit] rev 170 - in trunk: . bin lib/CPAN t/db t/lib/CPAN/Forum t/mech
svn at pti.co.il
svn at pti.co.il
Fri Aug 25 18:15:39 IDT 2006
Author: gabor
Date: 2006-08-25 18:15:39 +0300 (Fri, 25 Aug 2006)
New Revision: 170
Modified:
trunk/
trunk/bin/upgrade_to_0_12.pl
trunk/lib/CPAN/Forum.pm
trunk/t/db/users.t
trunk/t/lib/CPAN/Forum/Test.pm
trunk/t/mech/100-auth.t
Log:
keep the submit request also in case the user has to
login before she can post something
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:10997
+ 8c4c90e1-83eb-0310-96eb-e7cb62807872:/local/cpan-forum:10998
Modified: trunk/bin/upgrade_to_0_12.pl
===================================================================
--- trunk/bin/upgrade_to_0_12.pl 2006-08-25 15:15:31 UTC (rev 169)
+++ trunk/bin/upgrade_to_0_12.pl 2006-08-25 15:15:39 UTC (rev 170)
@@ -46,4 +46,13 @@
ALTER TABLE groups ADD rating VARCHAR(10);
ALTER TABLE groups ADD review_count INTEGER;
+CREATE TABLE subscriptions_all (
+ id INTEGER PRIMARY KEY,
+ uid INTEGER NOT NULL,
+ allposts BOOLEAN,
+ starters BOOLEAN,
+ followups BOOLEAN,
+ announcements BOOLEAN
+);
+
Modified: trunk/lib/CPAN/Forum.pm
===================================================================
--- trunk/lib/CPAN/Forum.pm 2006-08-25 15:15:31 UTC (rev 169)
+++ trunk/lib/CPAN/Forum.pm 2006-08-25 15:15:39 UTC (rev 170)
@@ -631,6 +631,10 @@
if (not $self->session->param('loggedin') ) {
$self->log->debug("Showing login");
$self->session->param(request => $rm);
+ if ($rm eq 'new_post') {
+ my $group = ${$self->param("path_parameters")}[0];
+ $self->session->param(request_group => $group);
+ }
$self->prerun_mode('login');
return;
}
@@ -880,19 +884,24 @@
}
my $request = $session->param("request") || "home";
- $session->param("request" => "");
- $session->flush();
- $self->log->debug("Session flushed after login " . $session->param('loggedin'));
$self->log->debug("Request redirection: '$request'");
no strict 'refs';
my $response;
eval {
+ if ($request eq 'new_post') {
+ my $request_group = $session->param("request_group") || '';
+ $self->param("path_parameters" => [$request_group]);
+ }
$response = &$request($self);
};
if ($@) {
$self->log->error($@);
die $@; # TODO: send error page?
}
+ $session->param("request" => "");
+ $session->param("request_group" => "");
+ $session->flush();
+ $self->log->debug("Session flushed after login " . $session->param('loggedin'));
return $response;
}
@@ -1163,6 +1172,11 @@
my $rm = $self->get_current_runmode();
$self->log->debug("posts rm=$rm");
+ my $request = $self->session->param('request');
+ if ($request) {
+ $rm = $request;
+ $self->log->debug("posts request reset rm=$rm");
+ }
my $new_group = "";
my $new_group_id = "";
@@ -1546,6 +1560,7 @@
my $q = $self->query;
my $group = ${$self->param("path_parameters")}[0];
+ $self->log->debug("show dist: '$group'");
# $group =~ s/-/::/g;
# (my $dashgroup = $group) =~ s/::/-/g;
Modified: trunk/t/db/users.t
===================================================================
--- trunk/t/db/users.t 2006-08-25 15:15:31 UTC (rev 169)
+++ trunk/t/db/users.t 2006-08-25 15:15:39 UTC (rev 170)
@@ -34,10 +34,14 @@
email => $users[0]{email},
});
isa_ok($user, 'CPAN::Forum::Users');
+ is($user->username, $users[0]{username});
+ is($user->email, $users[0]{email});
+ is(length($user->password), 7);
my @db_users = CPAN::Forum::Users->retrieve_all;
is(@db_users, 2);
is(CPAN::Forum::Users->count_all(), 2);
- BEGIN { $tests += 3; }
+ BEGIN { $tests += 6; }
}
+
Modified: trunk/t/lib/CPAN/Forum/Test.pm
===================================================================
--- trunk/t/lib/CPAN/Forum/Test.pm 2006-08-25 15:15:31 UTC (rev 169)
+++ trunk/t/lib/CPAN/Forum/Test.pm 2006-08-25 15:15:39 UTC (rev 170)
@@ -56,7 +56,11 @@
sub register_user {
my ($id) = @_;
-
+
+ init_db();
+ require CPAN::Forum::Users;
+ my $user = CPAN::Forum::Users->create($users[0]);
+ return $user;
}
Modified: trunk/t/mech/100-auth.t
===================================================================
--- trunk/t/mech/100-auth.t 2006-08-25 15:15:31 UTC (rev 169)
+++ trunk/t/mech/100-auth.t 2006-08-25 15:15:39 UTC (rev 170)
@@ -18,8 +18,10 @@
}
-my $w = CPAN::Forum::Test::get_mech();
-my $url = CPAN::Forum::Test::get_url();
+my $w_admin = CPAN::Forum::Test::get_mech();
+my $w_user = CPAN::Forum::Test::get_mech();
+my $w_guest = CPAN::Forum::Test::get_mech();
+my $url = CPAN::Forum::Test::get_url();
my %config = read_config();
sub read_config {
@@ -34,19 +36,70 @@
}
{
- $w->get_ok($url);
- $w->content_like(qr{CPAN Forum});
+ $w_admin->get_ok($url);
+ $w_admin->content_like(qr{CPAN Forum});
- $w->follow_link_ok({ text => 'login' });
- $w->content_like(qr{Login});
- $w->content_like(qr{Nickname});
- $w->submit_form(
+ $w_admin->follow_link_ok({ text => 'login' });
+ $w_admin->content_like(qr{Login});
+ $w_admin->content_like(qr{Nickname});
+ $w_admin->submit_form(
fields => {
nickname => $config{username},
password => $config{password},
},
);
- $w->content_like(qr{You are logged in as.*$config{username}});
+ $w_admin->content_like(qr{You are logged in as.*$config{username}});
BEGIN { $tests += 6; }
}
+{
+ my $user = CPAN::Forum::Test::register_user(0);
+ $w_user->get_ok($url);
+ $w_user->content_like(qr{CPAN Forum});
+ $w_user->follow_link_ok({ text => 'login' });
+ $w_user->content_like(qr{Login});
+
+ $w_user->submit_form(
+ fields => {
+ nickname => $user->username,
+ password => $user->password,
+ },
+ );
+ $w_user->content_like(qr{You are logged in as.*$users[0]{username}});
+
+ BEGIN { $tests += 5; }
+
+}
+
+{
+ my ($user)
+ = CPAN::Forum::Users->search({ username => $users[0]{username} });
+ $w_guest->get_ok($url);
+ $w_guest->content_like(qr{CPAN Forum});
+ $w_guest->get_ok("$url/dist/Acme-Bleach");
+ $w_guest->follow_link_ok({ text => 'new post' });
+ # check if this is the login form
+ $w_guest->submit_form(
+ fields => {
+ nickname => $user->username,
+ password => $user->password,
+ },
+ );
+
+ $w_guest->content_like(qr{Distribution: Acme-Bleach});
+ $w_guest->follow_link_ok({ text => 'logout' });
+
+ BEGIN { $tests += 6; }
+}
+
+{
+ $w_user->get_ok($url);
+ $w_user->content_like(qr{CPAN Forum});
+ $w_user->get_ok("$url/dist/Acme-Bleach");
+ $w_user->content_like(qr{Acme-Bleach});
+ $w_user->follow_link_ok({ text => 'new post' });
+ $w_user->content_like(qr{Distribution: Acme-Bleach});
+
+ BEGIN { $tests += 6; }
+}
+
More information about the Cpan-forum-commit
mailing list