#!/usr/bin/perl # just testing for dfv errors using LIMS::Validation profiles: use Test::WWW::Mechanize::CGIApp; use Data::Dumper; use strict; use warnings; use Test::More tests => 21; # use Test::More 'no_plan'; =begin: tests: 1) =cut BEGIN { require 't/test-lib.pl'; } my $mech = get_mech(); do_login(); my $dbh; eval { $dbh = get_dbh() or die 'no database handle recieved from get_dbh'; }; warn $@ if $@; # change_password profile: $mech->get_ok('/user/change_password'); # print_and_exit(); { my %pwd = ( old_password => 'admin', # wrong new_password => 'foo', # too short new_password_confirm => 'bar', # doesn't match ); my $msgs = get_messages('form_validator')->{user}; $mech->submit_form( fields => \%pwd ); # print_and_exit(); has_invalid(); has_formvalidator_error($msgs->{new_password}->{LENGTH}); has_formvalidator_error($msgs->{new_password_confirm}->{LENGTH}); has_formvalidator_error($msgs->{pwds}->{DUPLICATION}); # make new_password_confirm match new_password $pwd{new_password_confirm} = $pwd{new_password}; $mech->submit_form( fields => \%pwd ); # print_and_exit(); has_invalid(); has_formvalidator_error($msgs->{new_password}->{LENGTH}); has_formvalidator_error($msgs->{new_password_confirm}->{LENGTH}); lacks_formvalidator_error($msgs->{pwds}->{DUPLICATION}); # make new_password length ok, but new_password_confirm mistake: $pwd{new_password} = 'warthog'; $pwd{new_password_confirm} = 'wartog'; $mech->submit_form( fields => \%pwd ); # print_and_exit(); lacks_invalid(); lacks_formvalidator_error($msgs->{new_password}->{LENGTH}); lacks_formvalidator_error($msgs->{new_password_confirm}->{LENGTH}); has_formvalidator_error($msgs->{pwds}->{DUPLICATION}); # make new_password_confirm match new_password $pwd{new_password_confirm} = $pwd{new_password}; $mech->submit_form( fields => \%pwd ); # print_and_exit(); my $user_messages = get_messages('user'); $mech->content_contains( $user_messages->{old_pwd_mismatch}, 'OK: incorrect password detected', ); # correct password & re-submit: $pwd{old_password} = 'adm1n'; $mech->submit_form( fields => \%pwd ); # print_and_exit(); lacks_invalid(); # this tests MessageStack is working properly - old stash msg cleared: $mech->content_lacks( $user_messages->{old_pwd_mismatch}, 'OK: lacks pwd mismatch error', ); $mech->content_contains( $user_messages->{pwd_change_success}, 'OK: password change successful', ); }