[Jifty-commit] r3145 - in jifty/trunk/t/TestApp-Plugin-PasswordAuth: lib/TestApp/Plugin/PasswordAuth t

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Mon Apr 16 16:52:04 EDT 2007


Author: yves
Date: Mon Apr 16 16:52:03 2007
New Revision: 3145

Added:
   jifty/trunk/t/TestApp-Plugin-PasswordAuth/lib/TestApp/Plugin/PasswordAuth/CurrentUser.pm
   jifty/trunk/t/TestApp-Plugin-PasswordAuth/t/11-current_user.t
Modified:
   jifty/trunk/t/TestApp-Plugin-PasswordAuth/lib/TestApp/Plugin/PasswordAuth/Dispatcher.pm
   jifty/trunk/t/TestApp-Plugin-PasswordAuth/lib/TestApp/Plugin/PasswordAuth/Model/User.pm
   jifty/trunk/t/TestApp-Plugin-PasswordAuth/t/00-model-User.t

Log:
some failing tests on new plugin password, for me test 9 is ok : object id is good, but tests 10 to 14 fail, current user can't read his name mail or mygroup


Added: jifty/trunk/t/TestApp-Plugin-PasswordAuth/lib/TestApp/Plugin/PasswordAuth/CurrentUser.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/t/TestApp-Plugin-PasswordAuth/lib/TestApp/Plugin/PasswordAuth/CurrentUser.pm	Mon Apr 16 16:52:03 2007
@@ -0,0 +1,30 @@
+package TestApp::Plugin::PasswordAuth::CurrentUser;
+
+use strict;
+use warnings;
+
+use base qw(Jifty::CurrentUser);
+
+__PACKAGE__->mk_accessors(qw(group));
+
+sub _init {
+   my $self = shift;
+   my %args = (@_);
+
+   if (delete $args{'_bootstrap'} ) {
+       $self->is_bootstrap_user(1);
+   } elsif (keys %args) {
+       $self->user_object(TestApp::Plugin::PasswordAuth::Model::User->new(current_user => $self));
+       $self->user_object->load_by_cols(%args);
+
+       if ( $self->user_object->mygroup eq 'admin') {
+           $self->is_superuser(1);
+       };
+
+       $self->group($self->user_object->mygroup);
+   };
+   $self->SUPER::_init(%args);
+};
+
+
+1;

Modified: jifty/trunk/t/TestApp-Plugin-PasswordAuth/lib/TestApp/Plugin/PasswordAuth/Dispatcher.pm
==============================================================================
--- jifty/trunk/t/TestApp-Plugin-PasswordAuth/lib/TestApp/Plugin/PasswordAuth/Dispatcher.pm	(original)
+++ jifty/trunk/t/TestApp-Plugin-PasswordAuth/lib/TestApp/Plugin/PasswordAuth/Dispatcher.pm	Mon Apr 16 16:52:03 2007
@@ -1,7 +1,12 @@
-use strict;
-use warnings;
 package TestApp::Plugin::PasswordAuth::Dispatcher;
 use Jifty::Dispatcher -base;
 
+on qr{/setuser/(.*)} => run {
+    my $name = $1;
+
+    my $current_user = TestApp::Plugin::PasswordAuth::CurrentUser->new( name => $name );
+    Jifty->web->current_user( $current_user );
+    show '/index.html';
+};
 
 1;

Modified: jifty/trunk/t/TestApp-Plugin-PasswordAuth/lib/TestApp/Plugin/PasswordAuth/Model/User.pm
==============================================================================
--- jifty/trunk/t/TestApp-Plugin-PasswordAuth/lib/TestApp/Plugin/PasswordAuth/Model/User.pm	(original)
+++ jifty/trunk/t/TestApp-Plugin-PasswordAuth/lib/TestApp/Plugin/PasswordAuth/Model/User.pm	Mon Apr 16 16:52:03 2007
@@ -7,6 +7,9 @@
 # Mixins
 
 use TestApp::Plugin::PasswordAuth::Record schema {
+   column 'mygroup' =>
+             valid_values are qw/admin moderator user/,
+             default is 'user';
 
 };
 

Modified: jifty/trunk/t/TestApp-Plugin-PasswordAuth/t/00-model-User.t
==============================================================================
--- jifty/trunk/t/TestApp-Plugin-PasswordAuth/t/00-model-User.t	(original)
+++ jifty/trunk/t/TestApp-Plugin-PasswordAuth/t/00-model-User.t	Mon Apr 16 16:52:03 2007
@@ -7,10 +7,11 @@
 A basic test harness for the User model.
 
 =cut
+
 use lib 't/lib';
 use Jifty::SubTest;
 
-use Jifty::Test tests => 15;
+use Jifty::Test tests => 17;
 
 # Make sure we can load the model
 use_ok('TestApp::Plugin::PasswordAuth::Model::User');
@@ -39,6 +40,9 @@
 is($o->color, 'gray');
 is ($o->swallow_type, 'african');
 
+can_ok($o, 'mygroup');
+is ($o->mygroup, 'user', 'Default user is in group user');
+
 
 my $p = TestApp::Plugin::PasswordAuth::Model::User->new(current_user => $system_user);
  ($id) = $p->create( name => 'jesse2',

Added: jifty/trunk/t/TestApp-Plugin-PasswordAuth/t/11-current_user.t
==============================================================================
--- (empty file)
+++ jifty/trunk/t/TestApp-Plugin-PasswordAuth/t/11-current_user.t	Mon Apr 16 16:52:03 2007
@@ -0,0 +1,56 @@
+#!/usr/bin/env perl
+use warnings;
+use strict;
+
+=head1 DESCRIPTION
+
+Basic tests for CurrentUser.
+
+=cut
+
+use lib 't/lib';
+use Jifty::SubTest;
+
+use Jifty::Test tests => 14;
+#use Jifty::Test::WWW::Mechanize;
+
+use_ok('TestApp::Plugin::PasswordAuth::Model::User');
+use_ok('TestApp::Plugin::PasswordAuth::CurrentUser');
+
+# Get a system user
+my $system_user = TestApp::Plugin::PasswordAuth::CurrentUser->superuser;
+ok($system_user, "Found a system user");
+
+# Create two users
+my $o = TestApp::Plugin::PasswordAuth::Model::User->new(current_user => $system_user);
+$o->create( name => 'A User', email => 'auser at example.com', swallow_type => 'african',
+            password => 'secret' );
+ok($o->id, "New user has valid id set");
+is($o->mygroup, 'user', "User is not admin");
+$o->create( name => 'Bob', email => 'bob at example.com', swallow_type => 'african', 
+            password => 'secret2', mygroup => 'admin' );
+ok($o->id, "New user has valid id set");
+is($o->mygroup, 'admin', "User is admin");
+
+# Create a CurrentUser
+my $bob = TestApp::Plugin::PasswordAuth::CurrentUser->new( name => 'Bob' );
+ok($bob->id, "CurrentUser has a valid id set");
+is($bob->id, $o->id, "The ids match");
+is($bob->user_object->name, 'Bob', "The CurrentUser is Bob");
+is($bob->user_object->email, 'bob at example.com', 'The CurrentUser email is bob at example.com');
+is($bob->user_object->swallow_type, 'african', "The CurrentUser swallow_type is african");
+is($bob->user_object->mygroup, 'admin', "The CurrentUser group is admin");
+ok($bob->is_superuser, "CurrentUser is a superuser");
+
+#my $server = Jifty::Test->make_server;
+#isa_ok($server, 'Jifty::Server');
+
+#my $URL = $server->started_ok;
+#my $mech = Jifty::Test::WWW::Mechanize->new();
+
+#$mech->get_ok("$URL/currentuser", "Got currentuser page");
+#$mech->content_contains("No current user set.", "Good, no current user yet");
+#$mech->get_ok("$URL/setuser/Bob", "Setting currentuser to Bob");
+#$mech->get_ok("$URL/currentuser", "Refetched currentuser page");
+#$mech->content_contains("Current user is Bob", "Now the current_user is set");
+#$mech->content_contains("The current user is a superuser", "... and the current_user is a superuser");


More information about the Jifty-commit mailing list