extern crate butlerd; use butlerd::Butler; use butlerd::Responses::*; use std::env; use std::fs; #[cfg(target_os = "macos")] static OS_STR: &str = "macos"; #[cfg(target_os = "linux")] static OS_STR: &str = "linux"; #[cfg(target_os = "windows")] static OS_STR: &str = "windows"; thread_local!(static b : Butler = Butler::new().unwrap()); const SSN_ID: i32 = 248620; const SOL_H: i32 = 283483; const LOCALH : i32 = 167215; #[test] fn fetchall() { b.with(|but| { let games = but.fetchall(); println!("{:?}", games); }); } #[test] fn fetch_game() { b.with(|but| { let game = but.fetch_game(248620).unwrap(); assert_eq!("Subserial Network", &game.title); assert_eq!(248620, game.id); }); } #[test] fn fetch_cave() { b.with(|but| { let cave = but.fetch_cave("e97cd944-386d-4c6c-b1e9-76a3175f4ca9").unwrap(); assert_eq!("LOCALHOST", &cave.game.title); assert_eq!(LOCALH, cave.game.id); }); } #[test] #[ignore] fn launch_game() { b.with(|but| { but.launch_game("e97cd944-386d-4c6c-b1e9-76a3175f4ca9"); }); } #[test] #[ignore] fn login_api_key() { b.with(|but| { let key = env::var_os("ITCH_API"); if key.is_some() { but.login_api_key(&key.unwrap().into_string().unwrap()); } }); } #[test] fn check_sale_none() { b.with(|but| { let sale = but.fetch_sale(SSN_ID); println!("{:?}", sale); }); } #[test] fn get_install_locations() { b.with(|but| { let locations = but.get_install_locations().unwrap(); assert!(locations.len() > 0); }); } #[test] fn fetch_uploads() { b.with(|but| { let uploads = but.fetch_uploads(SOL_H, true).unwrap(); println!("{:?}", uploads); assert!(uploads.len() > 0); }); } #[test] fn fetch_version() { b.with(|but| { let v = but.get_version(); println!("{:?}", v); }); } #[test] #[ignore] fn install() { let but = Butler::new().unwrap(); let game = but.fetch_game(SOL_H).unwrap(); let install_id = &but.get_install_locations().unwrap()[0]; let mut uploads = but.fetch_uploads(SOL_H, true).unwrap(); uploads = uploads .into_iter() .filter(|x| x.supports(OS_STR)) .collect::>(); but.install_game(game, &install_id.id.to_string(), uploads.pop().unwrap()); } #[test] fn profile_list () { b.with(|but| { let profiles = but.profile_list(); println!("{:?}", profiles); }); } #[test] #[ignore] fn test_login_fetch_keys () { b.with(|but| { let username = env::var_os("ITCH_USERNAME").unwrap().into_string().unwrap(); let password = env::var_os("ITCH_PASSWORD").unwrap().into_string().unwrap(); let profile = but.login_password(&username, &password).unwrap(); let keys = but.fetch_profile_keys(profile.profile.id, true); println!("{:?}", keys); }); } #[test] fn commons() { b.with(|but| { let commons = but.fetch_commons(); println!("{:?}", commons); }); } #[test] fn pin() { b.with(|but| { let caves = but.fetchall().unwrap(); but.pin_cave(&caves[0].id.clone(), true); but.pin_cave(&caves[0].id.clone(), false); }); } #[test] #[ignore] fn install_location_add() { b.with(|but| { if fs::metadata("/tmp/butlertest").is_err() { fs::create_dir("/tmp/butlertest").expect("Couldn't create test dir"); } but.install_location_add("/tmp/butlertest"); }); } #[test] fn snooze_cave() { b.with(|but| { but.snooze_cave("e97cd944-386d-4c6c-b1e9-76a3175f4ca9"); }); } #[test] fn check_updates() { b.with(|but| { but.check_update(vec!["e97cd944-386d-4c6c-b1e9-76a3175f4ca9".to_string()]); }); } #[test] fn expireall() { b.with(|but| { but.expireall(); }); } #[test] fn set_offline() { b.with(|but| { but.set_offline(true); but.set_offline(false); }); } #[test] fn set_throttle() { b.with(|but| { but.set_throttle(true, 10); but.set_throttle(false, 0); }); }