lfsx-server 0.14.0

A fast, lightweight, secure Git LFS server
Documentation
use super::*;

#[test]
fn ordinary_names_are_accepted() {
    let ns = Namespace::new("FerrLabs", "LFSX").unwrap();

    assert_eq!(ns.org(), "FerrLabs");
    assert_eq!(ns.repo(), "LFSX");
}

#[test]
fn traversal_segments_are_rejected() {
    for (org, repo) in [
        ("..", "LFSX"),
        ("FerrLabs", ".."),
        ("FerrLabs", "."),
        ("FerrLabs", "sub/dir"),
        ("FerrLabs", "..%2Fetc"),
        ("", "LFSX"),
        ("FerrLabs", ""),
    ] {
        assert!(
            Namespace::new(org, repo).is_err(),
            "{org}/{repo} escaped validation"
        );
    }
}

#[test]
fn absurdly_long_names_are_rejected() {
    assert!(Namespace::new("FerrLabs", "a".repeat(101)).is_err());
    assert!(Namespace::new("FerrLabs", "a".repeat(100)).is_ok());
}