0.1.0-0-pre.9
This commit is contained in:
21
crates/common/game-assets-lib/unit_tests/resolver.rs
Normal file
21
crates/common/game-assets-lib/unit_tests/resolver.rs
Normal file
@@ -0,0 +1,21 @@
|
||||
// file: crates/common/game-assets-lib/unit_tests/resolver.rs
|
||||
// version: 1
|
||||
|
||||
#[test]
|
||||
fn logical_namespaces_resolve_to_separate_roots() {
|
||||
game_logging_lib::with_test_tracing(|| {
|
||||
let resolver = crate::AssetResolver::new("assets/common", "assets/game-reflex-poc");
|
||||
assert_eq!(resolver.resolve("common://data/runtime.json"), Ok(std::path::PathBuf::from("assets/common/data/runtime.json")));
|
||||
assert_eq!(resolver.resolve("game://data/game.json"), Ok(std::path::PathBuf::from("assets/game-reflex-poc/data/game.json")));
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn traversal_and_unknown_schemes_are_rejected() {
|
||||
game_logging_lib::with_test_tracing(|| {
|
||||
let resolver = crate::AssetResolver::new("assets/common", "assets/game-reflex-poc");
|
||||
assert_eq!(resolver.resolve("game://../secret"), Err(crate::AssetError::InvalidPath));
|
||||
assert_eq!(resolver.resolve("file://data/game.json"), Err(crate::AssetError::UnsupportedScheme));
|
||||
assert_eq!(resolver.resolve("common://"), Err(crate::AssetError::EmptyPath));
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user