Skip to content

Commit

Permalink
Add unittest case
Browse files Browse the repository at this point in the history
  • Loading branch information
alexazhou committed Aug 27, 2016
1 parent 58f612c commit 936bcf7
Show file tree
Hide file tree
Showing 3 changed files with 340 additions and 0 deletions.
Empty file.
190 changes: 190 additions & 0 deletions test/testcase/a_5_matcher_refer/case.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
import base_case
import requests
import os

class Case(base_case.Base_Case):
def __init__(self, *args, **kwargs):
super(Case, self).__init__(*args, **kwargs)
self.desc = "test matcher with multiform condition of referer"
self.vn_conf_dir = os.path.dirname(os.path.abspath(__file__))

def test_referer_equal(self):
r = requests.get('http://127.0.0.1/test_referer_equal',headers={'Referer':'vntestflag'})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_equal',headers={'Referer':'vntestflag1'})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_equal',headers={'Referer':'otherflag'})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_equal',headers={'Referer':''})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_equal',headers={'Referer':None})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

def test_referer_not_equal(self):
r = requests.get('http://127.0.0.1/test_referer_not_equal',headers={'Referer':'otherflag'})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_not_equal',headers={'Referer':'vntestflagz'})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_not_equal',headers={'Referer':''})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_not_equal',headers={'Referer':None})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_not_equal',headers={'Referer':'vntestflag'})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

def test_referer_match(self):
r = requests.get('http://127.0.0.1/test_referer_match',headers={'Referer':'aaatestbbb'})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_match',headers={'Referer':'aaaotherbbb'})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_match',headers={'Referer':'aaazestbbb'})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_match',headers={'Referer':''})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_match',headers={'Referer':None})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

def test_referer_not_match(self):
r = requests.get('http://127.0.0.1/test_referer_not_match',headers={'Referer':'aaaotherbbb'})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_not_match',headers={'Referer':'aaazestbbb'})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_not_match',headers={'Referer':''})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_not_match',headers={'Referer':None})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_not_match',headers={'Referer':'aaatestbbb'})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

def test_referer_existed(self):
r = requests.get('http://127.0.0.1/test_referer_existed',headers={'Referer':'aaatestbbb'})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_existed',headers={'Referer':'aaaotherbbb'})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_existed',headers={'Referer':''})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_existed',headers={'Referer':None})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

def test_referer_not_existed(self):
r = requests.get('http://127.0.0.1/test_referer_not_existed',headers={'Referer':None})
assert r.status_code == 400
assert r.headers.get('content-type') == 'text/html'
assert 'hited' in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_not_existed',headers={'Referer':'aaatestbbb'})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_not_existed',headers={'Referer':'aaaotherbbb'})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()

r = requests.get('http://127.0.0.1/test_referer_not_existed',headers={'Referer':''})
assert r.status_code == 404
assert r.headers.get('content-type') == 'text/html'
assert 'hited' not in r.text
self.check_ngx_stderr()







150 changes: 150 additions & 0 deletions test/testcase/a_5_matcher_refer/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
{
"redirect_rule":[],
"filter_rule":[{
"enable":true,
"code":"400",
"response":"hit",
"matcher":"referer_equal",
"custom_response":true,
"action":"block"
},{
"enable":true,
"code":"400",
"response":"hit",
"matcher":"referer_not_equal",
"custom_response":true,
"action":"block"
},{
"enable":true,
"code":"400",
"response":"hit",
"matcher":"referer_match",
"custom_response":true,
"action":"block"
},{
"enable":true,
"code":"400",
"response":"hit",
"matcher":"referer_not_match",
"custom_response":true,
"action":"block"
},{
"enable":true,
"code":"400",
"response":"hit",
"matcher":"referer_existed",
"custom_response":true,
"action":"block"
},{
"enable":true,
"code":"400",
"response":"hit",
"matcher":"referer_not_existed",
"custom_response":true,
"action":"block"
}],
"config_version":"0.36",
"static_file_rule":[],
"proxy_pass_rule":[],
"summary_collect_rule":[],
"summary_group_persistent_enable":true,
"admin":[{
"user":"verynginx",
"password":"verynginx",
"enable":true
}],
"dashboard_host":"",
"response":{
"hit":{
"content_type":"text/html",
"body":"hited"
},
"didn'thit":{
"content_type":"text/html",
"body":"didn't hited"
}
},
"scheme_lock_enable":true,
"uri_rewrite_rule":[],
"cookie_prefix":"verynginx",
"filter_enable":true,
"browser_verify_enable":true,
"scheme_lock_rule":[],
"redirect_enable":true,
"backend_upstream":{
},
"frequency_limit_enable":true,
"matcher":{
"referer_equal":{
"URI":{
"value":"/test_referer_equal",
"operator":"="
},
"Referer":{
"value":"vntestflag",
"operator":"="
}
},
"referer_not_existed":{
"URI":{
"value":"/test_referer_not_existed",
"operator":"="
},
"Referer":{
"operator":"!Exist"
}
},
"referer_existed":{
"URI":{
"value":"/test_referer_existed",
"operator":"="
},
"Referer":{
"operator":"Exist"
}
},
"all_request":{
},
"referer_match":{
"URI":{
"value":"/test_referer_match",
"operator":"="
},
"Referer":{
"value":".*test.*",
"operator":""
}
},
"referer_not_equal":{
"URI":{
"value":"/test_referer_not_equal",
"operator":"="
},
"Referer":{
"value":"vntestflag",
"operator":"!="
}
},
"referer_not_match":{
"URI":{
"value":"/test_referer_not_match",
"operator":"="
},
"Referer":{
"value":".*test.*",
"operator":"!≈"
}
}
},
"static_file_enable":true,
"summary_temporary_period":60,
"summary_group_temporary_enable":true,
"summary_with_host":false,
"frequency_limit_rule":[],
"uri_rewrite_enable":true,
"base_uri":"/verynginx",
"summary_request_enable":true,
"proxy_pass_enable":true,
"readonly":false,
"browser_verify_rule":[]
}

0 comments on commit 936bcf7

Please sign in to comment.