From 5bf3e44ad6eceea5ae9f7a6873f153f6d540e764 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Mon, 16 Nov 2009 18:35:01 -0800 Subject: [PATCH] Accept time zones with spaces or underscores to help users. --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Form/TimeZone.pm | 20 +++++++++++++++++++ t/Form/TimeZone.t | 39 +++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 t/Form/TimeZone.t diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index cbcb04e58..85844b2b5 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -20,6 +20,7 @@ - added #10727: language choice during site adding - added file globbing to preload.exclude - fixed #11242: Macros not executing in Download Templates + - added TimeZone form controls accepts spaces or underscores in zone names. 7.8.4 - Fixed a compatibility problem between WRE and new Spectre code. diff --git a/lib/WebGUI/Form/TimeZone.pm b/lib/WebGUI/Form/TimeZone.pm index bf9217adc..2c98a315b 100644 --- a/lib/WebGUI/Form/TimeZone.pm +++ b/lib/WebGUI/Form/TimeZone.pm @@ -95,6 +95,26 @@ sub isDynamicCompatible { #------------------------------------------------------------------- +=head2 new ( ) + +Extend the base method to handle spaces in the value and/or default value. + +=cut + +sub new { + my $class = shift; + my $self = $class->SUPER::new(@_); + my $value = $self->get('value'); + $value =~ tr/ /_/; + $self->set('value', $value); + my $defaultValue = $self->get('defaultValue'); + $defaultValue =~ tr/ /_/; + $self->set('defaultValue', $defaultValue); + return $self; +} + +#------------------------------------------------------------------- + =head2 toHtml ( ) Renders a database connection picker control. diff --git a/t/Form/TimeZone.t b/t/Form/TimeZone.t new file mode 100644 index 000000000..470ea2b2b --- /dev/null +++ b/t/Form/TimeZone.t @@ -0,0 +1,39 @@ +#------------------------------------------------------------------- +# WebGUI is Copyright 2001-2009 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 +#------------------------------------------------------------------- + +use FindBin; +use strict; +use lib "$FindBin::Bin/../lib"; + +use WebGUI::Test; +use WebGUI::Form::TimeZone; +use WebGUI::Session; + +#The goal of this test is to verify that Text form elements work + +use Test::More; # increment this value for each test you create + +my $session = WebGUI::Test->session; + +# put your tests here + +plan tests => 2; + +my $zone; + +$zone = WebGUI::Form::TimeZone->new($session, { + value => 'America/Los Angeles', +}); +is ($zone->get('value'), 'America/Los_Angeles', 'new replaces time zones with spaces with underscores in the value'); + +$zone = WebGUI::Form::TimeZone->new($session, { + defaultValue => 'America/New York', +}); +is ($zone->get('value'), 'America/New_York', 'new replaces time zones with spaces with underscores in the defaultValue');