From 453942cb58007e8e90841cff6f9b49d244c259f6 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sun, 15 Jan 2006 21:53:16 +0000 Subject: [PATCH] more session related bug fixes added setting test --- lib/WebGUI/Auth/LDAP.pm | 7 +++--- lib/WebGUI/Auth/WebGUI.pm | 2 +- lib/WebGUI/Session/Setting.pm | 6 ++--- t/Session_Setting.t | 47 +++++++++++++++++++++++++++++++++++ 4 files changed, 55 insertions(+), 7 deletions(-) create mode 100644 t/Session_Setting.t diff --git a/lib/WebGUI/Auth/LDAP.pm b/lib/WebGUI/Auth/LDAP.pm index 1dce6a26b..8a7a310ef 100644 --- a/lib/WebGUI/Auth/LDAP.pm +++ b/lib/WebGUI/Auth/LDAP.pm @@ -411,12 +411,13 @@ sub login { #------------------------------------------------------------------- sub new { my $class = shift; + my $session = shift; my $authMethod = $_[0]; my $userId = $_[1]; my @callable = ('createAccount','deactivateAccount','displayAccount','displayLogin','login','logout','createAccountSave','deactivateAccountConfirm'); - my $self = WebGUI::Auth->new($authMethod,$userId,\@callable); - $self->{_connection} = WebGUI::LDAPLink->new($self->session,($self->session->scratch->get("ldapConnection") || $self->session->setting->get("ldapConnection")))->get; - my $i18n = WebGUI::International->new($self->session, "AuthLDAP"); + my $self = WebGUI::Auth->new($session,$authMethod,$userId,\@callable); + $self->{_connection} = WebGUI::LDAPLink->new($session,($session->scratch->get("ldapConnection") || $session->setting->get("ldapConnection")))->get; + my $i18n = WebGUI::International->new($session, "AuthLDAP"); my %ldapStatusCode = map { $_ => $i18n->get("LDAPLink_".$_) } (0..21, 32,33,34,36, 48..54, 64..71, 80); $self->{_statusCode} = \%ldapStatusCode; diff --git a/lib/WebGUI/Auth/WebGUI.pm b/lib/WebGUI/Auth/WebGUI.pm index ef772964f..90a24c8d7 100644 --- a/lib/WebGUI/Auth/WebGUI.pm +++ b/lib/WebGUI/Auth/WebGUI.pm @@ -504,7 +504,7 @@ sub login { #------------------------------------------------------------------- sub new { my $class = shift; - my $session = shift; + my $session = shift; my $authMethod = $_[0]; my $userId = $_[1]; my @callable = ('validateEmail','createAccount','deactivateAccount','displayAccount','displayLogin','login','logout','recoverPassword','resetExpiredPassword','recoverPasswordFinish','createAccountSave','deactivateAccountConfirm','resetExpiredPasswordSave','updateAccount'); diff --git a/lib/WebGUI/Session/Setting.pm b/lib/WebGUI/Session/Setting.pm index 7b920c1c6..8fa5526c6 100644 --- a/lib/WebGUI/Session/Setting.pm +++ b/lib/WebGUI/Session/Setting.pm @@ -67,7 +67,7 @@ sub add { my $name = shift; my $value = shift; $self->{_settings}{$name} = $value; - $self->session->db->write("insert into settings (name,value) values (".quote($name).",".quote($value).")"); + $self->session->db->write("insert into settings (name,value) values (".$self->session->db->quote($name).",".$self->session->db->quote($value).")"); } #------------------------------------------------------------------- @@ -136,7 +136,7 @@ sub remove { my $self = shift; my $name = shift; delete $self->{_settings}{$name}; - $self->session->db->write("delete from settings where name=".quote($name)); + $self->session->db->write("delete from settings where name=".$self->session->db->quote($name)); } @@ -175,7 +175,7 @@ sub set { my $name = shift; my $value = shift; $self->{_settings}{$name} = $value; - $self->session->db->write("update settings set value=".quote($value)." where name=".quote($name)); + $self->session->db->write("update settings set value=".$self->session->db->quote($value)." where name=".$self->session->db->quote($name)); } diff --git a/t/Session_Setting.t b/t/Session_Setting.t new file mode 100644 index 000000000..30935cfce --- /dev/null +++ b/t/Session_Setting.t @@ -0,0 +1,47 @@ +#------------------------------------------------------------------- +# WebGUI is Copyright 2001-2006 Plain Black Corporation. +#------------------------------------------------------------------- +# Please read the legal notices (docs/legal.txt) and the license +# (docs/license.txt) that came with this distribution before using +# this software. +#------------------------------------------------------------------- +# http://www.plainblack.com info@plainblack.com +#------------------------------------------------------------------- + +# ---- BEGIN DO NOT EDIT ---- +use strict; +use lib '../lib'; +use Getopt::Long; +use WebGUI::Session; +# ---- END DO NOT EDIT ---- +use Test::More tests => 4; # increment this value for each test you create + +my $session = initialize(); # this line is required + +$session->setting->add("test","XXX"); +my ($value) = $session->db->quickArray("select value from settings where name='test'"); +is($value, 'XXX', "add()"); +is($session->setting->get("test"), "XXX", "get()"); +$session->setting->set("test","YYY"); +my ($value) = $session->db->quickArray("select value from settings where name='test'"); +is($value, 'YYY', "set()"); +$session->setting->remove("test"); +my ($value) = $session->db->quickArray("select value from settings where name='test'"); +is($value, undef, "delete()"); + +cleanup($session); # this line is required + +# ---- DO NOT EDIT BELOW THIS LINE ----- +sub initialize { + $|=1; # disable output buffering + my $configFile; + GetOptions( + 'configFile=s'=>\$configFile + ); + exit 1 unless ($configFile); + my $session = WebGUI::Session->open("..",$configFile); +} +sub cleanup { + my $session = shift; + $session->close(); +}