Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: appengine/monorail/framework/test/validate_test.py

Issue 1868553004: Open Source Monorail (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Rebase Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is govered by a BSD-style
3 # license that can be found in the LICENSE file or at
4 # https://developers.google.com/open-source/licenses/bsd
5
6 """This file provides unit tests for Validate functions."""
7
8 import unittest
9
10 from framework import validate
11
12
13 class ValidateUnitTest(unittest.TestCase):
14 """Set of unit tests for validation functions."""
15
16 GOOD_EMAIL_ADDRESSES = [
17 'user@example.com',
18 'user@e.com',
19 'user+tag@example.com',
20 'u.ser@example.com',
21 'us.er@example.com',
22 'u.s.e.r@example.com',
23 'user@ex-ample.com',
24 'user@ex.ample.com',
25 'user@e.x.ample.com',
26 'user@exampl.e.com',
27 'user@e-x-ample.com',
28 'user@e-x-a-m-p-l-e.com',
29 'user@e-x.am-ple.com',
30 'user@e--xample.com',
31 ]
32
33 BAD_EMAIL_ADDRESSES = [
34 ' leading.whitespace@example.com',
35 'trailing.whitespace@example.com ',
36 '(paren.quoted@example.com)',
37 '<angle.quoted@example.com>',
38 'trailing.@example.com',
39 'trailing.dot.@example.com',
40 '.leading@example.com',
41 '.leading.dot@example.com',
42 'user@example.com.',
43 'us..er@example.com',
44 'user@ex..ample.com',
45 'user@example..com',
46 'user@ex-.ample.com',
47 'user@-example.com',
48 'user@.example.com',
49 'user@example-.com',
50 'user@example',
51 'user@example.',
52 'user@example.c',
53 'user@example.comcomcomc',
54 'user@example.co-m',
55 'user@exa_mple.com',
56 'user@exa-_mple.com',
57 'user@example.c0m',
58 ]
59
60 def testIsValidEmail(self):
61 """Tests the Email validator class."""
62 for email in self.GOOD_EMAIL_ADDRESSES:
63 self.assertTrue(validate.IsValidEmail(email), msg='Rejected:%r' % email)
64
65 for email in self.BAD_EMAIL_ADDRESSES:
66 self.assertFalse(validate.IsValidEmail(email), msg='Accepted:%r' % email)
67
68 def testIsValidMailTo(self):
69 for email in self.GOOD_EMAIL_ADDRESSES:
70 self.assertTrue(
71 validate.IsValidMailTo('mailto:' + email),
72 msg='Rejected:%r' % ('mailto:' + email))
73
74 for email in self.BAD_EMAIL_ADDRESSES:
75 self.assertFalse(
76 validate.IsValidMailTo('mailto:' + email),
77 msg='Accepted:%r' % ('mailto:' + email))
78
79 GOOD_URLS = [
80 'http://google.com',
81 'http://maps.google.com/',
82 'https://secure.protocol.com',
83 'https://dash-domain.com',
84 'http://www.google.com/search?q=foo&hl=en',
85 'https://a.very.long.domain.name.net/with/a/long/path/inf0/too',
86 'http://funny.ws/',
87 'http://we.love.anchors.info/page.html#anchor',
88 'http://redundant-slashes.com//in/path//info',
89 'http://trailingslashe.com/in/path/info/',
90 'http://domain.with.port.com:8080',
91 'http://domain.with.port.com:8080/path/info',
92 'ftp://ftp.gnu.org',
93 'ftp://some.server.some.place.com'
94 ]
95
96 BAD_URLS = [
97 ' http://leading.whitespace.com',
98 'http://trailing.domain.whitespace.com ',
99 'http://trailing.whitespace.com/after/path/info ',
100 'http://no-tld/',
101 'http://underscore_domain.com/',
102 'http://space in domain.com',
103 'http://user@example.com', # standard, but we purposely don't accept it.
104 'http://user:pass@ex.com', # standard, but we purposely don't accept it.
105 'http://:password@ex.com', # standard, but we purposely don't accept it.
106 'missing-http.com',
107 'http:missing-slashes.com',
108 'http:/only-one-slash.com',
109 'http://bad-tld.c0m',
110 'http://bad-tld.c',
111 'http://trailing.dot.',
112 'mailto:bad.scheme',
113 'javascript:attempt-to-inject',
114 'http://:8080/',
115 'http://badport.com:808a0/ ',
116 ]
117
118 def testURL(self):
119 for url in self.GOOD_URLS:
120 self.assertTrue(validate.IsValidURL(url), msg='Rejected:%r' % url)
121
122 for url in self.BAD_URLS:
123 self.assertFalse(validate.IsValidURL(url), msg='Accepted:%r' % url)
124
125
126 if __name__ == '__main__':
127 unittest.main()
OLDNEW
« no previous file with comments | « appengine/monorail/framework/test/timestr_test.py ('k') | appengine/monorail/framework/test/xsrf_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698