mirror of
https://github.com/telemt/telemt.git
synced 2026-10-11 03:45:58 +03:00
WEB: Base Path added
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
use base64::Engine as _;
|
||||
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn capability_matches_reference_vectors() {
|
||||
let secret = hex::decode("000102030405060708090a0b0c0d0e0f").unwrap();
|
||||
let mut dd_secret = vec![0xdd];
|
||||
dd_secret.extend_from_slice(&secret);
|
||||
for (client_secret, base_path, expected) in [
|
||||
(
|
||||
secret.as_slice(),
|
||||
b"".as_slice(),
|
||||
"MHLEY5PmW1GWqJkSrlmJpvJUiLhBH_QKy6yKg8a0JPk",
|
||||
),
|
||||
(
|
||||
dd_secret.as_slice(),
|
||||
b"".as_slice(),
|
||||
"IpJrt3e7sKtzPyoXy6w-Zj6GGEvsvclN66JzQEfPYLA",
|
||||
),
|
||||
(
|
||||
secret.as_slice(),
|
||||
b"dobry-cola-super-app".as_slice(),
|
||||
"hHz99Xs93EN1j91G9gpNepXwGNNt5YdAFkEVk_LlqdQ",
|
||||
),
|
||||
(
|
||||
dd_secret.as_slice(),
|
||||
b"dobry-cola-super-app".as_slice(),
|
||||
"TGUkZaevsavLbHvlNWipnRoYxgzZ51ioWvbxgGT3wHo",
|
||||
),
|
||||
] {
|
||||
let capability =
|
||||
derive_web_capability(client_secret, b"proxy.example.com", base_path).unwrap();
|
||||
assert_eq!(
|
||||
base64::engine::general_purpose::URL_SAFE_NO_PAD.encode(capability),
|
||||
expected
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(unix)]
|
||||
#[test]
|
||||
fn static_snapshot_remains_anchored_after_root_path_replacement() {
|
||||
use std::os::unix::fs::symlink;
|
||||
|
||||
let temp = tempfile::tempdir().unwrap();
|
||||
let root = temp.path().join("site");
|
||||
let detached = temp.path().join("detached");
|
||||
let replacement = temp.path().join("replacement");
|
||||
fs::create_dir(&root).unwrap();
|
||||
fs::write(root.join("index.html"), b"original").unwrap();
|
||||
fs::create_dir(&replacement).unwrap();
|
||||
fs::write(replacement.join("index.html"), b"replacement").unwrap();
|
||||
|
||||
let directory = open_static_root(&root).unwrap();
|
||||
fs::rename(&root, &detached).unwrap();
|
||||
symlink(&replacement, &root).unwrap();
|
||||
|
||||
let mut assets = BTreeMap::new();
|
||||
let mut total_files = 0;
|
||||
let mut total_bytes = 0;
|
||||
load_static_directory(
|
||||
directory,
|
||||
Path::new(""),
|
||||
&root,
|
||||
&mut assets,
|
||||
&mut total_files,
|
||||
&mut total_bytes,
|
||||
&WebLimitsConfig::default(),
|
||||
0,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(assets["/index.html"].body.as_ref(), b"original");
|
||||
}
|
||||
Reference in New Issue
Block a user