<meta charset="utf-8">
<title>CSS Logical Properties</title>
<link rel="author" title="Xu Xing" href="mailto:openxu@gmail.com">
<link rel="help" href="https://drafts.csswg.org/css-logical-props-1/#logical-dimension-properties">
<link rel="help" href="https://drafts.csswg.org/css-logical-props-1/#logical-prop">
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#logical-to-physical">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<style> #dummy {} </style>

<script>
function isValidDeclaration(cssText) {
  var cssRule = document.styleSheets[0].cssRules[0];
  cssRule.style = cssText;
  var valid = (cssRule.style.length > 0);
  cssRule.style = "";
  return valid;
}
var tests = [
  {cssText:"block-size: 1"},
  {cssText:"min-block-size: 1"},
  {cssText:"max-block-size: 1"},
  {cssText:"inline-size: 1"},
  {cssText:"min-inline-size: 1"},
  {cssText:"max-inline-size: 1"},
  {cssText:"margin-block-start: 1"},
  {cssText:"margin-block-end: 1"},
  {cssText:"margin-inline-start: 1"},
  {cssText:"margin-inline-end: 1"},
];

tests.forEach(function(t) {
  test(() => assert_false(isValidDeclaration(t.cssText)), 'Check that "' + t.cssText + '" is not valid in quirks mode');
});
</script>
