mirror of
https://github.com/mirror/wget.git
synced 2025-02-05 01:01:00 +08:00
Add tests for Cookie support
This commit is contained in:
parent
4c9e6b4f71
commit
b6f9efe7b5
@ -1,3 +1,16 @@
|
||||
2013-09-06 Darshit Shah <darnir@gmail.com>
|
||||
|
||||
* HTTPServer.py (WgetHTTPRequestHandler.test_cookies): Comment out the
|
||||
old test_cookies code. This is no longer used and was causing problems
|
||||
with expected cookies. The code will soon be removed anyways
|
||||
* Test-cookie.py: Add new test for basic cookie functionality
|
||||
* Test-cookie-401.py: Ensure cookies are saved during a 401 response
|
||||
* Test-cookie-expires.py: Ensure that the Expires field is correctly
|
||||
handled
|
||||
* Test-cookies-domain-mismatch.py: Ensure that mismatched domains are
|
||||
handled by Wget
|
||||
* Makefile.am: Add the new tests
|
||||
|
||||
2013-09-06 Darshit Shah <darnir@gmail.com>
|
||||
|
||||
* README: New section on pending work. Will keep updating this to keep
|
||||
|
@ -58,6 +58,8 @@ class WgetHTTPRequestHandler (BaseHTTPRequestHandler):
|
||||
]
|
||||
|
||||
def test_cookies (self):
|
||||
pass
|
||||
"""
|
||||
cookie_recd = self.headers.get ('Cookie')
|
||||
cookies = self.get_rule_list ('Cookie')
|
||||
cookie_exp = cookies.cookie_value if cookies else None
|
||||
@ -67,6 +69,7 @@ class WgetHTTPRequestHandler (BaseHTTPRequestHandler):
|
||||
self.send_response (400, "Cookie Mismatch")
|
||||
self.finish_headers ()
|
||||
return False
|
||||
"""
|
||||
|
||||
def get_rule_list (self, name):
|
||||
r_list = self.rules.get (name) if name in self.rules else None
|
||||
|
@ -39,6 +39,10 @@ TESTS = Test-auth-basic-fail.py \
|
||||
Test-c-full.py \
|
||||
Test-Content-disposition-2.py \
|
||||
Test-Content-disposition.py \
|
||||
Test-cookie-401.py \
|
||||
Test-cookie-domain-mismatch.py \
|
||||
Test-cookie-expires.py \
|
||||
Test-cookie.py \
|
||||
Test-Head.py \
|
||||
Test-O.py
|
||||
|
||||
|
58
testenv/Test-cookie-401.py
Executable file
58
testenv/Test-cookie-401.py
Executable file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python3
|
||||
from sys import exit
|
||||
from WgetTest import HTTPTest, WgetFile
|
||||
|
||||
"""
|
||||
This test ensures that Wget stores the cookie even in the event of a
|
||||
401 Unauthorized Response
|
||||
"""
|
||||
TEST_NAME = "Basic Cookie 401 Response"
|
||||
############# File Definitions ###############################################
|
||||
File1 = """All happy families are alike;
|
||||
Each unhappy family is unhappy in its own way"""
|
||||
File2 = "Anyone for chocochip cookies?"
|
||||
|
||||
File1_rules = {
|
||||
"SendHeader" : {
|
||||
"Set-Cookie" : "sess-id=0213; path=/"
|
||||
},
|
||||
"Response" : 401
|
||||
}
|
||||
File2_rules = {
|
||||
"ExpectHeader" : {
|
||||
"Cookie" : "sess-id=0213"
|
||||
},
|
||||
}
|
||||
|
||||
A_File = WgetFile ("File1", File1, rules=File1_rules)
|
||||
B_File = WgetFile ("File2", File2, rules=File2_rules)
|
||||
|
||||
WGET_OPTIONS = "-d"
|
||||
WGET_URLS = ["File1", "File2"]
|
||||
|
||||
Files = [A_File, B_File]
|
||||
|
||||
ExpectedReturnCode = 6
|
||||
ExpectedDownloadedFiles = [B_File]
|
||||
|
||||
################ Pre and Post Test Hooks #####################################
|
||||
pre_test = {
|
||||
"ServerFiles" : Files
|
||||
}
|
||||
test_options = {
|
||||
"WgetCommands" : WGET_OPTIONS,
|
||||
"Urls" : WGET_URLS
|
||||
}
|
||||
post_test = {
|
||||
"ExpectedFiles" : ExpectedDownloadedFiles,
|
||||
"ExpectedRetcode" : ExpectedReturnCode
|
||||
}
|
||||
|
||||
err = HTTPTest (
|
||||
name=TEST_NAME,
|
||||
pre_hook=pre_test,
|
||||
test_params=test_options,
|
||||
post_hook=post_test
|
||||
).begin ()
|
||||
|
||||
exit (err)
|
56
testenv/Test-cookie-domain-mismatch.py
Executable file
56
testenv/Test-cookie-domain-mismatch.py
Executable file
@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env python3
|
||||
from sys import exit
|
||||
from WgetTest import HTTPTest, WgetFile
|
||||
|
||||
"""
|
||||
This test ensures that Wget identifies bad servers trying to set cookies
|
||||
for a different domain and rejects them.
|
||||
"""
|
||||
TEST_NAME = "Cookie Domain Mismatch"
|
||||
############# File Definitions ###############################################
|
||||
File1 = "Would you care for a cup of coffee?"
|
||||
File2 = "Anyone for chocochip cookies?"
|
||||
|
||||
File1_rules = {
|
||||
"SendHeader" : {
|
||||
"Set-Cookie" : "sess-id=0213; path=/; domain=.example.com"
|
||||
}
|
||||
}
|
||||
File2_rules = {
|
||||
"RejectHeader" : {
|
||||
"Cookie" : "sess-id=0213"
|
||||
}
|
||||
}
|
||||
|
||||
A_File = WgetFile ("File1", File1, rules=File1_rules)
|
||||
B_File = WgetFile ("File2", File2, rules=File2_rules)
|
||||
|
||||
WGET_OPTIONS = "-d"
|
||||
WGET_URLS = ["File1", "File2"]
|
||||
|
||||
Files = [A_File, B_File]
|
||||
|
||||
ExpectedReturnCode = 0
|
||||
ExpectedDownloadedFiles = [A_File, B_File]
|
||||
|
||||
################ Pre and Post Test Hooks #####################################
|
||||
pre_test = {
|
||||
"ServerFiles" : Files
|
||||
}
|
||||
test_options = {
|
||||
"WgetCommands" : WGET_OPTIONS,
|
||||
"Urls" : WGET_URLS
|
||||
}
|
||||
post_test = {
|
||||
"ExpectedFiles" : ExpectedDownloadedFiles,
|
||||
"ExpectedRetcode" : ExpectedReturnCode
|
||||
}
|
||||
|
||||
err = HTTPTest (
|
||||
name=TEST_NAME,
|
||||
pre_hook=pre_test,
|
||||
test_params=test_options,
|
||||
post_hook=post_test
|
||||
).begin ()
|
||||
|
||||
exit (err)
|
79
testenv/Test-cookie-expires.py
Executable file
79
testenv/Test-cookie-expires.py
Executable file
@ -0,0 +1,79 @@
|
||||
#!/usr/bin/env python3
|
||||
from sys import exit
|
||||
from WgetTest import HTTPTest, WgetFile
|
||||
|
||||
"""
|
||||
This test ensures that Wget handles Cookie expiry dates correctly.
|
||||
Simultaneuously, we also check if multiple cookies to the same domain
|
||||
are handled correctly
|
||||
"""
|
||||
TEST_NAME = "Cookie Expires"
|
||||
############# File Definitions ###############################################
|
||||
File1 = "Hello World!"
|
||||
File2 = "'Ello! This is Amazing!"
|
||||
File3 = "So what are we looking at?"
|
||||
File4 = "This was downloaded"
|
||||
|
||||
File1_rules = {
|
||||
"SendHeader" : {
|
||||
"Set-Cookie" : "sess-id=0213; path=/"
|
||||
}
|
||||
}
|
||||
File2_rules = {
|
||||
"ExpectHeader" : {
|
||||
"Cookie" : "sess-id=0213"
|
||||
},
|
||||
"SendHeader" : {
|
||||
"Set-Cookie" : "new-sess=N"
|
||||
}
|
||||
}
|
||||
File3_rules = {
|
||||
"SendHeader" : {
|
||||
"Set-Cookie" : "sess-id=0213; path=/; Expires=Sun, 06 Nov 2001 12:32:43 GMT"
|
||||
},
|
||||
"ExpectHeader" : {
|
||||
"Cookie" : "new-sess=N; sess-id=0213"
|
||||
}
|
||||
}
|
||||
File4_rules = {
|
||||
"RejectHeader" : {
|
||||
"Cookie" : "sess-id=0213"
|
||||
},
|
||||
"ExpectHeader" : {
|
||||
"Cookie" : "new-sess=N"
|
||||
}
|
||||
}
|
||||
A_File = WgetFile ("File1", File1, rules=File1_rules)
|
||||
B_File = WgetFile ("File2", File2, rules=File2_rules)
|
||||
C_File = WgetFile ("File3", File3, rules=File3_rules)
|
||||
D_File = WgetFile ("File4", File4, rules=File4_rules)
|
||||
|
||||
WGET_OPTIONS = "-d"
|
||||
WGET_URLS = ["File1", "File2", "File3", "File4"]
|
||||
|
||||
Files = [A_File, B_File, C_File, D_File]
|
||||
|
||||
ExpectedReturnCode = 0
|
||||
ExpectedDownloadedFiles = [A_File, B_File, C_File, D_File]
|
||||
|
||||
################ Pre and Post Test Hooks #####################################
|
||||
pre_test = {
|
||||
"ServerFiles" : Files
|
||||
}
|
||||
test_options = {
|
||||
"WgetCommands" : WGET_OPTIONS,
|
||||
"Urls" : WGET_URLS
|
||||
}
|
||||
post_test = {
|
||||
"ExpectedFiles" : ExpectedDownloadedFiles,
|
||||
"ExpectedRetcode" : ExpectedReturnCode
|
||||
}
|
||||
|
||||
err = HTTPTest (
|
||||
name=TEST_NAME,
|
||||
pre_hook=pre_test,
|
||||
test_params=test_options,
|
||||
post_hook=post_test
|
||||
).begin ()
|
||||
|
||||
exit (err)
|
56
testenv/Test-cookie.py
Executable file
56
testenv/Test-cookie.py
Executable file
@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env python3
|
||||
from sys import exit
|
||||
from WgetTest import HTTPTest, WgetFile
|
||||
|
||||
"""
|
||||
This test ensures that Wget's cookie jar support works correctly.
|
||||
"""
|
||||
TEST_NAME = "Basic Cookie Functionality"
|
||||
############# File Definitions ###############################################
|
||||
File1 = """All happy families are alike;
|
||||
Each unhappy family is unhappy in its own way"""
|
||||
File2 = "Anyone for chocochip cookies?"
|
||||
|
||||
File1_rules = {
|
||||
"SendHeader" : {
|
||||
"Set-Cookie" : "sess-id=0213; path=/"
|
||||
}
|
||||
}
|
||||
File2_rules = {
|
||||
"ExpectHeader" : {
|
||||
"Cookie" : "sess-id=0213"
|
||||
}
|
||||
}
|
||||
|
||||
A_File = WgetFile ("File1", File1, rules=File1_rules)
|
||||
B_File = WgetFile ("File2", File2, rules=File2_rules)
|
||||
|
||||
WGET_OPTIONS = "-d"
|
||||
WGET_URLS = ["File1", "File2"]
|
||||
|
||||
Files = [A_File, B_File]
|
||||
|
||||
ExpectedReturnCode = 0
|
||||
ExpectedDownloadedFiles = [A_File, B_File]
|
||||
|
||||
################ Pre and Post Test Hooks #####################################
|
||||
pre_test = {
|
||||
"ServerFiles" : Files
|
||||
}
|
||||
test_options = {
|
||||
"WgetCommands" : WGET_OPTIONS,
|
||||
"Urls" : WGET_URLS
|
||||
}
|
||||
post_test = {
|
||||
"ExpectedFiles" : ExpectedDownloadedFiles,
|
||||
"ExpectedRetcode" : ExpectedReturnCode
|
||||
}
|
||||
|
||||
err = HTTPTest (
|
||||
name=TEST_NAME,
|
||||
pre_hook=pre_test,
|
||||
test_params=test_options,
|
||||
post_hook=post_test
|
||||
).begin ()
|
||||
|
||||
exit (err)
|
Loading…
Reference in New Issue
Block a user