Skip to content

Commit

Permalink
Closes #27
Browse files Browse the repository at this point in the history
  • Loading branch information
justingit committed Mar 4, 2010
1 parent b7aa874 commit 1c79cce
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 18 deletions.
13 changes: 6 additions & 7 deletions dada/DADA/ProfileFieldsManager/baseSQL.pm
Expand Up @@ -470,19 +470,18 @@ sub validate_field_name {
$errors->{spaces} = 0;
}

if ( $args->{ -field } =~
m/\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\+|\=|\>|\<|\-|\0-\037\177-\377/ )
if ( $args->{ -field } =~ m/\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\+|\=|\>|\<|\-|\0-\037\177-\377/ )
{
$errors->{weird_characters} = 1;
}
else {
# # Match anything but ASCII alphanumerics
# if($args->{ -field } =~ m/[^a-z A-Z 0-9]/){
# $errors->{weird_characters} = 1;
# }
# else {
if($args->{ -field } =~ m/[^a-zA-Z0-9_]/){
$errors->{weird_characters} = 1;
}
else {
$errors->{weird_characters} = 0;
# }
}
}

if ( $args->{ -field } =~ m/\"|\'/ ) {
Expand Down
32 changes: 21 additions & 11 deletions dada/t/DADA_MailingList_Subscribers.pl
Expand Up @@ -347,10 +347,13 @@
'/slashes/',
'',
'@WeirdCharacters+',
"$dada_test_config::UTF8_STR",
);

my $errors = 0;
my $details = {};

foreach my $bfn(@bad_field_names) {
my ($errors, $details) = $lh->validate_subscriber_field_name({-field => $bfn});
($errors, $details) = $lh->validate_subscriber_field_name({-field => $bfn});
ok($errors == 1, "Bad Field is reporting an error.");
undef($errors);
undef($details);
Expand All @@ -360,7 +363,7 @@
ok(eq_array($lh->subscriber_fields, ['myfield']), 'New field is being reported.');


my ($errors, $details) = $lh->validate_subscriber_field_name({-field => 'myfield'});
($errors, $details) = $lh->validate_subscriber_field_name({-field => 'myfield'});
ok($errors == 1, "Error being reported by duplicate field");
ok($details->{field_exists} == 1, "Error being report as, 'field_exists'");
undef($errors); undef($details);
Expand All @@ -369,48 +372,55 @@
ok($s == 1, "removing a new field is successful");

# spaces
my ($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[0]});
($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[0]});
ok($errors == 1, "Error being reported");
ok($details->{spaces} == 1, "Error being report as, 'spaces'");
undef($errors); undef($details);


# quotes
my ($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[1]});
($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[1]});
ok($errors == 1, "Error being reported");
ok($details->{quotes} == 1, "Error being report as, 'quotes'");
undef($errors); undef($details);


# field_name_too_long
my ($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[2]});
($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[2]});
ok($errors == 1, "Error being reported");
ok($details->{field_name_too_long} == 1, "Error being report as, 'field_name_too_long'");
undef($errors); undef($details);


# slashes_in_field_name
my ($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[3]});
($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[3]});
ok($errors == 1, "Error being reported");
ok($details->{slashes_in_field_name} == 1, "Error being report as, 'slashes_in_field_name'");
undef($errors); undef($details);


# field_blank
my ($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[4]});
($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[4]});
ok($errors == 1, "Error being reported");
ok($details->{field_blank} == 1, "Error being report as, 'field_blank'");
undef($errors); undef($details);


# weird_characters
my ($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[5]});
($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[5]});
ok($errors == 1, "Error being reported");
ok($details->{weird_characters} == 1, "Error being report as, 'weird_characters'");
undef($errors); undef($details);

# UTF8/unicode
($errors, $details) = $lh->validate_subscriber_field_name({-field => $bad_field_names[6]});
ok($errors == 1, "Error being reported");
ok($details->{weird_characters} == 1, "Error being report as, 'weird_characters'");
undef($errors); undef($details);


foreach(qw(email_id email list list_type list_status)){
my ($errors, $details) = $lh->validate_subscriber_field_name({-field => $_});
($errors, $details) = $lh->validate_subscriber_field_name({-field => $_});
ok($errors == 1, "Error being reported");
ok($details->{field_is_special_field} == 1, "Error being report as, 'field_is_special_field'");
undef($errors); undef($details);
Expand All @@ -419,7 +429,7 @@



eval { my ($errors, $details) = $lh->validate_subscriber_field_name(); };
eval { ($errors, $details) = $lh->validate_subscriber_field_name(); };
ok($@, "calling validate_subscriber_field_name without any paramaters causes an error!: $@");
undef($errors); undef($details);

Expand Down

0 comments on commit 1c79cce

Please sign in to comment.