darkwing/server/services/browser_profile_services/config/
fonts.rsuse crate::server::{
dtos::{
browser_profile_dto::BrowserProfileFullData, start_dto::StartRequest,
},
error::Error,
};
use serde::{Deserialize, Serialize};
use super::{FromStartRequest, Navigator, Screen};
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
pub struct Fonts(
pub(super) Vec<String>,
);
impl FromStartRequest<Fonts> for Fonts {
fn from_start_request(
_bp: &BrowserProfileFullData,
_request: &StartRequest,
_navigator: &Navigator,
_screen: &Screen,
_token: &str,
) -> Result<Self, Error> {
Ok(Self(vec![]))
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::database::browser_profile::Platform;
use crate::server::dtos::browser_profile_dto::BrowserProfileFullData;
use crate::server::dtos::start_dto::StartRequest;
use crate::server::services::browser_profile_services::config::consts::LINUX_MOCK_PROFILE;
fn create_test_profile(platform: Platform) -> BrowserProfileFullData {
let mut profile = LINUX_MOCK_PROFILE.clone();
profile.platform = platform;
profile
}
#[test]
fn test_fonts_from_start_request_empty() {
let profile = create_test_profile(Platform::Linux);
let request = StartRequest::get_mock();
let navigator = Navigator::default();
let screen = Screen::default();
let token = String::from("dummy_token");
let fonts = Fonts::from_start_request(
&profile, &request, &navigator, &screen, &token,
)
.expect("Should create fonts");
assert_eq!(fonts.0.len(), 0, "Fonts should be empty");
}
#[test]
#[ignore = "Currently by some reason fonts forming is _commented_ in local-api, so skipping this test"]
fn test_fonts_from_start_request_windows() {
let profile = create_test_profile(Platform::Windows);
let request = StartRequest::get_mock();
let navigator = Navigator::default();
let screen = Screen::default();
let token = String::from("dummy_token");
let fonts = Fonts::from_start_request(
&profile, &request, &navigator, &screen, &token,
)
.expect("Should create fonts");
assert!(fonts.0.contains(&String::from("Arial")));
assert!(fonts.0.len() > 0);
}
#[test]
#[ignore = "Currently by some reason fonts forming is _commented_ in local-api, so skipping this test"]
fn test_fonts_from_start_request_macos() {
let profile = create_test_profile(Platform::Macos);
let request = StartRequest::get_mock();
let navigator = Navigator::default();
let screen = Screen::default();
let token = String::from("dummy_token");
let fonts = Fonts::from_start_request(
&profile, &request, &navigator, &screen, &token,
)
.expect("Should create fonts");
assert!(fonts.0.contains(&String::from("Helvetica")));
assert!(fonts.0.len() > 0);
}
#[test]
#[ignore = "Currently by some reason fonts forming is _commented_ in local-api, so skipping this test"]
fn test_fonts_from_start_request_linux() {
let profile = create_test_profile(Platform::Linux);
let request = StartRequest::get_mock();
let navigator = Navigator::default();
let screen = Screen::default();
let token = String::from("dummy_token");
let fonts = Fonts::from_start_request(
&profile, &request, &navigator, &screen, &token,
)
.expect("Should create fonts");
assert_eq!(fonts.0.len(), 0, "Fonts on _Linux_ should be empty");
}
}