forked from caylan/403Section
-
Notifications
You must be signed in to change notification settings - Fork 0
/
url_validator_test.py
67 lines (58 loc) · 1.66 KB
/
url_validator_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
import url_validator
suite = unittest.TestSuite()
tests1 = [
(False, "http://:@example.com/"),
(False, "http://@example.com/"),
(True, "http://example.com"),
(False, "HTTP://example.com/"),
(True, "http://EXAMPLE.COM/"),
(True, "http://example.com/%7Ejane"),
(True, "http://example.com/?q=%C7"),
(True, "http://example.com/?q=%5c"),
(True, "http://example.com/?q=C%CC%A7"),
(True, "http://example.com/a/../a/b"),
(True, "http://example.com/a/./b"),
(True, "http://example.com:80/"),
(True, "http://www.google.com/"),
(False, "www.google.com"),
(True, "https://mail.google.com/"),
(False, "//////"),
(True, "mailto:aaa@aaa.com"),
(False, "http:aaa@aaa.com"),
(False, ""),
(False, "http://"),
(False, "http://."),
(False, "http://.."),
(False, "http://../"),
(False, "http://?"),
(False, "http://??"),
(False, "http://??/"),
(False, "http://#"),
(False, "http://##"),
(False, "http://##/"),
(False, "//"),
(False, "//a"),
(False, "///a"),
(False, "///"),
(False, "http:///a"),
(False, "foo.com"),
(False, "rdar://1234"),
(False, "h://test"),
(False, "http:// shouldfail.com"),
(False, ":// should fail"),
]
def testcase1(expected, value):
class test(unittest.TestCase):
def runTest(self):
assert url_validator.is_valid(value) == expected
return test()
for (expected, value) in tests1:
suite.addTest(testcase1(expected, value))
def run_test():
""" execute tests """
unittest.TextTestRunner().run(suite)
if __name__ == "__main__":
run_test()