This is v2 of OneClient. Removed all web-related stuff. Co-Authored-By: Julian Chang <wyvest@polyfrost.org>
39 lines
1.1 KiB
Rust
39 lines
1.1 KiB
Rust
use oneclient_core::packages::{curseforge_fingerprint, FileIdentity};
|
|
|
|
#[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));
|
|
}
|