From f5adf14de55f08e4fac94d503f0fe7aaa4f79f9f Mon Sep 17 00:00:00 2001 From: Shane Tomlinson <stomlinson@mozilla.com> Date: Thu, 6 Oct 2011 13:51:18 +0100 Subject: [PATCH] Moving the passwordAndValidationPassword tests to the validation module. Adding tests. --- .../static/dialog/resources/validation.js | 49 +++++++++++++++++-- .../dialog/test/qunit/validation_unit_test.js | 38 ++++++++++++++ .../static/js/pages/verify_email_address.js | 27 +--------- 3 files changed, 84 insertions(+), 30 deletions(-) diff --git a/browserid/static/dialog/resources/validation.js b/browserid/static/dialog/resources/validation.js index 12b3d5c0d..371f60e4c 100644 --- a/browserid/static/dialog/resources/validation.js +++ b/browserid/static/dialog/resources/validation.js @@ -31,10 +31,48 @@ BrowserID.Validation = (function() { var valid = validateEmail(email); if (valid) { - if (!password) { - tooltip.showTooltip("#password_required"); - valid = false; - } + valid = passwordExists(password); + } + + return valid; + } + + function passwordExists(password) { + var valid = !!password; + + if (!valid) { + tooltip.showTooltip("#password_required"); + } + + return valid; + } + + function passwordLength(password) { + var valid = password && (password.length >= 8); + + if(!valid) { + tooltip.showTooltip("#password_too_short"); + } + + return valid; + } + + function validationPasswordExists(vpass) { + var valid = !!vpass; + + if(!valid) { + tooltip.showTooltip("#vpassword_required"); + } + + return valid; + } + + function passwordAndValidationPassword(pass, vpass) { + var valid = passwordExists(pass) && passwordLength(pass) && validationPasswordExists(vpass); + + if (valid && pass !== vpass) { + valid = false; + tooltip.showTooltip("#passwords_no_match"); } return valid; @@ -42,7 +80,8 @@ BrowserID.Validation = (function() { return { email: validateEmail, - emailAndPassword: validateEmailAndPassword + emailAndPassword: validateEmailAndPassword, + passwordAndValidationPassword: passwordAndValidationPassword }; }()); diff --git a/browserid/static/dialog/test/qunit/validation_unit_test.js b/browserid/static/dialog/test/qunit/validation_unit_test.js index 380c6d1b1..5a0be014f 100644 --- a/browserid/static/dialog/test/qunit/validation_unit_test.js +++ b/browserid/static/dialog/test/qunit/validation_unit_test.js @@ -138,6 +138,44 @@ steal.plugins("jquery", "funcunit/qunit").then("/dialog/resources/browserid", fu equal(tooltipShown, true, "empty password shows tooltip"); }); + + test("passwordAndValidationPassword with empty password", function() { + var valid = validation.passwordAndValidationPassword("", "password"); + + equal(valid, false, "empty password is invalid"); + equal(tooltipShown, true, "empty password shows tooltip"); + }); + + + test("passwordAndValidationPassword with too short password", function() { + var valid = validation.passwordAndValidationPassword("pass", "password"); + + equal(valid, false, "too short password is invalid"); + equal(tooltipShown, true, "too short password shows tooltip"); + }); + + test("passwordAndValidationPassword with empty validation password", function() { + var valid = validation.passwordAndValidationPassword("password", ""); + + equal(valid, false, "empty validation password is invalid"); + equal(tooltipShown, true, "empty validation password shows tooltip"); + }); + + + test("passwordAndValidationPassword with different validation password", function() { + var valid = validation.passwordAndValidationPassword("password", "pass"); + + equal(valid, false, "different password is invalid"); + equal(tooltipShown, true, "different password shows tooltip"); + }); + + test("passwordAndValidationPassword all valid", function() { + var valid = validation.passwordAndValidationPassword("password", "password"); + + equal(valid, true, "passwords valid"); + equal(tooltipShown, false, "tooltip not shown"); + }); + }); diff --git a/browserid/static/js/pages/verify_email_address.js b/browserid/static/js/pages/verify_email_address.js index d43556140..07642d077 100644 --- a/browserid/static/js/pages/verify_email_address.js +++ b/browserid/static/js/pages/verify_email_address.js @@ -45,37 +45,14 @@ $("#signUpForm").remove(); } - function validate(pass, vpass) { - var valid = false; - - if(!pass) { - tooltip.showTooltip("#password_required"); - } - else if(pass.length < 8) { - tooltip.showTooltip("#password_too_short"); - } - else if(!vpass) { - tooltip.showTooltip("#vpassword_required"); - } - else if(pass !== vpass) { - tooltip.showTooltip("#passwords_no_match"); - } - else { - valid = true; - } - - return valid; - } - bid.verifyEmailAddress = function(token) { $("#signUpForm").submit(function(event) { event.preventDefault(); - var email = $("#email").val(), - pass = $("#password").val(), + var pass = $("#password").val(), vpass = $("#vpassword").val(); - var valid = validate(pass, vpass); + var valid = bid.Validation.passwordAndValidationPassword(pass, vpass); if (valid) { bid.Network.completeUserRegistration(token, pass, function onSuccess(registered) { -- GitLab