[Yapcom checkin] rev 29 - lib/YAPC t

[prev] [thread] [next] [lurker] [Date index for 2003/11/24]

From: svn
Subject: [Yapcom checkin] rev 29 - lib/YAPC t
Date: 22:03 on 24 Nov 2003
Author: gabor
Date: 2003-11-24 22:03:35 +0200 (Mon, 24 Nov 2003)
New Revision: 29

Modified:
   lib/YAPC/Organizer.pm
   lib/YAPC/Talk.pm
   t/04-proposals.t
   t/05-web-proposals.t
Log:
YAPC::Talk->proposal now expects user_id and not cookie.

Modified: lib/YAPC/Organizer.pm
===================================================================
--- lib/YAPC/Organizer.pm	2003-11-24 19:19:59 UTC (rev 28)
+++ lib/YAPC/Organizer.pm	2003-11-24 20:03:35 UTC (rev 29)
@@ -492,17 +492,10 @@
     my $q = $self->query;
 
     my $talk;
-    my $cookie = $q->cookie('Yapcom');
+    my $id = $self->is_logged_in;
 
-    my $id = YAPC::Login->get_user_id(cookie => $cookie);
-    if (not $id) {
-       my $t = $self->_server_page('login', "$templates_dir/login.tmpl");
-       $t->param(next => 'proposal.html');
-       return $t->output;
-    }
-
     eval {
-       $talk = YAPC::Talk->propose(cookie => $cookie, $q->Vars);
+       $talk = YAPC::Talk->propose($q->Vars, user_id => $id);
     };
     if ($@) {
        my $msg = $@;

Modified: lib/YAPC/Talk.pm
===================================================================
--- lib/YAPC/Talk.pm	2003-11-24 19:19:59 UTC (rev 28)
+++ lib/YAPC/Talk.pm	2003-11-24 20:03:35 UTC (rev 29)
@@ -19,8 +19,8 @@
     my %args = @_; # cookie =>    subject =>  language => 	 length =>   abstract =>  comment =>
     delete $args{run};    # was added for CGI::Application
 
-    $args{user_id} = YAPC::Login->get_user_id(cookie => $args{cookie});
-    delete $args{cookie};
+#    $args{user_id} = YAPC::Login->get_user_id(cookie => $args{cookie});
+#    delete $args{cookie};
 
     croak("Only authenticated users can submit proposals\n") if not $args{user_id};
     croak("id should not be defined\n") if defined $args{id};

Modified: t/04-proposals.t
===================================================================
--- t/04-proposals.t	2003-11-24 19:19:59 UTC (rev 28)
+++ t/04-proposals.t	2003-11-24 20:03:35 UTC (rev 29)
@@ -25,6 +25,7 @@
 my $login = YAPC::Login->new((email => $people[1]{email}, password => $people[1]{password}));
 isa_ok($login, 'YAPC::Login', 'Login successful');
 my $work_cookie = $login->cookie;
+my $work_uid = $login->user_id;
 
 ##########
 # login to the account with e-mail and password, get cookie
@@ -41,7 +42,8 @@
    language  => 'Hebrew',
    abstract  => "I am going to talk about how the creature was born.\nWhy is that not a camel and how to feed it\n",
    comment   => "Are you serious?\n I need at least 6 minutes to talk about this subject\n",
-   cookie    => $work_cookie, 
+   user_id   => $work_uid,
+#   cookie    => $work_cookie, 
 );
 
 ###### Check if the database is empty
@@ -62,7 +64,8 @@
 ###### Cannot submit a proposal without a valid cookie
 {
    my %prop = %proposal;
-   delete $prop{cookie};
+   #delete $prop{cookie};
+   delete $prop{user_id};
    eval {
       YAPC::Talk->propose(%prop);
    };
@@ -92,6 +95,7 @@
 is(@logins, 0, 'no one is logged in any more');
 
 
+=pod
 ###### Cannot submit a proposal after logout even with cookie that was valid once
 {
    my %prop = %proposal;
@@ -102,4 +106,7 @@
    my @talks = YAPC::Talk->retrieve_all;
    is(@talks, 2, 'There are 2 talk in the database'); 
 }
+=cut
 
+
+

Modified: t/05-web-proposals.t
===================================================================
--- t/05-web-proposals.t	2003-11-24 19:19:59 UTC (rev 28)
+++ t/05-web-proposals.t	2003-11-24 20:03:35 UTC (rev 29)
@@ -26,6 +26,7 @@
 my @cookies;
 my @uids;
 push @uids, YAPC::Test::Data::register_user(0);
+push @uids, YAPC::Test::Data::register_user(1);
 push @cookies, YAPC::Test::Data::login_user(0);
 
 
@@ -158,6 +159,24 @@
 }
 
 
+##### sending proposal with the user_id of someone else
+## maybe this should fail as it is or whould be logged
+{
+   local $ENV{REQUEST_URI}   = '/proposal.html';
+   local $ENV{HTTP_COOKIE} = "Yapcom=$cookies[0]";
+   my %prop = %proposal;
+   $prop{run} = 'send_proposal';
+   $prop{user_id} = $uids[1];
+   my $q = CGI->new(\%prop);
+   my $webapp = YAPC::Organizer->new;
+   $webapp->query($q);
+   my $result = $webapp->run();
+   like($result, qr/Thank you for the talk proposal/, 'proposal accepted');
+   my @talks = YAPC::Talk->retrieve_all;
+   is(@talks, 2, 'There are 2 talks in the database');
+   my $talker_id = $talks[1]->user_id;
+   is($talker_id, $uids[0], 'Talk registered to the correct user (the one logged in)');
+}
 
 
 

Generated at 23:06 on 24 Nov 2003 by mariachi 0.51