mirror of
https://github.com/vlang/v.git
synced 2025-09-16 16:02:29 +03:00
vlib: make ./v -Wimpure-v -W test vlib/
pass on Linux (#21554)
This commit is contained in:
parent
373b91cd68
commit
dbc6b50cda
46 changed files with 11278 additions and 222 deletions
|
@ -45,19 +45,15 @@ fn test_protect() {
|
|||
// get cookie value from "name=value;"
|
||||
cookie = cookie.split(' ')[0].all_after('=').replace(';', '')
|
||||
|
||||
form := {
|
||||
csrf_config.token_name: token
|
||||
}
|
||||
cookie_map := {
|
||||
csrf_config.cookie_name: cookie
|
||||
}
|
||||
ctx = veb.Context{
|
||||
form: form
|
||||
form: {
|
||||
csrf_config.token_name: token
|
||||
}
|
||||
req: http.Request{
|
||||
method: .post
|
||||
cookies: cookie_map
|
||||
}
|
||||
}
|
||||
ctx.req.add_cookie(name: csrf_config.cookie_name, value: cookie)
|
||||
valid := csrf.protect(mut ctx, csrf_config)
|
||||
|
||||
assert valid == true
|
||||
|
@ -82,19 +78,15 @@ fn test_timeout() {
|
|||
// get cookie value from "name=value;"
|
||||
cookie = cookie.split(' ')[0].all_after('=').replace(';', '')
|
||||
|
||||
form := {
|
||||
short_time_config.token_name: token
|
||||
}
|
||||
cookie_map := {
|
||||
short_time_config.cookie_name: cookie
|
||||
}
|
||||
ctx = veb.Context{
|
||||
form: form
|
||||
form: {
|
||||
short_time_config.token_name: token
|
||||
}
|
||||
req: http.Request{
|
||||
method: .post
|
||||
cookies: cookie_map
|
||||
}
|
||||
}
|
||||
ctx.req.add_cookie(name: short_time_config.cookie_name, value: cookie)
|
||||
|
||||
valid := csrf.protect(mut ctx, short_time_config)
|
||||
|
||||
|
@ -105,21 +97,16 @@ fn test_valid_origin() {
|
|||
// valid because both Origin and Referer headers are present
|
||||
token, cookie := get_token_cookie('')
|
||||
|
||||
form := {
|
||||
csrf_config.token_name: token
|
||||
}
|
||||
cookie_map := {
|
||||
csrf_config.cookie_name: cookie
|
||||
}
|
||||
|
||||
mut req := http.Request{
|
||||
method: .post
|
||||
cookies: cookie_map
|
||||
}
|
||||
req.add_cookie(name: csrf_config.cookie_name, value: cookie)
|
||||
req.add_header(.origin, 'http://${allowed_origin}')
|
||||
req.add_header(.referer, 'http://${allowed_origin}/test')
|
||||
mut ctx := veb.Context{
|
||||
form: form
|
||||
form: {
|
||||
csrf_config.token_name: token
|
||||
}
|
||||
req: req
|
||||
}
|
||||
|
||||
|
@ -131,20 +118,15 @@ fn test_invalid_origin() {
|
|||
// invalid because either the Origin, Referer or neither are present
|
||||
token, cookie := get_token_cookie('')
|
||||
|
||||
form := {
|
||||
csrf_config.token_name: token
|
||||
}
|
||||
cookie_map := {
|
||||
csrf_config.cookie_name: cookie
|
||||
}
|
||||
|
||||
mut req := http.Request{
|
||||
method: .post
|
||||
cookies: cookie_map
|
||||
}
|
||||
req.add_cookie(name: csrf_config.cookie_name, value: cookie)
|
||||
req.add_header(.origin, 'http://${allowed_origin}')
|
||||
mut ctx := veb.Context{
|
||||
form: form
|
||||
form: {
|
||||
csrf_config.token_name: token
|
||||
}
|
||||
req: req
|
||||
}
|
||||
|
||||
|
@ -153,11 +135,13 @@ fn test_invalid_origin() {
|
|||
|
||||
req = http.Request{
|
||||
method: .post
|
||||
cookies: cookie_map
|
||||
}
|
||||
req.add_cookie(name: csrf_config.cookie_name, value: cookie)
|
||||
req.add_header(.referer, 'http://${allowed_origin}/test')
|
||||
ctx = veb.Context{
|
||||
form: form
|
||||
form: {
|
||||
csrf_config.token_name: token
|
||||
}
|
||||
req: req
|
||||
}
|
||||
|
||||
|
@ -166,10 +150,12 @@ fn test_invalid_origin() {
|
|||
|
||||
req = http.Request{
|
||||
method: .post
|
||||
cookies: cookie_map
|
||||
}
|
||||
req.add_cookie(name: csrf_config.cookie_name, value: cookie)
|
||||
ctx = veb.Context{
|
||||
form: form
|
||||
form: {
|
||||
csrf_config.token_name: token
|
||||
}
|
||||
req: req
|
||||
}
|
||||
|
||||
|
@ -288,24 +274,25 @@ fn protect_route_util(path string) {
|
|||
method: .post
|
||||
url: 'http://${localserver}/${path}'
|
||||
data: formdata
|
||||
cookies: cookies
|
||||
header: header
|
||||
}
|
||||
req.add_cookie(name: csrf_config.cookie_name, value: cookie)
|
||||
req.add_cookie(name: session_id_cookie_name, value: 'altered')
|
||||
|
||||
res = req.do() or { panic(err) }
|
||||
assert res.status() == .forbidden
|
||||
|
||||
// Everything is valid now and the request should succeed
|
||||
cookies[session_id_cookie_name] = session_id
|
||||
|
||||
//
|
||||
req = http.Request{
|
||||
method: .post
|
||||
url: 'http://${localserver}/${path}'
|
||||
data: formdata
|
||||
cookies: cookies
|
||||
header: header
|
||||
}
|
||||
req.add_cookie(name: csrf_config.cookie_name, value: cookie)
|
||||
req.add_cookie(name: session_id_cookie_name, value: session_id)
|
||||
|
||||
// Everything is valid now and the request should succeed, since session_id_cookie_name will be session_id
|
||||
res = req.do() or { panic(err) }
|
||||
assert res.status() == .ok
|
||||
}
|
||||
|
@ -328,13 +315,8 @@ fn testsuite_end() {
|
|||
// Utility functions
|
||||
|
||||
fn get_token_cookie(session_id string) (string, string) {
|
||||
mut ctx := veb.Context{
|
||||
req: http.Request{
|
||||
cookies: {
|
||||
session_id_cookie_name: session_id
|
||||
}
|
||||
}
|
||||
}
|
||||
mut ctx := veb.Context{}
|
||||
ctx.req.add_cookie(name: session_id_cookie_name, value: session_id)
|
||||
|
||||
token := csrf.set_token(mut ctx, csrf_config_origin)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue