use crate::css::next_id::NextId;
use super::super::transform_css;
#[test]
fn test_media() {
let css = "
color: red;
@media screen and (min-width: 400px) {
color: green;
};
";
let next_id = NextId::new();
let (id, selectors) = transform_css(css, &next_id);
assert_eq!(id, 1);
assert_eq!(next_id.current(), 1);
assert_eq!(
selectors,
vec!(
(".autocss_1".into(), "color: red".into()),
(
"@media screen and (min-width: 400px)".into(),
".autocss_1 { color: green }".into()
),
)
);
}
#[test]
fn test_doubled() {
let css = "
width: 40px;
@media screen and (min-width: 400px) {
width: 60px;
};
@media screen and (min-width: 800px) {
width: 80px;
};
";
let next_id = NextId::new();
let (id, selectors) = transform_css(css, &next_id);
assert_eq!(id, 1);
assert_eq!(next_id.current(), 1);
assert_eq!(
selectors,
vec!(
(".autocss_1".into(), "width: 40px".into()),
(
"@media screen and (min-width: 400px)".into(),
".autocss_1 { width: 60px }".into()
),
(
"@media screen and (min-width: 800px)".into(),
".autocss_1 { width: 80px }".into()
),
)
);
}
#[test]
fn test_media_and_pseudo_1() {
let css = "
@media screen and (min-width: 600px) {
:hover {
transform: scale(1.5);
};
};
@media screen and (min-width: 1000px) {
:hover {
transform: scale(2);
};
};
";
let next_id = NextId::new();
let (id, selectors) = transform_css(css, &next_id);
assert_eq!(id, 1);
assert_eq!(next_id.current(), 1);
assert_eq!(
selectors[0],
(
"@media screen and (min-width: 600px)".into(),
".autocss_1:hover { transform: scale(1.5); }".into()
)
);
assert_eq!(
selectors[1],
(
"@media screen and (min-width: 1000px)".into(),
".autocss_1:hover { transform: scale(2); }".into()
),
);
}
#[test]
fn test_media_and_pseudo_2() {
let css = "
width: 40px;
@media screen and (min-width: 400px) {
width: 60px;
:hover {
color: red;
};
:focus::first-letter {
color: crimson;
};
};
@media screen and (min-width: 800px) {
width: 80px;
};
@media screen and (max-width: 900px) {
:focus {
color: magenta;
}
};
";
let next_id = NextId::new();
let (id, selectors) = transform_css(css, &next_id);
assert_eq!(id, 1);
assert_eq!(next_id.current(), 1);
assert_eq!(selectors[0], (".autocss_1".into(), "width: 40px".into()));
assert_eq!(
selectors[1],
("@media screen and (min-width: 400px)".into(), ".autocss_1 { width: 60px }\n.autocss_1:hover { color: red; }\n.autocss_1:focus::first-letter { color: crimson; }".into())
);
assert_eq!(
selectors[2],
(
"@media screen and (min-width: 800px)".into(),
".autocss_1 { width: 80px }".into()
),
);
assert_eq!(
selectors[3],
(
"@media screen and (max-width: 900px)".into(),
".autocss_1:focus { color: magenta; }".into()
),
);
}