fav_utils 0.0.15

Fav's utils crate; A collection of utilities and data structures for the fav project
Documentation
use super::Bili;
use fav_core::prelude::*;
use reqwest::{header, header::HeaderMap};
use std::collections::HashMap;

pub(super) const USER_AGENT: &str = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3 Safari/605.1.15";
pub(super) const REFERER: &str = "https://www.bilibili.com/";

impl HttpConfig for Bili {
    fn headers(&self) -> HeaderMap {
        let mut headers = HeaderMap::new();
        headers.insert(header::USER_AGENT, USER_AGENT.parse().unwrap());
        headers.insert(header::REFERER, REFERER.parse().unwrap());
        headers
    }
    #[inline]
    fn cookies(&self) -> &HashMap<String, String> {
        &self.cookies
    }
    #[inline]
    fn cookies_mut(&mut self) -> &mut HashMap<String, String> {
        &mut self.cookies
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn set_cookie_test() {
        {
            let mut bili = Bili::default();
            let mut cookies = HashMap::new();
            cookies.insert("1".to_string(), "1".to_string());
            bili.extend_cookies(cookies);
            assert_eq!(bili.cookies().len(), 1);
            assert_eq!(bili.cookies().get("1").unwrap(), "1");
            bili.write().unwrap();
        }
        let mut bili = Bili::read().unwrap();
        assert_eq!(bili.cookies().len(), 1);
        assert_eq!(bili.cookies().get("1").unwrap(), "1");
        let mut cookies = HashMap::new();
        cookies.insert("1".to_string(), "one".to_string());
        cookies.insert("2".to_string(), "two".to_string());
        bili.extend_cookies(cookies);
        assert_eq!(bili.cookies().len(), 2);
        assert_eq!(bili.cookies().get("1").unwrap(), "one");
        assert_eq!(bili.cookies().get("2").unwrap(), "two");
    }
}