CSS Conditional Rules Module Level 3 CR Test Suite

Feature queries: the @supports rule (85 tests)

Test Refs Flags Info
+ 6 Feature queries: the @supports rule
001 Script @supports rules OM support
at-supports-001 = Support for simple passing conditions in @supports
at-supports-002 = Support for @supports within @media
at-supports-003 = Support for @media within @supports
at-supports-004 = @supports within non-matching @media should not apply
at-supports-005 = non-matching @media within @supports should not apply
at-supports-006 = Nested parens around conditions in @supports should work
at-supports-007 = Conjunctions of passing simple conditions in @supports should pass
at-supports-008 = Disjunctions with at least a passing simple condition in @supports should pass
at-supports-009 = Negations of failing simple conditions in @supports should pass
at-supports-010 = Combinations of conjuctions, disjunctions, and negations of simple conditions in @supports should work
at-supports-011 = Invalid Conditions not enclosed in parens in @supports should not work
at-supports-012 = Conjunctions with more than two terms in @supports should work
at-supports-013 = Disjunction with more than two terms in @supports should work
at-supports-014 = Invalid Negations in @supports should not work if "not" isn't follow by a space
at-supports-015 = Bizarre syntax that still conforms to the core grammar should succesfully parse in @supports
at-supports-016 = Invalid In @supports, parens are required to mix conjunctions with disjunctions
at-supports-017 = In @supports, functions can be parsed successfully
at-supports-018 = In @supports conditions, the arguments of a function can begin with spaces
at-supports-019 = Invalid Incorrect syntax in @supports recovers properly
at-supports-020 = Invalid Incorrect syntax in @supports recovers properly
at-supports-021 = Invalid Incorrect syntax in @supports recovers properly
at-supports-022 = Invalid Incorrect syntax in @supports recovers properly
at-supports-023 = Invalid Incorrect syntax in nested @supports recovers properly
at-supports-024 = Invalid Incorrect syntax in @supports recovers properly
at-supports-025 = Invalid Incorrect syntax in @supports recovers properly
at-supports-026 = Invalid Incorrect syntax in @supports recovers properly
at-supports-027 = Invalid Incorrect syntax in @supports recovers properly
at-supports-028 = Invalid Incorrect syntax in @supports recovers properly
at-supports-029 = Invalid Incorrect syntax in @supports recovers properly
at-supports-030 = Invalid Incorrect syntax in @supports recovers properly
at-supports-031 = Invalid Incorrect syntax in @supports recovers properly
at-supports-032 = Invalid Incorrect syntax in @supports recovers properly
at-supports-033 = Invalid Incorrect syntax in @supports recovers properly
at-supports-034 = Invalid Incorrect syntax of supports condition
  • Each individual single supports condition must be enclosed by one opening parenthesis '(' and one closing parenthesis ')'.
at-supports-035 = Invalid Incorrect syntax of supports condition
  • Each individual single supports condition must be enclosed by one opening parenthesis '(' and one closing parenthesis ')'.
at-supports-036 = Invalid Incorrect syntax of supports condition
  • Each individual single supports condition must be enclosed by one opening parenthesis '(' and one closing parenthesis ')'.
at-supports-037 = Invalid Incorrect syntax of supports condition
  • Each individual single supports condition must be enclosed by one opening parenthesis '(' and one closing parenthesis ')'.
at-supports-038 = Invalid a supports condition declaration can not end with a semi-colon
  • Each individual single supports condition declaration can not end up with a semi-colon ';'. A semi-colon is a punctuation separator of multiple CSS declarations and thus is not part of an individual CSS declaration per se.
at-supports-039 = Invalid a supports condition declaration can not end with a semi-colon
  • Each individual single supports condition declaration can not end up with a semi-colon ';'. A semi-colon is a punctuation separator of multiple CSS declarations and thus is not part of an individual CSS declaration per se.
at-supports-043 = Invalid Disjunction token `or` should not immediately precede its following opening paren.
  • This tests that the `or` token requires at least one whitespace on its right hand. A string followed immediately by an opening paren is reserved for the functional notation syntax.
css-supports-001 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • An @supports rule condition with a single, valid property declaration for a supported property must cause the rules inside the @supports rule to apply.
css-supports-002 = Invalid An @supports rule with invalid syntax must not apply rules inside it
  • Property declarations in an @supports rule condition must be surrounded by parentheses.
css-supports-003 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • Any subexpression in an @supports rule condition can be surrounded by an extra pair of parentheses.
css-supports-004 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • Property declarations in an @supports rule can have !important specified.
css-supports-005 = An @supports rule with valid syntax but a failing condition must not apply rules inside it
  • A supported property with an unsupported value must cause the @supports condition to fail.
css-supports-006 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • A disjunction of two @supports conditions must cause the @supports condition to pass if the left condition passes.
css-supports-007 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • A disjunction of two @supports conditions must cause the @supports condition to pass if the right condition passes.
css-supports-008 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • A conjunction of two @supports conditions must cause the @supports condition to pass if both sub-conditions pass.
css-supports-009 = An @supports rule with valid syntax but a failing condition must not apply rules inside it
  • A conjunction of two @supports conditions must cause the @supports condition to fail if the left sub-condition passes.
css-supports-010 = An @supports rule with valid syntax but a failing condition must not apply rules inside it
  • A conjunction of two @supports conditions must cause the @supports condition to fail if the right sub-condition passes.
css-supports-011 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • A disjunction of three @supports conditions must cause the @supports condition to pass if at least one of the sub-conditions passes.
css-supports-012 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • A conjunction of three @supports conditions must cause the @supports condition to pass if all three sub-conditions pass.
css-supports-013 = Invalid An @supports rule with invalid syntax must not apply rules inside it
  • A disjunction and a conjunction of @supports conditions must not be combined unless one of the two is surrounded by parentheses.
css-supports-014 = Invalid An @supports rule with invalid syntax must not apply rules inside it
  • A disjunction and a conjunction of @supports conditions must not be combined unless one of the two is surrounded by parentheses.
css-supports-015 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • There need not be any white space between the '@supports' and open brace of the rule set, nor between a declaration's property name and value.
css-supports-016 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • A negation of an @supports condition must pass if and only if the sub-condition fails. The sub-condition here is a supported property name with an unsupported value.
css-supports-017 = Invalid An @supports rule with invalid syntax must not apply rules inside it
  • The sub-condition of a negation in an @supports condition must be in parentheses.
css-supports-018 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • The sub-condition of a negation in an @supports condition must be in parentheses.
css-supports-019 = Invalid An @supports rule with invalid syntax must not apply rules inside it
  • A conjunction in an @supports condition must have both sub-conditions enclosed in parentheses.
css-supports-020 = An @supports rule with valid syntax but a failing condition must not apply rules inside it
  • An @supports condition that is a declaration with a supported property name with an unsupported value must fail.
css-supports-021 = An @supports rule with valid syntax but a failing condition must not apply rules inside it
  • A disjunction of two @supports conditions must cause the @supports condition to pass if one condition passes and the other fails due to being an unsupported property.
css-supports-022 = An @supports rule with balanced invalid syntax within parentheses must evaluate to false
  • An @supports condition must successfully parse even if a declaration has an empty property value.
css-supports-023 = An @supports rule with balanced invalid syntax within parentheses must evaluate to false
  • An @supports condition must successfully parse a parenthesized expression that has invalid syntax with balanced parentheses.
css-supports-024 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • A supported shorthand property declaration must be considered to pass.
css-supports-025 = A nested @supports rule with valid syntax and a passing condition must apply rules inside it
  • An inner @supports rule inside an outer @supports must apply its child rules only if both @supports conditions succeeded.
css-supports-026 = A nested @supports rule with valid syntax and a passing condition must apply rules inside it
  • An outer @supports rule with an inner @media rule must apply the rules inside the @media only if both the @supports and @media conditions pass.
css-supports-029 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • A disjunction in an @supports condition must have both sub-conditions enclosed in parentheses.
css-supports-030 = An @supports rule with valid syntax and a passing condition must apply rules inside it
  • A disjunction in an @supports condition must have both sub-conditions enclosed in parentheses.
css-supports-031 = An @supports rule with balanced invalid syntax within parentheses must evaluate to false
  • An @supports condition must successfully parse a parenthesized expression that has invalid syntax with balanced parentheses.
css-supports-032 = An @supports rule with balanced invalid syntax must evaluate to false
  • An @supports condition must successfully parse and evaluate to false a parenthesized expression has invalid syntax.
css-supports-033 = An @supports rule with balanced invalid syntax must evaluate to false
  • An @supports condition must successfully parse a parenthesized expression that has invalid syntax with balanced parentheses.
css-supports-034 = An @supports rule with balanced invalid syntax must evaluate to false
  • An @supports condition must successfully parse a parenthesized expression that has invalid syntax with balanced parentheses.
css-supports-035 = Invalid An @supports rule with unbalanced invalid syntax must fail to parse
  • An @supports condition with a parenthesized expression that has unbalanced parentheses must fail to parse.
css-supports-036 = An @supports rule with an unrecognized condition using functional notation must evaluate to false
  • An @supports condition with an unrecognized condition using functional notation must evaluate to false.
css-supports-037 = Invalid An @supports rule with an unrecognized condition using functional notation with unbalanced parentheses must fail to parse
  • An @supports condition with an unrecognized condition using functional notation with unbalanced parentheses must fail to parse.
css-supports-038 = In an @supports rule "not(" must be parsed as a FUNCTION
  • An @supports condition with 'not(' must parse be parsed as a FUNCTION token.
css-supports-039 = Invalid In an @supports rule "or(" must be parsed as a FUNCTION
  • An @supports condition with 'or(' must parse be parsed as a FUNCTION token.
css-supports-040 = An @supports rule condition with empty parentheses should evaluates to false
  • An @supports rule condition that consists just of a pair of parentheses should evaluate to false.
css-supports-041 = An @supports rule condition with empty parentheses should evaluates to false
  • An @supports rule condition that consists just of a pair of parentheses should evaluate to false.
css-supports-042 = An @supports rule condition with an unexpected token before the closing paren of a supports_condition_in_parens should parse as a general_enclosed
  • An @supports rule condition that has an unexpected token before the closing paren of a supports_condition_in_parens should parse as a general_enclosed and evaluate to false rather than fail to parse.
css-supports-043 = An @supports rule condition with a bogus priority should evaluate to false
  • An @supports rule condition with a bogus priority should evaluate to false
css-supports-044 = An @supports rule condition with tokens after the priority should evaluate to false
  • An @supports rule condition with tokens after the priority should evaluate to false
css-supports-045 = An @supports rule condition with two priorities should evaluate to false
  • An @supports rule condition with two priorities should evaluate to false
css-supports-046 = A nested @supports rule with valid syntax and a passing condition must apply rules inside it
  • An outer @media rule with an inner @supports rule must apply the rules inside the @supports only if both the @supports and @media conditions pass.
+ 6.1 Definition of support