[Yapcom checkin] rev 39 - lib/YAPC t t/lib/YAPC/Test templates

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

From: svn
Subject: [Yapcom checkin] rev 39 - lib/YAPC t t/lib/YAPC/Test templates
Date: 09:09 on 25 Nov 2003
Author: gabor
Date: 2003-11-25 09:08:59 +0200 (Tue, 25 Nov 2003)
New Revision: 39

Modified:
   lib/YAPC/Organizer.pm
   lib/YAPC/Person.pm
   t/03-web-adduser.t
   t/10-use-html-template.t
   t/lib/YAPC/Test/Data.pm
   templates/registration.tmpl
Log:
fixing the registration form that gave error message
the first time it was accessed

Modified: lib/YAPC/Organizer.pm
===================================================================
--- lib/YAPC/Organizer.pm	2003-11-25 06:27:33 UTC (rev 38)
+++ lib/YAPC/Organizer.pm	2003-11-25 07:08:59 UTC (rev 39)
@@ -410,42 +410,31 @@
 sub registration {
     my $self = shift;
     my $q = $self->query;
-    #warn $q->param('run');
 
+    my $t = $self->_server_page('registration');
     my $person;
-    eval {
-       $person = YAPC::Person->new($q->Vars);
-    };
-    if ($@) {
-       my $msg = $@;
-       # cannot register (duplicate email ?, other problem ?)
-       my $t = $self->_server_page('registration');
-       $t->param(MESSAGE => 'There was an error in the provided data.');
-       return $t->output;
-    } else {
+    if ($q->param('submit')) {
+       eval {
+          $person = YAPC::Person->new($q->Vars);
+       };
+       if ($@) {
+          my $msg = $@;
+          # cannot register (duplicate email ?, other problem ?)
+          $t->param(MESSAGE => 'There was an error in the provided data.');
+          return $t->output;
+        } else {
+        }
+     } else { # first time on this page
+        return $t->output;
+     }
 
-       $self->send_email_with_validation_code($person);
+     # success
+     $self->send_email_with_validation_code($person);
+     $self->send_email_to_admin_about_new_registration($person);
 
-
-       # send e-mail to administrator
-       my $text = "Registrant\n";
-       $text .= sprintf "Name: %s %s <%s>\n", $person->fname, $person->lname, $person->email;
-       $text .= sprintf "Phone: %s\n", $person->phone if defined $person->phone;
-       $text .= sprintf "Company: %s\n", $person->company if defined $person->company;
-
-       my %spymail = (
-                 To      => $YAPC::Config::email_address,
-                 From    => $YAPC::Config::email_address,
-                 Subject => "new YAPC::Israel::2004 registration received",
-                 Message => $text, 
-       );
-       sendmail(%spymail) or die $Mail::Sendmail::error unless $ENV{YAPCOM_NOMAIL};
-            
-
-       my $t = $self->_server_page('validation');
-       $t->param('run' => 'validation');
-       return $t->output;
-    }
+     $t = $self->_server_page('validation');
+     $t->param('run' => 'validation');
+     return $t->output;
 }
 
 sub validation {
@@ -529,6 +518,27 @@
 }
 
 
+   # send e-mail to administrator
+sub send_email_to_admin_about_new_registration {
+   my $self = shift;
+   my $person = shift;
+
+   my $text = "Registrant\n";
+   $text .= sprintf "Name: %s %s <%s>\n", $person->fname, $person->lname, $person->email;
+   $text .= sprintf "Phone: %s\n", $person->phone if defined $person->phone;
+   $text .= sprintf "Company: %s\n", $person->company if defined $person->company;
+
+   my %spymail = (
+                 To      => $YAPC::Config::email_address,
+                 From    => $YAPC::Config::email_address,
+                 Subject => "new YAPC::Israel::2004 registration received",
+                 Message => $text, 
+    );
+    sendmail(%spymail) or die $Mail::Sendmail::error unless $ENV{YAPCOM_NOMAIL};
+}
+            
+
+
 1;
 
 

Modified: lib/YAPC/Person.pm
===================================================================
--- lib/YAPC/Person.pm	2003-11-25 06:27:33 UTC (rev 38)
+++ lib/YAPC/Person.pm	2003-11-25 07:08:59 UTC (rev 39)
@@ -17,6 +17,7 @@
     my $self = shift;
     my %arg = @_;        
     delete $arg{run};    # was added for CGI::Application  
+    delete $arg{submit};    # was added for CGI::Application  
 
     croak("acked should not be defined\n") if defined $arg{acked};
     croak("authcode should not be defined\n") if defined $arg{authcode};

Modified: t/03-web-adduser.t
===================================================================
--- t/03-web-adduser.t	2003-11-25 06:27:33 UTC (rev 38)
+++ t/03-web-adduser.t	2003-11-25 07:08:59 UTC (rev 39)
@@ -61,10 +61,24 @@
 }
 
 
+##### access the registration page for the first time
 {
    local $ENV{REQUEST_URI}   = '/registration.html';
+   my $q = CGI->new(); 
+   my $webapp = YAPC::Organizer->new;
+   $webapp->query($q);
+   my $result = $webapp->run();
+   unlike($result, qr/There was an error in the provided data./, 'no error message');
+   like($result, qr@<h2>Registration Form</h2>@, 'no error message');
+}
+
+
+##### register a user
+{
+   local $ENV{REQUEST_URI}   = '/registration.html';
    my %user = %user1;
    $user{pauseid} = 'MYPAUSEID';
+   $user{submit} = 1;
    my $q = CGI->new(\%user); 
    my $webapp = YAPC::Organizer->new;
    $webapp->query($q);
@@ -87,6 +101,7 @@
    local $ENV{REQUEST_URI}   = '/registration.html';
    my %user = %user1;
    $user{email} = 'dudu@tomtom';
+   $user{submit} = 1;
    $user{notexisting_field} = 'bad value';
 
    my $q = CGI->new(\%user); 
@@ -104,6 +119,7 @@
    my %user = %user1;
    $user{email} = 'dudu@bad-id';
    $user{id} = 100;
+   $user{submit} = 1;
 
    my $q = CGI->new(\%user);
    my $webapp = YAPC::Organizer->new;
@@ -116,6 +132,7 @@
    my %user = %user1;
    $user{email} = 'dudu@bad-acked';
    $user{acked} = 100;
+   $user{submit} = 1;
 
    my $q = CGI->new(\%user);
    my $webapp = YAPC::Organizer->new;
@@ -128,6 +145,7 @@
    my %user = %user1;
    $user{email} = 'dudu@bad-authcode';
    $user{authcode} = 100;
+   $user{submit} = 1;
 
    my $q = CGI->new(\%user);
    my $webapp = YAPC::Organizer->new;
@@ -142,6 +160,7 @@
 {
    local $ENV{REQUEST_URI}   = '/login.html';
    my %user = %user1;
+#   $user{submit} = 1;
 
    my $q = CGI->new(\%user);
    my $webapp = YAPC::Organizer->new;
@@ -394,12 +413,13 @@
 
 
 
-###### registeriong wihtout validation
+###### registering without validation
 {
    local $ENV{REQUEST_URI}   = '/registration.html';
    my %user = %{$people[1]};
    $user{run} = 'registration';
    $user{pauseid} = 'MYPAUSEID';
+   $user{submit} = 1;
    my $q = CGI->new(\%user);
    my $webapp = YAPC::Organizer->new;
    $webapp->query($q);

Modified: t/10-use-html-template.t
===================================================================
--- t/10-use-html-template.t	2003-11-25 06:27:33 UTC (rev 38)
+++ t/10-use-html-template.t	2003-11-25 07:08:59 UTC (rev 39)
@@ -35,6 +35,7 @@
    $ENV{REQUEST_URI}   = '/registration.html';
    my %user = %user1;
    $user{pauseid} = 'MYPAUSEID';
+   $user{submit} = 1;
    my $q = CGI->new(\%user); 
    my $webapp = YAPC::Organizer->new;
    $webapp->query($q);

Modified: t/lib/YAPC/Test/Data.pm
===================================================================
--- t/lib/YAPC/Test/Data.pm	2003-11-25 06:27:33 UTC (rev 38)
+++ t/lib/YAPC/Test/Data.pm	2003-11-25 07:08:59 UTC (rev 39)
@@ -73,6 +73,7 @@
    {
      local $ENV{REQUEST_URI}   = '/registration.html';
      my %user = %{$people[$i]};
+     $user{submit} = 1;
      my $q = CGI->new(\%user);
      my $webapp = YAPC::Organizer->new;
      $webapp->query($q);

Modified: templates/registration.tmpl
===================================================================
--- templates/registration.tmpl	2003-11-25 06:27:33 UTC (rev 38)
+++ templates/registration.tmpl	2003-11-25 07:08:59 UTC (rev 39)
@@ -21,7 +21,7 @@
 <tr><td>Home page:</td><td><input  size=40 name="url" value="<TMPL_VAR NAME=url>" /></td></tr>
 <tr><td>Mongers Group:</td><td><input size=40  name="mongers" value="<TMPL_VAR NAME=mongers>" /></td></tr>
 <tr><td>Bio:</td><td><textarea cols=40 rows=10 name="bio"><TMPL_VAR NAME=bio></textarea></td></tr>
-<tr><td></td><td><input type="submit" value="Register"></td></tr>
+<tr><td></td><td><input type="submit" name="submit" value="Register"></td></tr>
 </table>
 </form>
 

Generated at 11:06 on 25 Nov 2003 by mariachi 0.51