From 3f61d63e72c57f318807e06409084bf04fa08ded Mon Sep 17 00:00:00 2001 From: Adrian Heine Date: Mon, 4 Jan 2016 10:36:14 +0100 Subject: [PATCH] Add failing test for FontCacheTask::add_web_font This test tries to add a web font to the `FontCacheTask`. The added web font corresponds to the following CSS font definition: ``` @font-face { font-family: "test family"; src: local(test font face); } ``` This test fails, since `FontCacheTask` tries to get the value for the key "test font face" from `self.web_families`, but previously initialized a value for the key "test family". --- components/servo/Cargo.lock | 2 ++ tests/unit/gfx/Cargo.toml | 6 ++++++ tests/unit/gfx/font_cache_task.rs | 21 +++++++++++++++++++++ tests/unit/gfx/lib.rs | 3 +++ 4 files changed, 32 insertions(+) create mode 100644 tests/unit/gfx/font_cache_task.rs diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock index 3d6d7e60012..23691286c60 100644 --- a/components/servo/Cargo.lock +++ b/components/servo/Cargo.lock @@ -650,6 +650,8 @@ name = "gfx_tests" version = "0.0.1" dependencies = [ "gfx 0.0.1", + "ipc-channel 0.1.0 (git+https://github.com/servo/ipc-channel)", + "style 0.0.1", ] [[package]] diff --git a/tests/unit/gfx/Cargo.toml b/tests/unit/gfx/Cargo.toml index 24e43ff3def..55ec4c14504 100644 --- a/tests/unit/gfx/Cargo.toml +++ b/tests/unit/gfx/Cargo.toml @@ -10,3 +10,9 @@ doctest = false [dependencies.gfx] path = "../../../components/gfx" + +[dependencies.ipc-channel] +git = "https://github.com/servo/ipc-channel" + +[dependencies.style] +path = "../../../components/style" diff --git a/tests/unit/gfx/font_cache_task.rs b/tests/unit/gfx/font_cache_task.rs new file mode 100644 index 00000000000..54cc417acb0 --- /dev/null +++ b/tests/unit/gfx/font_cache_task.rs @@ -0,0 +1,21 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +use gfx::font_cache_task::FontCacheTask; +use ipc_channel::ipc; +use style::computed_values::font_family::FontFamily; +use style::font_face::Source; + +#[test] +fn test_local_web_font() { + let (inp_chan, _) = ipc::channel().unwrap(); + let (out_chan, out_receiver) = ipc::channel().unwrap(); + let font_cache_task = FontCacheTask::new(inp_chan); + let family_name = FontFamily::FamilyName(From::from("test family")); + let variant_name = FontFamily::FamilyName(From::from("test font face")); + + font_cache_task.add_web_font(family_name, Source::Local(variant_name), out_chan); + + assert_eq!(out_receiver.recv().unwrap(), ()); +} diff --git a/tests/unit/gfx/lib.rs b/tests/unit/gfx/lib.rs index 9a5040b6fe1..3bac7b06edc 100644 --- a/tests/unit/gfx/lib.rs +++ b/tests/unit/gfx/lib.rs @@ -3,5 +3,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ extern crate gfx; +extern crate ipc_channel; +extern crate style; +#[cfg(test)] mod font_cache_task; #[cfg(test)] mod text_util;