From ca86480d18279a59a6b269c8d81d1816b45e20f0 Mon Sep 17 00:00:00 2001 From: Aaron Cois Date: Mon, 19 Aug 2013 21:12:49 -0400 Subject: [PATCH] fixing bug in email validation regex and updating tests fixes #3546 --- lib/validate.js | 2 +- tests/email-validation-test.js | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/validate.js b/lib/validate.js index 9ea2deddc..12e7d1cbb 100644 --- a/lib/validate.js +++ b/lib/validate.js @@ -19,7 +19,7 @@ check = require('validator').check; var hostnameRegex = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$|^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/; // HTML5 email regex from: http://blog.gerv.net/2011/05/html5_email_address_regexp/ -var emailRegex = /^[a-zA-Z0-9.!#$%&'*+\/=?\^_`{|}~\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9]{0,253}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9]{0,253}[a-zA-Z0-9])?)*$/; +var emailRegex = /^[a-zA-Z0-9.!#$%&'*+\/=?\^_`{|}~\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9\-]{0,253}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9]{0,253}[a-zA-Z0-9])?)*$/; var types = { email: function(x) { diff --git a/tests/email-validation-test.js b/tests/email-validation-test.js index 3319416c7..a8683bb0a 100644 --- a/tests/email-validation-test.js +++ b/tests/email-validation-test.js @@ -28,6 +28,7 @@ var validEmail4 = 'my.test@test.com'; var invalidEmail1 = 'test@-test.com'; var invalidEmail2 = 'test@'; var invalidEmail3 = 'test@.org'; +var invalidEmail4 = 'test-foo@test-foo.test-test.com'; suite.addBatch({ "Testing first valid email address": { @@ -85,6 +86,14 @@ suite.addBatch({ "returns 400": function(err, r) { assert.strictEqual(r.code, 400); } + }, + "Testing fourth invalid email address": { + topic: wsapi.get('/wsapi/address_info', { + email: invalidEmail4 + }), + "returns 400": function(err, r) { + assert.strictEqual(r.code, 400); + } } });