mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 17:38:10 +00:00
tests
This commit is contained in:
1 parent
efae7b5ade
commit
e6ea3bba9b
1 file changed
+85
@@ -95,3 +95,88 @@ impl AvtCookieManager {
|
||||
.map(|payload| payload.avt_token)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use actix_web::test::TestRequest;
|
||||
|
||||
use crate::anonymous_visitor_tracking::avt_cookie_manager::AvtCookieManager;
|
||||
use crate::anonymous_visitor_tracking::avt_cookie_payload::AvtCookiePayload;
|
||||
use tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken;
|
||||
|
||||
#[test]
|
||||
fn test_create_cookie() {
|
||||
// NB: Let's make extra sure this always works when migrating cookies, else we'll accidentally invalidate visitor tracking.
|
||||
// (These are version 1 cookies.)
|
||||
let manager = AvtCookieManager::new("fakeyou.com", "secret").unwrap();
|
||||
let token = AnonymousVisitorTrackingToken::new_from_str("avt_ex_anonymous_visitor_tracking_token");
|
||||
let cookie = manager.make_new_cookie_with_apriori_token(&token).unwrap();
|
||||
|
||||
assert_eq!(cookie.value(), "eyJhbGciOiJIUzI1NiJ9.eyJhdnRfdG9rZW4iOiJhdnRfZXhfYW5vbnltb3VzX3Zpc2l0b3JfdHJhY2tpbmdfdG9rZW4iLCJjb29raWVfdmVyc2lvbiI6IjEifQ.w0KRxBxiyBfTZGxaezRa0IgD8ojmCnhRH4SS33Nq3O8");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_cookie_round_trip() {
|
||||
let manager = AvtCookieManager::new("fakeyou.com", "secret").unwrap();
|
||||
let token = AnonymousVisitorTrackingToken::new_from_str("avt_ex_anonymous_visitor_tracking_token");
|
||||
let cookie = manager.make_new_cookie_with_apriori_token(&token).unwrap();
|
||||
|
||||
let http_request = TestRequest::default()
|
||||
.cookie(cookie)
|
||||
.to_http_request();
|
||||
|
||||
let decoded = manager.decode_cookie_payload_from_request(&http_request)
|
||||
.expect("no error")
|
||||
.expect("must exist");
|
||||
|
||||
assert_eq!(decoded.avt_token.as_str(), "avt_ex_anonymous_visitor_tracking_token");
|
||||
assert_eq!(decoded.cookie_version, 1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_encode() {
|
||||
// NB: Stable encoding test. If this changes we should bump the cookie version.
|
||||
let manager = AvtCookieManager::new("fakeyou.com", "fake_secret").unwrap();
|
||||
let token = AnonymousVisitorTrackingToken::new_from_str("avt_ex_anonymous_visitor_tracking_token");
|
||||
let payload = AvtCookiePayload::from_token(token);
|
||||
let claims = payload.to_map();
|
||||
let jwt_string = manager.jwt_signer.claims_to_jwt(&claims).unwrap();
|
||||
|
||||
assert_eq!(
|
||||
jwt_string,
|
||||
"eyJhbGciOiJIUzI1NiJ9.eyJhdnRfdG9rZW4iOiJhdnRfZXhfYW5vbnltb3VzX3Zpc2l0b3JfdHJhY2tpbmdfdG9rZW4iLCJjb29raWVfdmVyc2lvbiI6IjEifQ.5jgQfSXue684okKBzW3847jEhL7eLQKzelyAkgnwe_I"
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_decode_version_1() {
|
||||
// NB: Version 1 payload. The expected encoded value below was generated by `test_encode`.
|
||||
let payload =
|
||||
"eyJhbGciOiJIUzI1NiJ9.eyJhdnRfdG9rZW4iOiJhdnRfZXhfYW5vbnltb3VzX3Zpc2l0b3JfdHJhY2tpbmdfdG9rZW4iLCJjb29raWVfdmVyc2lvbiI6IjEifQ.5jgQfSXue684okKBzW3847jEhL7eLQKzelyAkgnwe_I";
|
||||
|
||||
let manager = AvtCookieManager::new("fakeyou.com", "fake_secret").unwrap();
|
||||
let claims = manager.jwt_signer.jwt_to_claims(payload).unwrap();
|
||||
let decoded_payload = AvtCookiePayload::from_map(claims).unwrap();
|
||||
|
||||
assert_eq!(decoded_payload.avt_token.as_str(), "avt_ex_anonymous_visitor_tracking_token");
|
||||
assert_eq!(decoded_payload.cookie_version, 1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_round_trip() {
|
||||
let manager = AvtCookieManager::new("fakeyou.com", "fake_secret").unwrap();
|
||||
let token = AnonymousVisitorTrackingToken::new_from_str("avt_ex_anonymous_visitor_tracking_token");
|
||||
|
||||
// Encode
|
||||
let payload = AvtCookiePayload::from_token(token);
|
||||
let claims = payload.to_map();
|
||||
let jwt_string = manager.jwt_signer.claims_to_jwt(&claims).unwrap();
|
||||
|
||||
// Decode
|
||||
let claims = manager.jwt_signer.jwt_to_claims(&jwt_string).unwrap();
|
||||
let decoded_payload = AvtCookiePayload::from_map(claims).unwrap();
|
||||
|
||||
assert_eq!(decoded_payload.avt_token.as_str(), "avt_ex_anonymous_visitor_tracking_token");
|
||||
assert_eq!(decoded_payload.cookie_version, 1);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user