vlib: make ./v -Wimpure-v -W test vlib/ pass on Linux (#21554)

This commit is contained in:
Delyan Angelov 2024-05-23 16:21:01 +03:00 committed by GitHub
parent 373b91cd68
commit dbc6b50cda
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
46 changed files with 11278 additions and 222 deletions

View file

@ -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)