freedesktop-desktop-entry 0.8.1

Freedesktop Desktop Entry Specification
Documentation
use std::path::PathBuf;

use crate::{desktop_entry_from_path, group_entry_from_path, DesktopEntry};

#[test]
fn nautilus_name_french() {
    let locales = &["fr_FR.UTF-8"];

    let de = DesktopEntry::from_path(
        PathBuf::from("tests_entries/org.gnome.Nautilus.desktop"),
        Some(locales),
    )
    .unwrap();

    assert_eq!(de.name(locales).unwrap(), "Fichiers");
}

#[test]
fn translatable_inverted_key_at_the_end() {
    let locales = &["fr_FR.UTF-8"];

    let de = DesktopEntry::from_path(
        PathBuf::from("tests_entries/org.gnome.SystemMonitor.desktop"),
        Some(locales),
    )
    .unwrap();

    assert!(de.keywords(&[] as &[&str]).is_some());
}

#[test]
fn get_single_group_entry() {
    let entry = group_entry_from_path(
        PathBuf::from("tests_entries/org.gnome.Nautilus.desktop"),
        "Desktop Entry",
        "Exec",
    )
    .unwrap();

    assert_eq!(entry.unwrap(), "nautilus --new-window %U");
}

#[test]
fn get_single_desktop_entry() {
    let entry = desktop_entry_from_path(
        PathBuf::from("tests_entries/org.gnome.Nautilus.desktop"),
        "Exec",
    )
    .unwrap();

    assert_eq!(entry.unwrap(), "nautilus --new-window %U");
}

#[test]
fn get_invalid_single_desktop_entry() {
    let entry = desktop_entry_from_path(
        PathBuf::from("tests_entries/org.gnome.Nautilus.desktop"),
        "Invalid",
    )
    .unwrap();

    assert!(entry.is_none());
}