OneLauncher-Cracked/packages/oneclient_content/tests/file_identity.rs

39 lines
1.1 KiB
Rust

use oneclient_content::packages::{FileIdentity, curseforge_fingerprint};
#[test]
fn curseforge_fingerprint_ignores_padding_whitespace() {
let a = curseforge_fingerprint(b"hello");
let b = curseforge_fingerprint(b"\t\n\r hello \n\t\r");
assert_eq!(a, b);
}
#[test]
fn curseforge_fingerprint_empty_is_stable() {
assert_eq!(curseforge_fingerprint(&[]), curseforge_fingerprint(&[]));
}
#[test]
fn curseforge_fingerprint_differs_for_content() {
let a = curseforge_fingerprint(b"hello");
let b = curseforge_fingerprint(b"world");
assert_ne!(a, b);
}
#[test]
fn file_identity_from_bytes_sets_sha1_and_cf_fingerprint() {
let id = FileIdentity::from_bytes(b"test jar content");
assert_eq!(id.sha1.len(), 40);
assert!(id.cf_fingerprint.is_some());
}
#[test]
fn file_identity_from_sha1_has_no_cf_fingerprint() {
let id = FileIdentity::from_sha1("a".repeat(40));
assert!(id.cf_fingerprint.is_none());
}
#[test]
fn file_identity_with_fingerprint_roundtrip() {
let id = FileIdentity::from_sha1("abc").with_curseforge_fingerprint(12345);
assert_eq!(id.cf_fingerprint, Some(12345));
}