diff options
-rw-r--r-- | web-ui/app/js/mail_view/ui/recipients/recipients_input.js | 4 | ||||
-rw-r--r-- | web-ui/test/spec/mail_view/ui/recipients/recipients_input.spec.js | 18 |
2 files changed, 18 insertions, 4 deletions
diff --git a/web-ui/app/js/mail_view/ui/recipients/recipients_input.js b/web-ui/app/js/mail_view/ui/recipients/recipients_input.js index 7cbdad39..db0b10f7 100644 --- a/web-ui/app/js/mail_view/ui/recipients/recipients_input.js +++ b/web-ui/app/js/mail_view/ui/recipients/recipients_input.js @@ -41,8 +41,8 @@ define([ }, self; - var simpleAddressMatch = /[^<\w,;]?([^\s<;,]+@\w+\.[^\s>;,]+)/; - var canonicalAddressMatch = /([^,;\s][^,;@]+<[^\s;,]+@\w+\.[^\s;,]+>)/; + var simpleAddressMatch = /[^<\w,;]?([^\s<;,]+@[\w-]+\.[^\s>;,]+)/; + var canonicalAddressMatch = /([^,;\s][^,;@]+<[^\s;,]+@[\w-]+\.[^\s;,]+>)/; var emailAddressMatch = new RegExp([simpleAddressMatch.source, '|', canonicalAddressMatch.source].join(''), 'g'); var extractContactNames = function (response) { diff --git a/web-ui/test/spec/mail_view/ui/recipients/recipients_input.spec.js b/web-ui/test/spec/mail_view/ui/recipients/recipients_input.spec.js index 6fdf9711..829bf890 100644 --- a/web-ui/test/spec/mail_view/ui/recipients/recipients_input.spec.js +++ b/web-ui/test/spec/mail_view/ui/recipients/recipients_input.spec.js @@ -144,7 +144,7 @@ describeComponent('mail_view/ui/recipients/recipients_input',function () { }); }); - describe('when entering an invalid address', function() { + describe('validate email format', function() { var invalidAddressEnteredEvent, addressEnteredEvent, blurEvent; beforeEach(function () { @@ -187,6 +187,20 @@ describeComponent('mail_view/ui/recipients/recipients_input',function () { expect(invalidAddressEnteredEvent.calls[0].data).toEqual({name: 'to', address: 'Invalid <email@example>'}); }); + it('parses email with dash' , function() { + this.$node.val('team@pixelated-project.org'); + this.$node.trigger(blurEvent); - }); + expect(blurEvent.preventDefault).toHaveBeenCalled(); + expect(addressEnteredEvent.calls[0].data).toEqual({name: 'to', address: 'team@pixelated-project.org'}); + }); + + it('parses cannonical email with dash' , function() { + this.$node.val('Pixelated <team@pixelated-project.org>'); + this.$node.trigger(blurEvent); + + expect(blurEvent.preventDefault).toHaveBeenCalled(); + expect(addressEnteredEvent.calls[0].data).toEqual({name: 'to', address: 'Pixelated <team@pixelated-project.org>'}); + }); + }); }); |