[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