Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0abac72

Browse files
authored
Merge pull request #172 from nobu/more-checks-in-email_regexp
More checks in `EMAIL_REGEXP`
2 parents 788274b + 3233592 commit 0abac72

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed

lib/uri/mailto.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class MailTo < Generic
5252
HEADER_REGEXP = /\A(?<hfield>(?:%\h\h|[!$'-.0-;@-Z_a-z~])*=(?:%\h\h|[!$'-.0-;@-Z_a-z~])*)(?:&\g<hfield>)*\z/
5353
# practical regexp for email address
5454
# https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
55-
EMAIL_REGEXP = /\A(?!\.)[a-zA-Z0-9.!\#$%&'*+\/=?^_`{|}~-]+(?<!\.)@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\z/
55+
EMAIL_REGEXP = /\A(?!\.)(?!.*\.{2})[a-zA-Z0-9.!\#$%&'*+\/=?^_`{|}~-]+(?<!\.)@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\z/
5656
# :startdoc:
5757

5858
#

test/uri/test_mailto.rb

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,49 @@ def test_check_to
165165
assert_raise(URI::InvalidComponentError) do
166166
167167
end
168+
169+
assert_raise(URI::InvalidComponentError) do
170+
171+
end
172+
173+
# Invalid host emails
174+
assert_raise(URI::InvalidComponentError) do
175+
176+
end
177+
178+
assert_raise(URI::InvalidComponentError) do
179+
180+
end
181+
182+
assert_raise(URI::InvalidComponentError) do
183+
184+
end
185+
186+
assert_raise(URI::InvalidComponentError) do
187+
188+
end
189+
190+
assert_raise(URI::InvalidComponentError) do
191+
192+
end
193+
194+
assert_raise(URI::InvalidComponentError) do
195+
196+
end
197+
198+
assert_raise(URI::InvalidComponentError) do
199+
200+
end
201+
202+
u.to = 'a@'+'invalid'.ljust(63, 'd')+'.email'
203+
assert_raise(URI::InvalidComponentError) do
204+
u.to = 'a@'+'invalid'.ljust(64, 'd')+'.email'
205+
end
206+
207+
u.to = 'a@invalid.'+'email'.rjust(63, 'e')
208+
assert_raise(URI::InvalidComponentError) do
209+
u.to = 'a@invalid.'+'email'.rjust(64, 'e')
210+
end
168211
end
169212

170213
def test_to_s

0 commit comments

Comments
 (0)