diff --git a/float-pigment-css/src/property.rs b/float-pigment-css/src/property.rs index 3ea9db4..2be2883 100644 --- a/float-pigment-css/src/property.rs +++ b/float-pigment-css/src/property.rs @@ -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()); @@ -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()); diff --git a/float-pigment-css/tests/calc.rs b/float-pigment-css/tests/calc.rs index f3a47c7..e80c9c6 100644 --- a/float-pigment-css/tests/calc.rs +++ b/float-pigment-css/tests/calc.rs @@ -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", @@ -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.)); diff --git a/float-pigment-css/tests/media.rs b/float-pigment-css/tests/media.rs index afce961..5f98e33 100644 --- a/float-pigment-css/tests/media.rs +++ b/float-pigment-css/tests/media.rs @@ -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] diff --git a/float-pigment-css/tests/property.rs b/float-pigment-css/tests/property.rs index 6a7a239..f07cc4a 100644 --- a/float-pigment-css/tests/property.rs +++ b/float-pigment-css/tests/property.rs @@ -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( @@ -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( @@ -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.)); @@ -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.)); diff --git a/float-pigment-css/tests/selector.rs b/float-pigment-css/tests/selector.rs index cbcc6e8..8738faa 100644 --- a/float-pigment-css/tests/selector.rs +++ b/float-pigment-css/tests/selector.rs @@ -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"], []); @@ -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, [ @@ -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] @@ -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", @@ -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", @@ -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, @@ -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.)); @@ -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() diff --git a/float-pigment-css/tests/serde.rs b/float-pigment-css/tests/serde.rs index b84c005..af37bb7 100644 --- a/float-pigment-css/tests/serde.rs +++ b/float-pigment-css/tests/serde.rs @@ -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.)); } }); diff --git a/float-pigment-css/tests/style_sheet_group.rs b/float-pigment-css/tests/style_sheet_group.rs index 828af65..41ee4da 100644 --- a/float-pigment-css/tests/style_sheet_group.rs +++ b/float-pigment-css/tests/style_sheet_group.rs @@ -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] @@ -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( @@ -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( @@ -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); @@ -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); @@ -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); } }