Skip to content

Commit

Permalink
Merge pull request #180 from auth0/bugfix-password-error-message
Browse files Browse the repository at this point in the history
Parse when password should include all sets error message
  • Loading branch information
hzalaz committed Oct 16, 2015
2 parents 4942725 + 3a8870c commit 75a68ed
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 2 deletions.
13 changes: 12 additions & 1 deletion Lock/Tests/A0PasswordStrengthErrorHandlerSpec.m
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
static NSString *LenghtError = @"At least 10 characters in length.";
static NSString *IdenticalCharacterError = @"No more than 2 identical characters in a row (e.g., \"aaa\" not allowed).";
static NSString *CharacterSetError = @"Contain at least 3 of the following 4 types of characters:";
static NSString *CharacterSetAllError = @"Should contain:";
static NSString *LowerCaseSet = @"lower case letters (a-z)";
static NSString *UpperCaseSet = @"upper case letters (A-Z)";
static NSString *NumberSet = @"numbers (i.e. 0-9)";
Expand Down Expand Up @@ -62,7 +63,7 @@
expect([handler localizedMessageFromError:error]).to.contain(IdenticalCharacterError);
});

it(@"should return message for character set error", ^{
it(@"should return message for contains at least character set error", ^{
NSError *error = createError([builder errorWithFailingRules:@[@"containsAtLeast"]]);
NSString *message = [handler localizedMessageFromError:error];
expect(message).to.contain(CharacterSetError);
Expand All @@ -72,4 +73,14 @@
expect(message).to.contain(SpecialCharacterSet);
});

it(@"should return message for character should contain set error", ^{
NSError *error = createError([builder errorWithFailingRules:@[@"shouldContain"]]);
NSString *message = [handler localizedMessageFromError:error];
expect(message).to.contain(CharacterSetAllError);
expect(message).to.contain(LowerCaseSet);
expect(message).to.contain(UpperCaseSet);
expect(message).to.contain(NumberSet);
expect(message).to.contain(SpecialCharacterSet);
});

SpecEnd
27 changes: 27 additions & 0 deletions Lock/Tests/PasswordStrengthError.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,33 @@
"verified": false
},
{
"code": "shouldContain",
"items": [
{
"code": "lowerCase",
"message": "lower case letters (a-z)",
"verified": false
},
{
"code": "upperCase",
"message": "upper case letters (A-Z)",
"verified": false
},
{
"code": "numbers",
"message": "numbers (i.e. 0-9)",
"verified": false
},
{
"code": "specialCharacters",
"message": "special characters (e.g. !@#$%^&*)",
"verified": false
}
],
"message": "Should contain:",
"verified": false
},
{
"code": "identicalChars",
"format": [
2,
Expand Down
2 changes: 1 addition & 1 deletion Pod/Classes/Core/A0PasswordStrengthErrorHandler.m
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ - (NSString *)localizedMessageFromError:(NSError *)error {
if (![rule[@"verified"] boolValue]) {
if ([ruleCode isEqualToString:@"lengthAtLeast"]) {
[errors addObject:[self lengthMessageFromRule:rule]];
} else if ([ruleCode isEqualToString:@"containsAtLeast"]) {
} else if ([ruleCode isEqualToString:@"containsAtLeast"] || [ruleCode isEqualToString:@"shouldContain"]) {
[errors addObject:[self characterSetMessageFromRule:rule]];
} else if ([ruleCode isEqualToString:@"identicalChars"]) {
[errors addObject:[self identicalCharacterMessageFromRule:rule]];
Expand Down

0 comments on commit 75a68ed

Please sign in to comment.