mirror of
https://github.com/discourse/discourse.git
synced 2025-09-06 10:50:21 +08:00
We validate the *format* of email addresses in many places with a match against a regex, often with very slightly different syntax. Adding a separate EmailAddressValidator simplifies the code in a few spots and feels cleaner. Deprecated the old location in case someone is using it in a plugin. No functionality change is in this commit. Note: the regex used at the moment does not support using address literals, e.g.: * localpart@[192.168.0.1] * localpart@[2001:db8::1]
17 lines
601 B
Ruby
17 lines
601 B
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
describe EmailAddressValidator do
|
|
it 'should match valid emails' do
|
|
['test@discourse.org', 'good_user@discourse.org', 'incoming+%{reply_key}@discourse.org'].each do |email|
|
|
expect(EmailAddressValidator.valid_value?(email)).to eq(true)
|
|
end
|
|
end
|
|
|
|
it 'should not match invalid emails' do
|
|
['testdiscourse.org', 'frank@invalid_host.contoso.com', 'frank@invalid_host.com', 'test@discourse.org; a@discourse.org', 'random', ''].each do |email|
|
|
expect(EmailAddressValidator.valid_value?(email)).to eq(false)
|
|
end
|
|
end
|
|
end
|