aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/downloader/xz_downloader_test.rs
blob: d01779bf1bd4bebe8b5c6fcbc4d872fad1f252be (plain)
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
//! ref: composer/tests/Composer/Test/Downloader/XzDownloaderTest.php

use shirabe::util::Platform;
use shirabe::util::filesystem::Filesystem;
use tempfile::TempDir;

fn set_up() -> TempDir {
    if Platform::is_windows() {
        // markTestSkipped('Skip test on Windows')
        todo!()
    }
    if std::mem::size_of::<usize>() == 4 {
        // markTestSkipped('Skip test on 32bit')
        todo!()
    }
    TempDir::new().unwrap()
}

fn tear_down(test_dir: &std::path::Path) {
    if Platform::is_windows() {
        return;
    }
    let mut fs = Filesystem::new(None);
    fs.remove_directory(test_dir).unwrap();
}

struct TearDown {
    test_dir: std::path::PathBuf,
}

impl TearDown {
    fn new(test_dir: std::path::PathBuf) -> Self {
        TearDown { test_dir }
    }
}

impl Drop for TearDown {
    fn drop(&mut self) {
        tear_down(&self.test_dir);
    }
}

#[test]
#[ignore = "needs a real HttpDownloader/Loop and an XzDownloader download cycle; HttpDownloader construction reaches curl_multi_init (todo!()) in the php-shim"]
fn test_error_messages() {
    let test_dir = set_up();
    let _tear_down = TearDown::new(test_dir.path().to_path_buf());
    let _ = &test_dir;
    todo!()
}