blob: 19502e84745b58b586de5823b3b988c3cadc7e7b [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file
use {super::util::*, crate::FONTS_SMALL_CM};
// Add new tests here so we don't overload component manager with requests (58150)
#[fasync::run_singlethreaded(test)]
async fn test_get_typefaces_by_family() {
let factory = ProviderFactory::new();
test_get_typefaces_by_family_basic(&factory).await.unwrap();
test_get_typefaces_by_family_alias(&factory).await.unwrap();
test_get_typefaces_by_family_not_found(&factory).await.unwrap();
}
async fn test_get_typefaces_by_family_basic(factory: &ProviderFactory) -> Result<(), Error> {
let font_provider = factory.get_provider(FONTS_SMALL_CM).await?;
let mut family = fonts::FamilyName { name: String::from("Roboto") };
let response = font_provider.get_typefaces_by_family(&mut family).await?;
let faces = response.unwrap().results.unwrap();
assert_eq!(faces.len(), 3);
assert_eq!(faces[0], roboto_info(1, fonts::WEIGHT_LIGHT));
assert_eq!(faces[1], roboto_info(2, fonts::WEIGHT_MEDIUM));
assert_eq!(faces[2], roboto_info(3, fonts::WEIGHT_NORMAL));
Ok(())
}
async fn test_get_typefaces_by_family_alias(factory: &ProviderFactory) -> Result<(), Error> {
let font_provider = factory.get_provider(FONTS_SMALL_CM).await?;
let mut family = fonts::FamilyName { name: String::from("Material Design Icons") };
let mut alias = fonts::FamilyName { name: String::from("MaterialIcons") };
let by_family = font_provider.get_typefaces_by_family(&mut family).await?;
let by_alias = font_provider.get_typefaces_by_family(&mut alias).await?;
let by_family_faces = by_family.unwrap().results.unwrap();
let by_alias_faces = by_alias.unwrap().results.unwrap();
assert_eq!(by_family_faces.len(), 1);
assert_eq!(by_alias_faces.len(), 1);
assert_eq!(by_family_faces[0], by_alias_faces[0]);
Ok(())
}
async fn test_get_typefaces_by_family_not_found(factory: &ProviderFactory) -> Result<(), Error> {
let font_provider = factory.get_provider(FONTS_SMALL_CM).await?;
let mut family = fonts::FamilyName { name: String::from("NoSuchFont") };
let response = font_provider.get_typefaces_by_family(&mut family).await?;
assert_eq!(response.unwrap_err(), fonts_exp::Error::NotFound);
Ok(())
}