Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/intl/l10n/rust/l10nregistry-tests/tests/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 9 kB image not shown  

Quelle  source.rs

  Sprache: Rust
 

use fluent_fallback::types::{ResourceType, ToResourceId};
use futures::future::join_all;
use l10nregistry_tests::TestFileFetcher;
use unic_langid::LanguageIdentifier;

static FTL_RESOURCE_PRESENT: &str = "toolkit/global/textActions.ftl";
static FTL_RESOURCE_MISSING: &str = "missing.ftl";

#[test]
fn test_fetch_sync() {
    let fetcher = TestFileFetcher::new();
    let en_us: LanguageIdentifier = "en-US".parse().unwrap();

    let fs1 =
        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");

    let file = fs1.fetch_file_sync(&en_us, &FTL_RESOURCE_PRESENT.into(), false);
    assert!(file.is_some());
    assert!(!file.is_none());
    assert!(!file.is_required_and_missing());

    let file = fs1.fetch_file_sync(
        &en_us,
        &FTL_RESOURCE_PRESENT.to_resource_id(ResourceType::Required),
        false,
    );
    assert!(file.is_some());
    assert!(!file.is_none());
    assert!(!file.is_required_and_missing());

    let file = fs1.fetch_file_sync(
        &en_us,
        &FTL_RESOURCE_PRESENT.to_resource_id(ResourceType::Optional),
        false,
    );
    assert!(file.is_some());
    assert!(!file.is_none());
    assert!(!file.is_required_and_missing());

    let file = fs1.fetch_file_sync(&en_us, &FTL_RESOURCE_MISSING.into(), false);
    assert!(!file.is_some());
    assert!(file.is_none());
    assert!(file.is_required_and_missing());

    let file = fs1.fetch_file_sync(
        &en_us,
        &FTL_RESOURCE_MISSING.to_resource_id(ResourceType::Required),
        false,
    );
    assert!(!file.is_some());
    assert!(file.is_none());
    assert!(file.is_required_and_missing());

    let file = fs1.fetch_file_sync(
        &en_us,
        &FTL_RESOURCE_MISSING.to_resource_id(ResourceType::Optional),
        false,
    );
    assert!(!file.is_some());
    assert!(file.is_none());
    assert!(!file.is_required_and_missing());
}

#[tokio::test]
async fn test_fetch_async() {
    let fetcher = TestFileFetcher::new();
    let en_us: LanguageIdentifier = "en-US".parse().unwrap();

    let fs1 =
        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");

    let file = fs1.fetch_file(&en_us, &FTL_RESOURCE_PRESENT.into()).await;
    assert!(file.is_some());
    assert!(!file.is_none());
    assert!(!file.is_required_and_missing());

    let file = fs1
        .fetch_file(
            &en_us,
            &FTL_RESOURCE_PRESENT.to_resource_id(ResourceType::Required),
        )
        .await;
    assert!(file.is_some());
    assert!(!file.is_none());
    assert!(!file.is_required_and_missing());

    let file = fs1
        .fetch_file(
            &en_us,
            &FTL_RESOURCE_PRESENT.to_resource_id(ResourceType::Optional),
        )
        .await;
    assert!(file.is_some());
    assert!(!file.is_none());
    assert!(!file.is_required_and_missing());

    let file = fs1.fetch_file(&en_us, &FTL_RESOURCE_MISSING.into()).await;
    assert!(!file.is_some());
    assert!(file.is_none());
    assert!(file.is_required_and_missing());

    let file = fs1
        .fetch_file(
            &en_us,
            &FTL_RESOURCE_MISSING.to_resource_id(ResourceType::Required),
        )
        .await;
    assert!(!file.is_some());
    assert!(file.is_none());
    assert!(file.is_required_and_missing());

    let file = fs1
        .fetch_file(
            &en_us,
            &FTL_RESOURCE_MISSING.to_resource_id(ResourceType::Optional),
        )
        .await;
    assert!(!file.is_some());
    assert!(file.is_none());
    assert!(!file.is_required_and_missing());
}

#[tokio::test]
async fn test_fetch_sync_2_async() {
    let fetcher = TestFileFetcher::new();
    let en_us: LanguageIdentifier = "en-US".parse().unwrap();

    let fs1 =
        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");

    assert!(fs1
        .fetch_file_sync(&en_us, &FTL_RESOURCE_PRESENT.into(), false)
        .is_some());
    assert!(fs1
        .fetch_file(&en_us, &FTL_RESOURCE_PRESENT.into())
        .await
        .is_some());
    assert!(fs1
        .fetch_file_sync(&en_us, &FTL_RESOURCE_PRESENT.into(), false)
        .is_some());
}

#[tokio::test]
async fn test_fetch_async_2_sync() {
    let fetcher = TestFileFetcher::new();
    let en_us: LanguageIdentifier = "en-US".parse().unwrap();

    let fs1 =
        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");

    assert!(fs1
        .fetch_file(&en_us, &FTL_RESOURCE_PRESENT.into())
        .await
        .is_some());
    assert!(fs1
        .fetch_file_sync(&en_us, &FTL_RESOURCE_PRESENT.into(), false)
        .is_some());
}

#[test]
fn test_fetch_has_value_required_sync() {
    let fetcher = TestFileFetcher::new();
    let en_us: LanguageIdentifier = "en-US".parse().unwrap();
    let path = FTL_RESOURCE_PRESENT.into();
    let path_missing = FTL_RESOURCE_MISSING.into();

    let fs1 =
        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");

    assert_eq!(fs1.has_file(&en_us, &path), None);
    assert!(fs1.fetch_file_sync(&en_us, &path, false).is_some());
    assert_eq!(fs1.has_file(&en_us, &path), Some(true));

    assert_eq!(fs1.has_file(&en_us, &path_missing), None);
    assert!(fs1.fetch_file_sync(&en_us, &path_missing, false).is_none());
    assert_eq!(fs1.has_file(&en_us, &path_missing), Some(false));
}

#[test]
fn test_fetch_has_value_optional_sync() {
    let fetcher = TestFileFetcher::new();
    let en_us: LanguageIdentifier = "en-US".parse().unwrap();
    let path = FTL_RESOURCE_PRESENT.to_resource_id(ResourceType::Optional);
    let path_missing = FTL_RESOURCE_MISSING.to_resource_id(ResourceType::Optional);

    let fs1 =
        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");

    assert_eq!(fs1.has_file(&en_us, &path), None);
    assert!(fs1.fetch_file_sync(&en_us, &path, false).is_some());
    assert_eq!(fs1.has_file(&en_us, &path), Some(true));

    assert_eq!(fs1.has_file(&en_us, &path_missing), None);
    assert!(fs1.fetch_file_sync(&en_us, &path_missing, false).is_none());
    assert_eq!(fs1.has_file(&en_us, &path_missing), Some(false));
}

#[tokio::test]
async fn test_fetch_has_value_required_async() {
    let fetcher = TestFileFetcher::new();
    let en_us: LanguageIdentifier = "en-US".parse().unwrap();
    let path = FTL_RESOURCE_PRESENT.into();
    let path_missing = FTL_RESOURCE_MISSING.into();

    let fs1 =
        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");

    assert_eq!(fs1.has_file(&en_us, &path), None);
    assert!(fs1.fetch_file(&en_us, &path).await.is_some());
    println!("Completed");
    assert_eq!(fs1.has_file(&en_us, &path), Some(true));

    assert_eq!(fs1.has_file(&en_us, &path_missing), None);

    assert!(fs1.fetch_file(&en_us, &path_missing).await.is_none());
    assert!(fs1
        .fetch_file(&en_us, &path_missing)
        .await
        .is_required_and_missing());

    assert_eq!(fs1.has_file(&en_us, &path_missing), Some(false));

    assert!(fs1.fetch_file_sync(&en_us, &path_missing, false).is_none());
    assert!(fs1
        .fetch_file_sync(&en_us, &path_missing, false)
        .is_required_and_missing());
}

#[tokio::test]
async fn test_fetch_has_value_optional_async() {
    let fetcher = TestFileFetcher::new();
    let en_us: LanguageIdentifier = "en-US".parse().unwrap();
    let path = FTL_RESOURCE_PRESENT.to_resource_id(ResourceType::Optional);
    let path_missing = FTL_RESOURCE_MISSING.to_resource_id(ResourceType::Optional);

    let fs1 =
        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");

    assert_eq!(fs1.has_file(&en_us, &path), None);
    assert!(fs1.fetch_file(&en_us, &path).await.is_some());
    println!("Completed");
    assert_eq!(fs1.has_file(&en_us, &path), Some(true));

    assert_eq!(fs1.has_file(&en_us, &path_missing), None);
    assert!(fs1.fetch_file(&en_us, &path_missing).await.is_none());
    assert!(!fs1
        .fetch_file(&en_us, &path_missing)
        .await
        .is_required_and_missing());

    assert_eq!(fs1.has_file(&en_us, &path_missing), Some(false));

    assert!(fs1.fetch_file_sync(&en_us, &path_missing, false).is_none());
    assert!(!fs1
        .fetch_file_sync(&en_us, &path_missing, false)
        .is_required_and_missing());
}

#[tokio::test]
async fn test_fetch_async_consecutive() {
    let fetcher = TestFileFetcher::new();
    let en_us: LanguageIdentifier = "en-US".parse().unwrap();

    let fs1 =
        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");

    let results = join_all(vec![
        fs1.fetch_file(&en_us, &FTL_RESOURCE_PRESENT.into()),
        fs1.fetch_file(&en_us, &FTL_RESOURCE_PRESENT.into()),
    ])
    .await;
    assert!(results[0].is_some());
    assert!(results[1].is_some());

    assert!(fs1
        .fetch_file(&en_us, &FTL_RESOURCE_PRESENT.into())
        .await
        .is_some());
}

#[test]
fn test_indexed() {
    let fetcher = TestFileFetcher::new();
    let en_us: LanguageIdentifier = "en-US".parse().unwrap();
    let path = FTL_RESOURCE_PRESENT;
    let path_missing = FTL_RESOURCE_MISSING;

    let fs1 = fetcher.get_test_file_source_with_index(
        "toolkit",
        None,
        vec![en_us.clone()],
        "toolkit/{locale}/",
        vec!["toolkit/en-US/toolkit/global/textActions.ftl"],
    );

    assert_eq!(fs1.has_file(&en_us, &path.into()), Some(true));
    assert!(fs1.fetch_file_sync(&en_us, &path.into(), false).is_some());
    assert_eq!(fs1.has_file(&en_us, &path.into()), Some(true));

    assert_eq!(fs1.has_file(&en_us, &path_missing.into()), Some(false));
    assert!(fs1
        .fetch_file_sync(&en_us, &path_missing.into(), false)
        .is_none());
    assert_eq!(fs1.has_file(&en_us, &path_missing.into()), Some(false));
}

Messung V0.5 in Prozent
C=100 H=93 G=96

¤ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet am  2026-08-25) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.