Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions tests/cookies/cookie_expires_rfc3339.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
select 'cookie' as component,
'session' as name,
'abc123' as value,
'2035-06-15T12:34:56Z' as expires;
select 'text' as component, 'ok' as contents;
5 changes: 5 additions & 0 deletions tests/cookies/cookie_expires_timestamp.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
select 'cookie' as component,
'session' as name,
'abc123' as value,
1988150400 as expires;
select 'text' as component, 'ok' as contents;
25 changes: 25 additions & 0 deletions tests/cookies/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,28 @@ async fn zero_turns_off_a_cookie_protection() {
assert!(header.contains("SameSite=Lax"), "{header}");
assert!(header.contains("Path=/admin"), "{header}");
}

#[actix_web::test]
async fn removing_a_cookie_expires_it() {
let header = set_cookie_header("/tests/cookies/remove_cookie.sql").await;
assert!(header.starts_with("session=;"), "{header}");
assert!(header.contains("Max-Age=0"), "{header}");
}

#[actix_web::test]
async fn an_rfc_3339_expires_date_becomes_an_http_date() {
let header = set_cookie_header("/tests/cookies/cookie_expires_rfc3339.sql").await;
assert!(
header.contains("Expires=Fri, 15 Jun 2035 12:34:56 GMT"),
"{header}"
);
}

#[actix_web::test]
async fn a_unix_timestamp_expires_date_becomes_an_http_date() {
let header = set_cookie_header("/tests/cookies/cookie_expires_timestamp.sql").await;
assert!(
header.contains("Expires=Sat, 01 Jan 2033 00:00:00 GMT"),
"{header}"
);
}
2 changes: 2 additions & 0 deletions tests/cookies/remove_cookie.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
select 'cookie' as component, 'session' as name, 1 as remove;
select 'text' as component, 'ok' as contents;