<!DOCTYPE html>
<title>CSS Container Queries: scroll-state(stuck) conditionText serialization</title>
<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="help" href="https://drafts.csswg.org/cssom/#serialize-a-css-rule">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/css-conditional/container-queries/support/cq-testcommon.js"></script>
<style id="testSheet">
  @container scroll-state(        stuck:top) { }
  @container scroll-STate(stuck:    ) { }
  @container scroll-STate(stuck) { }
  @container  scroll-state(  ( stuck: BOTTOM) OR ( STUCK: inline-START  ) ) { }
  @container scroll-state (stuck: top) { }
</style>
<script>
  setup(() => {
    assert_implements_scroll_state_container_queries();
    assert_equals(testSheet.sheet.cssRules.length, 5);
  });

  const tests = [
      ["scroll-state(stuck: top)", "Normalize spaces"],
      ["scroll-STate(stuck:    )", "No value - invalid, serializes as <general-enclosed>"],
      ["scroll-state(stuck)", "Boolean context"],
      ["scroll-state((stuck: bottom) or (stuck: inline-start))", "Logical with 'or'"],
      ["scroll-state (stuck: top)", "Not a scroll-state function with space before '('"]
  ].map((e, i) => [testSheet.sheet.cssRules[i], ...e]);

  tests.forEach((t) => {
    test(() => assert_equals(t[0].conditionText, t[1]), t[2]);
  });
</script>
