tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

tokio.rs (2355B)


      1 use l10nregistry_tests::TestFileFetcher;
      2 use unic_langid::LanguageIdentifier;
      3 
      4 static FTL_RESOURCE_PRESENT: &str = "toolkit/global/textActions.ftl";
      5 static FTL_RESOURCE_MISSING: &str = "missing.ftl";
      6 
      7 #[tokio::test]
      8 async fn file_source_fetch() {
      9    let fetcher = TestFileFetcher::new();
     10    let en_us: LanguageIdentifier = "en-US".parse().unwrap();
     11    let fs1 =
     12        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");
     13 
     14    let file = fs1.fetch_file(&en_us, &FTL_RESOURCE_PRESENT.into()).await;
     15    assert!(file.is_some());
     16 }
     17 
     18 #[tokio::test]
     19 async fn file_source_fetch_missing() {
     20    let fetcher = TestFileFetcher::new();
     21    let en_us: LanguageIdentifier = "en-US".parse().unwrap();
     22    let fs1 =
     23        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");
     24 
     25    let file = fs1.fetch_file(&en_us, &FTL_RESOURCE_MISSING.into()).await;
     26    assert!(file.is_none());
     27 }
     28 
     29 #[tokio::test]
     30 async fn file_source_already_loaded() {
     31    let fetcher = TestFileFetcher::new();
     32    let en_us: LanguageIdentifier = "en-US".parse().unwrap();
     33    let fs1 =
     34        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");
     35 
     36    let file = fs1.fetch_file(&en_us, &FTL_RESOURCE_PRESENT.into()).await;
     37    assert!(file.is_some());
     38    let file = fs1.fetch_file(&en_us, &FTL_RESOURCE_PRESENT.into()).await;
     39    assert!(file.is_some());
     40 }
     41 
     42 #[tokio::test]
     43 async fn file_source_concurrent() {
     44    let fetcher = TestFileFetcher::new();
     45    let en_us: LanguageIdentifier = "en-US".parse().unwrap();
     46    let fs1 =
     47        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");
     48 
     49    let file1 = fs1.fetch_file(&en_us, &FTL_RESOURCE_PRESENT.into());
     50    let file2 = fs1.fetch_file(&en_us, &FTL_RESOURCE_PRESENT.into());
     51    assert!(file1.await.is_some());
     52    assert!(file2.await.is_some());
     53 }
     54 
     55 #[test]
     56 fn file_source_sync_after_async_fail() {
     57    let fetcher = TestFileFetcher::new();
     58    let en_us: LanguageIdentifier = "en-US".parse().unwrap();
     59    let fs1 =
     60        fetcher.get_test_file_source("toolkit", None, vec![en_us.clone()], "toolkit/{locale}/");
     61 
     62    let _ = fs1.fetch_file(&en_us, &FTL_RESOURCE_PRESENT.into());
     63    let file2 = fs1.fetch_file_sync(&en_us, &FTL_RESOURCE_PRESENT.into(), true);
     64    assert!(file2.is_some());
     65 }