[Rt-commit] rt branch, 4.0/disallow-numeric-values-in-article-classes, created. rt-4.0.2-235-gd6e0272
Jason May
jasonmay at bestpractical.com
Tue Oct 25 16:03:00 EDT 2011
The branch, 4.0/disallow-numeric-values-in-article-classes has been created
at d6e02727428b730852667171cc8f0b27f3e648fd (commit)
- Log -----------------------------------------------------------------
commit d6e02727428b730852667171cc8f0b27f3e648fd
Author: Jason May <jasonmay at bestpractical.com>
Date: Tue Oct 25 15:55:40 2011 -0400
Do not allow article class names to be an integer
See c3f3a6b for a similar rationale.
diff --git a/lib/RT/Class.pm b/lib/RT/Class.pm
index c7c8a63..0b68f86 100644
--- a/lib/RT/Class.pm
+++ b/lib/RT/Class.pm
@@ -219,7 +219,7 @@ sub ValidateName {
my $obj = RT::Class->new($RT::SystemUser);
$obj->Load($newval);
return undef if ( $obj->Id );
- return 1;
+ return $self->SUPER::ValidateName($newval);
}
diff --git a/share/html/Admin/Articles/Classes/Modify.html b/share/html/Admin/Articles/Classes/Modify.html
index 7e911ff..d3635da 100644
--- a/share/html/Admin/Articles/Classes/Modify.html
+++ b/share/html/Admin/Articles/Classes/Modify.html
@@ -49,7 +49,7 @@
<& /Elements/Tabs &>
<& /Elements/ListActions, actions => \@results &>
-<form action="<% RT->Config->Get('WebPath') %>/Admin/Articles/Classes/Modify.html" method="post">
+<form name="ModifyClass" action="<% RT->Config->Get('WebPath') %>/Admin/Articles/Classes/Modify.html" method="post">
<input type="hidden" name="Submitted" value="1" />
%if ($Create ) {
<input type="hidden" name="id" value="new" />
diff --git a/t/web/class_create.t b/t/web/class_create.t
new file mode 100644
index 0000000..cec41a8
--- /dev/null
+++ b/t/web/class_create.t
@@ -0,0 +1,75 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use RT::Test tests => 13;
+
+my ( $baseurl, $m ) = RT::Test->started_ok;
+ok $m->login, 'logged in as root';
+my $root = RT::User->new(RT->SystemUser);
+ok( $root->Load('root'), 'load root user' );
+
+my $class_name = 'test class';
+
+my $class_id;
+diag "Create a class";
+{
+ $m->follow_link( id => 'tools-config-articles-classes-create');
+
+ # Test class form validation
+ $m->submit_form(
+ form_name => 'ModifyClass',
+ fields => {
+ Name => '',
+ },
+ );
+ $m->text_contains('Invalid value for Name');
+ $m->submit_form(
+ form_name => 'ModifyClass',
+ fields => {
+ Name => '0',
+ },
+ );
+ $m->text_contains('Invalid value for Name');
+ $m->submit_form(
+ form_name => 'ModifyClass',
+ fields => {
+ Name => '1',
+ },
+ );
+ $m->text_contains('Invalid value for Name');
+ $m->submit_form(
+ form_name => 'ModifyClass',
+ fields => {
+ Name => $class_name,
+ },
+ );
+ $m->content_contains('Object created', 'created class sucessfully' );
+
+ # Test validation on updae
+ $m->form_name('ModifyClass');
+ $m->set_fields(
+ Name => '',
+ );
+ $m->click_button(value => 'Save Changes');
+ $m->text_contains('Illegal value for Name');
+
+ $m->form_name('ModifyClass');
+ $m->set_fields(
+ Name => '0',
+ );
+ $m->click_button(value => 'Save Changes');
+ $m->text_contains('Illegal value for Name');
+
+ $m->form_name('ModifyClass');
+ $m->set_fields(
+ Name => '1',
+ );
+ $m->click_button(value => 'Save Changes');
+ $m->text_contains('Illegal value for Name');
+
+ $class_id = $m->form_name('ModifyClass')->value('id');
+ ok $class_id, "found id of the class in the form, it's #$class_id";
+}
+
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list