summaryrefslogtreecommitdiff
path: root/rust/crates/transfer/tests/cross_compat.rs
blob: 02e53ac69ce94f8bb39d5a9c70ef4522385b36b9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
use transfer::*;

#[test]
fn parses_web_built_archive() {
    let archive = std::fs::read(concat!(env!("CARGO_MANIFEST_DIR"), "/tests/fixtures/web-built.ocp"))
        .expect("web-built fixture");
    let parsed = parse_project_archive(&archive).expect("parse web archive");

    assert_eq!(
        parsed
            .project
            .get("nested")
            .and_then(|n| n.get("value"))
            .and_then(|v| v.as_u64()),
        Some(42)
    );
    assert_eq!(parsed.media.len(), 1);
    assert_eq!(parsed.media[0].entry, "media/web-asset-web_clip.mov");
    assert_eq!(parsed.media[0].metadata.media_type, "video");
    assert_eq!(parsed.media[0].metadata.width, Some(1280.0));
    assert_eq!(
        parsed.read_media_data("media/web-asset-web_clip.mov").unwrap(),
        &[9, 8, 7, 6]
    );
}

#[test]
fn writes_rust_built_archive_for_web_parse() {
    let archive = build_project_archive(
        r#"{"version":7,"metadata":{"id":"rust-built"}}"#,
        vec![ArchiveMediaInput {
            metadata: ArchivedMediaMetadata {
                id: "rust-asset".into(),
                name: "rust audio.mp3".into(),
                media_type: "audio".into(),
                file_type: "audio/mpeg".into(),
                last_modified: 1_753_000_000_000.0,
                width: None,
                height: None,
                duration: Some(1.5),
                ephemeral: None,
                thumbnail_url: None,
            },
            data: vec![4, 3, 2, 1],
        }],
    )
    .expect("build");
    let parsed = parse_project_archive(&archive).expect("re-parse");
    assert_eq!(parsed.media[0].entry, "media/rust-asset-rust_audio.mp3");
    assert_eq!(
        parsed
            .read_media_data("media/rust-asset-rust_audio.mp3")
            .unwrap(),
        &[4, 3, 2, 1]
    );
}