#![cfg(all(test, unix, not(target_os = "macos")))]
use dbus::arg::messageitem::MessageItem as Item;
use ctor::ctor;
use super::*;
use self::Hint as Hint;
use super::Urgency::*;
#[ctor]
fn init_color_backtrace() {
color_backtrace::install();
}
#[test]
fn hint_to_item() {
let category = &Hint::Category("test-me".to_owned());
let (k, v) = category.into();
let test_k = Item::Str("category".into());
let test_v = Item::Variant(Box::new(Item::Str("test-me".into())));
assert_eq!(k, test_k);
assert_eq!(v, test_v);
}
#[test]
fn urgency() {
let low = &Hint::Urgency(Low);
let (k, v) = low.into();
let test_k = Item::Str("urgency".into());
let test_v = Item::Variant(Box::new(Item::Byte(0)));
assert_eq!(k, test_k);
assert_eq!(v, test_v);
}
#[test]
fn simple_hint_to_item() {
let old_hint = &Hint::Custom("foo".into(), "bar".into());
let (k, v) = old_hint.into();
let hint: Hint = (&k, &v).into();
assert_eq!(old_hint, &hint);
}
#[test]
#[cfg(all(feature = "images", unix, not(target_os = "macos")))]
fn imagedata_hint_to_item() {
let hint = &Hint::ImageData(Image::from_rgb(1, 1, vec![0, 0, 0]).unwrap());
let item: MessageItem = hint.into();
let test_item = Item::DictEntry(
Box::new(Item::Str(image_spec(*::SPEC_VERSION))),
Box::new(Item::Variant(Box::new(Item::Struct(vec![
Item::Int32(1),
Item::Int32(1),
Item::Int32(3),
Item::Bool(false),
Item::Int32(8),
Item::Int32(3),
Item::Array(dbus::MessageItemArray::new(vec![
Item::Byte(0),
Item::Byte(0),
Item::Byte(0),
],"ay".into()).unwrap())
]))))
);
assert_eq!(item, test_item);
}
#[test]
#[cfg(all(feature = "images", unix, not(target_os = "macos")))]
fn imagedata_hint_to_item_with_spec() {
let key = image_spec(Version::new(1, 0));
assert_eq!(key, String::from("icon_data"));
let key = image_spec(Version::new(1, 1));
assert_eq!(key, String::from("image_data"));
let key = image_spec(Version::new(1, 2));
assert_eq!(key, String::from("image-data"));
}