#!/usr/bin/env perl use warnings; use strict; =head1 DESCRIPTION A basic test harness for the User model. =cut use Jifty::Test::Dist tests => 24; # force to use English handle to compare strings successfully Jifty::I18N->get_language_handle('en'); # Make sure we can load the model use_ok('TestApp::Plugin::PasswordAuth::Model::User'); # Grab a system user my $system_user = TestApp::Plugin::PasswordAuth::CurrentUser->superuser; ok($system_user, "Found a system user"); # Try testing a create my $o = TestApp::Plugin::PasswordAuth::Model::User->new(current_user => $system_user); my ($id) = $o->create( name => 'jesse', email => 'jrv', color => 'gray', swallow_type => 'african', password => 'secret'); ok($id, "User create returned success"); ok($o->id, "New User has valid id set"); is($o->id, $id, "Create returned the right id"); can_ok($o, 'name'); is($o->name, 'jesse'); ok(!$o->password, "Can't get the password"); can_ok($o,'set_password'); ok($o->password_is( 'secret')); 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', email => 'jrv2', color => 'blue', swallow_type => 'african', password => 'secret'); ok(!$id, "Users can't be created with the wrong favorite color"); my $q = TestApp::Plugin::PasswordAuth::Model::User->new(current_user => $system_user); ($id) = $p->create( name => 'jesse2', email => 'jrv2', color => 'gray', swallow_type => 'european', password => 'secret'); ok(!$id, "Users can't be created if they don't know african swallow_types are faster"); my $r = TestApp::Plugin::PasswordAuth::Model::User->new(current_user => $system_user); ($id) = $r->create( name => 'jesse2', email => 'jrv2', color => 'grey', swallow_type => 'african', password => 'secret'); ok($id, "Created with grey"); my ($res, $msg) = $r->set_password('foo'); TODO: { local $TODO = 'huh?'; ok(!$res, 'unable to set password shorter than 6'); like($msg, qr/at least six/); ok($r->password_is('secret'), 'password not changed'); }; ($id, $msg) = $r->create( name => 'jesse3', email => 'jrv2@orz', color => 'gray', password => '', swallow_type => 'african' ); ok(!$id, "Can't creaet without password"); like($msg, qr/at least six/); ($id, $msg) = $r->create( name => 'jesse3', email => 'jrv2@orz', color => 'gray', password => '', swallow_type => 'african' ); ok(!$id, "Can't create without password"); like($msg, qr/at least six/);