Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 25 additions & 25 deletions float-pigment-css/src/property.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ property_list! (PropertyValueWithGlobal, {
0x2c ColumnGap: GapType as Initial default Gap::Normal;

// background
0x30 BackgroundColor: ColorType as Initial default Color::Undefined;
0x30 BackgroundColor: ColorType as Initial default Color::Specified(0, 0, 0, 0);
0x31 BackgroundImage: BackgroundImageType as Initial default BackgroundImage::List(Array::empty());
0x32 BackgroundSize: BackgroundSizeType as Initial default BackgroundSize::List(vec![BackgroundSizeItem::Auto].into());
0x33 BackgroundPosition: BackgroundPositionType as Initial deprecated default BackgroundPosition::List(vec![BackgroundPositionItem::Pos(BackgroundPositionValue::Left(Length::Ratio(0.)), BackgroundPositionValue::Top(Length::Ratio(0.)))].into());
Expand All @@ -80,51 +80,51 @@ property_list! (PropertyValueWithGlobal, {
0x3f MaskMode: MaskModeType as Initial default MaskMode::List(vec![MaskModeItem::MatchSource].into());

// basic sizing
0x40 Width: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x41 Height: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x42 MinWidth: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x43 MinHeight: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x40 Width: LengthType as Initial default Length::Auto, resolver = Length::resolve_em;
0x41 Height: LengthType as Initial default Length::Auto, resolver = Length::resolve_em;
0x42 MinWidth: LengthType as Initial default Length::Auto, resolver = Length::resolve_em;
0x43 MinHeight: LengthType as Initial default Length::Auto, resolver = Length::resolve_em;
0x44 MaxWidth: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x45 MaxHeight: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x46 Left: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x47 Right: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x48 Top: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x49 Bottom: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x46 Left: LengthType as Initial default Length::Auto, resolver = Length::resolve_em;
0x47 Right: LengthType as Initial default Length::Auto, resolver = Length::resolve_em;
0x48 Top: LengthType as Initial default Length::Auto, resolver = Length::resolve_em;
0x49 Bottom: LengthType as Initial default Length::Auto, resolver = Length::resolve_em;

// padding and margin
0x50 PaddingLeft: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x51 PaddingRight: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x52 PaddingTop: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x53 PaddingBottom: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x54 MarginLeft: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x55 MarginRight: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x56 MarginTop: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x57 MarginBottom: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x50 PaddingLeft: LengthType as Initial default Length::Px(0.), resolver = Length::resolve_em;
0x51 PaddingRight: LengthType as Initial default Length::Px(0.), resolver = Length::resolve_em;
0x52 PaddingTop: LengthType as Initial default Length::Px(0.), resolver = Length::resolve_em;
0x53 PaddingBottom: LengthType as Initial default Length::Px(0.), resolver = Length::resolve_em;
0x54 MarginLeft: LengthType as Initial default Length::Px(0.), resolver = Length::resolve_em;
0x55 MarginRight: LengthType as Initial default Length::Px(0.), resolver = Length::resolve_em;
0x56 MarginTop: LengthType as Initial default Length::Px(0.), resolver = Length::resolve_em;
0x57 MarginBottom: LengthType as Initial default Length::Px(0.), resolver = Length::resolve_em;

// other
0x58 MaskPositionX: BackgroundPositionType as Initial default BackgroundPosition::List(vec![BackgroundPositionItem::Value(BackgroundPositionValue::Left(Length::Ratio(0.)))].into());
0x59 MaskPositionY: BackgroundPositionType as Initial default BackgroundPosition::List(vec![BackgroundPositionItem::Value(BackgroundPositionValue::Top(Length::Ratio(0.)))].into());

// border
0x60 BorderLeftWidth: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x60 BorderLeftWidth: LengthType as Initial default Length::Px(3.), resolver = Length::resolve_em;
0x61 BorderLeftStyle: BorderStyleType as Initial default BorderStyle::None;
0x62 BorderLeftColor: ColorType as Initial default Color::CurrentColor;
0x63 BorderRightWidth: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x63 BorderRightWidth: LengthType as Initial default Length::Px(3.), resolver = Length::resolve_em;
0x64 BorderRightStyle: BorderStyleType as Initial default BorderStyle::None;
0x65 BorderRightColor: ColorType as Initial default Color::CurrentColor;
0x66 BorderTopWidth: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x66 BorderTopWidth: LengthType as Initial default Length::Px(3.), resolver = Length::resolve_em;
0x67 BorderTopStyle: BorderStyleType as Initial default BorderStyle::None;
0x68 BorderTopColor: ColorType as Initial default Color::CurrentColor;
0x69 BorderBottomWidth: LengthType as Initial default Length::Undefined, resolver = Length::resolve_em;
0x69 BorderBottomWidth: LengthType as Initial default Length::Px(3.), resolver = Length::resolve_em;
0x6a BorderBottomStyle: BorderStyleType as Initial default BorderStyle::None;
0x6b BorderBottomColor: ColorType as Initial default Color::CurrentColor;
0x6c BoxShadow: BoxShadowType as Initial default BoxShadow::None;

// border radius
0x70 BorderTopLeftRadius: BorderRadiusType as Initial default BorderRadius::Pos(Length::Undefined, Length::Undefined);
0x71 BorderTopRightRadius: BorderRadiusType as Initial default BorderRadius::Pos(Length::Undefined, Length::Undefined);
0x72 BorderBottomRightRadius: BorderRadiusType as Initial default BorderRadius::Pos(Length::Undefined, Length::Undefined);
0x73 BorderBottomLeftRadius: BorderRadiusType as Initial default BorderRadius::Pos(Length::Undefined, Length::Undefined);
0x70 BorderTopLeftRadius: BorderRadiusType as Initial default BorderRadius::Pos(Length::Px(0.), Length::Px(0.));
0x71 BorderTopRightRadius: BorderRadiusType as Initial default BorderRadius::Pos(Length::Px(0.), Length::Px(0.));
0x72 BorderBottomRightRadius: BorderRadiusType as Initial default BorderRadius::Pos(Length::Px(0.), Length::Px(0.));
0x73 BorderBottomLeftRadius: BorderRadiusType as Initial default BorderRadius::Pos(Length::Px(0.), Length::Px(0.));

// transition
0x80 TransitionProperty: TransitionPropertyType as Initial default TransitionProperty::List(Array::empty());
Expand Down
17 changes: 6 additions & 11 deletions float-pigment-css/tests/calc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,10 @@ pub fn calc() {
margin_left,
"margin-left",
"calc(10px + 10deg)",
Length::Undefined
Length::Px(0.)
);
test_parse_property!(margin_left, "margin-left", "calc(10px / 2)", Length::Px(5.));
test_parse_property!(
margin_left,
"margin-left",
"calc(10px / 0)",
Length::Undefined
);
test_parse_property!(margin_left, "margin-left", "calc(10px / 0)", Length::Px(0.));
test_parse_property!(
margin_left,
"margin-left",
Expand Down Expand Up @@ -507,10 +502,10 @@ pub fn calc_fraction() {
pub fn calc_operator_whitespace() {
test_parse_property!(width, "width", "calc(1px + 2px)", Length::Px(3.));
test_parse_property!(width, "width", "calc(1px - 2px)", Length::Px(-1.));
test_parse_property!(width, "width", "calc(1px -2px)", Length::Undefined);
test_parse_property!(width, "width", "calc(1px +2px)", Length::Undefined);
test_parse_property!(width, "width", "calc(1px- 2px)", Length::Undefined);
test_parse_property!(width, "width", "calc(1px+ 2px)", Length::Undefined);
test_parse_property!(width, "width", "calc(1px -2px)", Length::Auto);
test_parse_property!(width, "width", "calc(1px +2px)", Length::Auto);
test_parse_property!(width, "width", "calc(1px- 2px)", Length::Auto);
test_parse_property!(width, "width", "calc(1px+ 2px)", Length::Auto);

test_parse_property!(width, "width", "calc(1px * 3)", Length::Px(3.));
test_parse_property!(width, "width", "calc(1px *3)", Length::Px(3.));
Expand Down
2 changes: 1 addition & 1 deletion float-pigment-css/tests/media.rs
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ fn prefers_color_scheme() {
StyleQuery::single(None, None, None, "", "", &classes),
media_status,
);
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Auto);
}

#[test]
Expand Down
20 changes: 10 additions & 10 deletions float-pigment-css/tests/property.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3645,7 +3645,7 @@ mod background {
)
);
assert_eq!(np.background_image(), BackgroundImage::List(vec![].into()));
assert_eq!(np.background_color(), Color::Undefined);
assert_eq!(np.background_color(), Color::Specified(0, 0, 0, 0));
assert_eq!(
np.background_position(),
BackgroundPosition::List(
Expand Down Expand Up @@ -3728,7 +3728,7 @@ mod background {
)
);
assert_eq!(np.background_image(), BackgroundImage::List(vec![].into()));
assert_eq!(np.background_color(), Color::Undefined);
assert_eq!(np.background_color(), Color::Specified(0, 0, 0, 0));
assert_eq!(
np.background_position(),
BackgroundPosition::List(
Expand Down Expand Up @@ -3901,13 +3901,13 @@ mod sizing {
let mut ssg = StyleSheetGroup::new();
let ss = StyleSheet::from_str(
"
.a { width: 10vw; height: 10vh; }
",
.a { width: 10vw; height: 10vh; }
",
);
ssg.append(ss);
let np = query(&ssg, "", "", [""], []);
assert_eq!(np.width(), Length::Undefined);
assert_eq!(np.height(), Length::Undefined);
assert_eq!(np.width(), Length::Auto);
assert_eq!(np.height(), Length::Auto);
let np = query(&ssg, "", "", ["a"], []);
assert_eq!(np.width(), Length::Vw(10.));
assert_eq!(np.height(), Length::Vh(10.));
Expand Down Expand Up @@ -4062,10 +4062,10 @@ mod padding_margin {
);
ssg.append(ss);
let np = query(&ssg, "", "", [""], []);
assert_eq!(np.padding_left(), Length::Undefined);
assert_eq!(np.padding_right(), Length::Undefined);
assert_eq!(np.padding_top(), Length::Undefined);
assert_eq!(np.padding_bottom(), Length::Undefined);
assert_eq!(np.padding_left(), Length::Px(0.));
assert_eq!(np.padding_right(), Length::Px(0.));
assert_eq!(np.padding_top(), Length::Px(0.));
assert_eq!(np.padding_bottom(), Length::Px(0.));
let np = query(&ssg, "", "", ["a"], []);
assert_eq!(np.padding_left(), Length::Px(16.));
assert_eq!(np.padding_right(), Length::Rem(2.));
Expand Down
27 changes: 15 additions & 12 deletions float-pigment-css/tests/selector.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ fn multi_classes() {
assert_eq!(node_properties.width(), Length::Px(1.));
}
let node_properties = query(&ssg, "", "", ["b"], []);
assert_eq!(node_properties.width(), Length::Undefined);
assert_eq!(node_properties.width(), Length::Auto);
let node_properties = query(&ssg, "", "", ["a", "b"], []);
assert_eq!(node_properties.width(), Length::Px(2.));
let node_properties = query(&ssg, "", "", ["a", "c"], []);
Expand Down Expand Up @@ -166,17 +166,17 @@ fn parent() {
);
ssg.append(ss);
let node_properties = query(&ssg, "", "", ["a"], []);
assert_eq!(node_properties.width(), Length::Undefined);
assert_eq!(node_properties.width(), Length::Auto);
assert_eq!(node_properties.height(), Length::Px(3.));
let node_properties = query(&ssg, "", "", ["b"], []);
assert_eq!(node_properties.width(), Length::Px(2.));
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Auto);
let node_properties = query_list(
&ssg,
[QueryItem::new().c("a").end(), QueryItem::new().c("b").end()],
);
assert_eq!(node_properties.width(), Length::Px(1.));
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Auto);
let node_properties = query_list(
&ssg,
[
Expand All @@ -186,7 +186,7 @@ fn parent() {
],
);
assert_eq!(node_properties.width(), Length::Px(2.));
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Auto);
}

#[test]
Expand Down Expand Up @@ -304,8 +304,8 @@ fn attribute_selector() {
);
ssg.append(ss);
let node_properties = query(&ssg, "a", "", [""], []);
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.width(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Auto);
assert_eq!(node_properties.width(), Length::Auto);
let node_properties = query(
&ssg,
"a",
Expand All @@ -317,7 +317,7 @@ fn attribute_selector() {
],
);
assert_eq!(node_properties.height(), Length::Px(100.));
assert_eq!(node_properties.width(), Length::Undefined);
assert_eq!(node_properties.width(), Length::Auto);
let node_properties = query(
&ssg,
"a",
Expand All @@ -333,7 +333,7 @@ fn attribute_selector() {
let node_properties = query(&ssg, "a", "", ["b"], [("title".into(), "".into())]);
assert_eq!(node_properties.height(), Length::Px(100.));
let node_properties = query(&ssg, "", "", [], [("title".into(), "".into())]);
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Auto);

let node_properties = query(
&ssg,
Expand All @@ -342,8 +342,8 @@ fn attribute_selector() {
[],
[("href".into(), "https://example.org".into())],
);
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.width(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Auto);
assert_eq!(node_properties.width(), Length::Auto);
assert_eq!(node_properties.min_height(), Length::Px(100.));
assert_eq!(node_properties.max_height(), Length::Px(101.));
assert_eq!(node_properties.min_width(), Length::Px(102.));
Expand Down Expand Up @@ -985,7 +985,10 @@ fn pseudo_elements_selector_matching() {
ssg.append(ss);
let node_properties = query_single(&ssg, QueryItem::new().pe(PseudoElements::Selection).end());
assert_eq!(node_properties.color(), Color::Specified(255, 0, 0, 255));
assert_eq!(node_properties.background_color(), Color::Undefined);
assert_eq!(
node_properties.background_color(),
Color::Specified(0, 0, 0, 0)
);
let node_properties = query_single(
&ssg,
QueryItem::new()
Expand Down
4 changes: 2 additions & 2 deletions float-pigment-css/tests/serde.rs
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ fn media_queries() {
media_query_status.width = 801.;
{
let node_properties = query_with_media(&ssg, "", "", ["a"], [], &media_query_status);
assert_eq!(node_properties.width(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.width(), Length::Auto);
assert_eq!(node_properties.height(), Length::Auto);
assert_eq!(node_properties.font_size(), Length::Px(4.));
}
});
Expand Down
16 changes: 8 additions & 8 deletions float-pigment-css/tests/style_sheet_group.rs
Original file line number Diff line number Diff line change
Expand Up @@ -140,12 +140,12 @@ fn style_sheet_resource_media_import() {
assert_eq!(node_properties.height(), Length::Px(8.));
let media = MediaQueryStatus::default_screen_with_size(801., 600.);
let node_properties = query_with_media(&ssg, "", "", ["a"], [], &media);
assert_eq!(node_properties.width(), Length::Undefined);
assert_eq!(node_properties.width(), Length::Auto);
assert_eq!(node_properties.height(), Length::Px(8.));
let media = MediaQueryStatus::default_screen_with_size(800., 601.);
let node_properties = query_with_media(&ssg, "", "", ["a"], [], &media);
assert_eq!(node_properties.width(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.width(), Length::Auto);
assert_eq!(node_properties.height(), Length::Auto);
}

#[test]
Expand Down Expand Up @@ -346,7 +346,7 @@ fn scopes_in_tag_name_and_id() {
&mut node_properties,
);
assert_eq!(node_properties.width(), Length::Px(0.));
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Auto);
let query = StyleQuery::single(NonZeroUsize::new(1), None, None, "view", "i", &classes);
let mut node_properties = NodeProperties::new(None);
ssg.query_single(
Expand All @@ -355,7 +355,7 @@ fn scopes_in_tag_name_and_id() {
&mut node_properties,
);
assert_eq!(node_properties.width(), Length::Px(1.));
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Auto);
let query = StyleQuery::single(NonZeroUsize::new(2), None, None, "view", "i", &classes);
let mut node_properties = NodeProperties::new(None);
ssg.query_single(
Expand Down Expand Up @@ -406,7 +406,7 @@ fn scopes_in_classes() {
&mut node_properties,
);
assert_eq!(node_properties.width(), Length::Px(0.));
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Auto);
let classes = vec![("a".into(), NonZeroUsize::new(1))];
let query = StyleQuery::single(None, None, None, "", "", &classes);
let mut node_properties = NodeProperties::new(None);
Expand All @@ -416,7 +416,7 @@ fn scopes_in_classes() {
&mut node_properties,
);
assert_eq!(node_properties.width(), Length::Px(1.));
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Auto);
let classes = vec![("a".into(), NonZeroUsize::new(2))];
let query = StyleQuery::single(None, None, None, "", "", &classes);
let mut node_properties = NodeProperties::new(None);
Expand All @@ -426,6 +426,6 @@ fn scopes_in_classes() {
&mut node_properties,
);
assert_eq!(node_properties.width(), Length::Px(2.));
assert_eq!(node_properties.height(), Length::Undefined);
assert_eq!(node_properties.height(), Length::Auto);
}
}
Loading