[@container] Move container-* property tests to wpt

Align tests with current spec draft and move inheritance tests into a
separate file with the inheritance framework.

Bug: 1145970
Change-Id: Iae670cd394eee3728b170575b30b175e6a884cde
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3303814
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#946958}
diff --git a/css/css-contain/container-queries/container-computed.html b/css/css-contain/container-queries/container-computed.html
new file mode 100644
index 0000000..3485e2f
--- /dev/null
+++ b/css/css-contain/container-queries/container-computed.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Computed values of container</title>
+<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name">
+<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<div id="target"></div>
+<script>
+test_computed_value('container', 'initial', 'none');
+test_computed_value('container', 'inherit', 'none');
+test_computed_value('container', 'unset', 'none');
+test_computed_value('container', 'inline-size');
+test_computed_value('container', 'size');
+test_computed_value('container', 'inline-size / inline-size');
+test_computed_value('container', 'size / block-size');
+test_computed_value('container', 'size style / name', 'style size / name');
+test_computed_value('container', 'inline-size state style/ name', 'style state inline-size / name');
+test_computed_value('container', 'inline-size / foo');
+test_computed_value('container', 'inline-size /foo', 'inline-size / foo');
+test_computed_value('container', 'inline-size/ foo', 'inline-size / foo');
+test_computed_value('container', 'inline-size/foo', 'inline-size / foo');
+test_computed_value('container', 'size / FoO', 'size / FoO');
+</script>
diff --git a/css/css-contain/container-queries/container-inheritance.html b/css/css-contain/container-queries/container-inheritance.html
new file mode 100644
index 0000000..0dda54a
--- /dev/null
+++ b/css/css-contain/container-queries/container-inheritance.html
@@ -0,0 +1,15 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Inheritance of container-*</title>
+<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name">
+<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/inheritance-testcommon.js"></script>
+<div id="container">
+  <div id="target"></div>
+</div>
+<script>
+assert_not_inherited('container-name', 'none', 'foo');
+assert_not_inherited('container-type', 'none', 'inline-size');
+</script>
diff --git a/css/css-contain/container-queries/container-name-computed.html b/css/css-contain/container-queries/container-name-computed.html
new file mode 100644
index 0000000..dfd00a0
--- /dev/null
+++ b/css/css-contain/container-queries/container-name-computed.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Computed values of container-name</title>
+<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<div id="target"></div>
+<script>
+test_computed_value('container-name', 'initial', 'none');
+test_computed_value('container-name', 'unset', 'none');
+test_computed_value('container-name', 'foo');
+test_computed_value('container-name', 'FoO');
+</script>
diff --git a/css/css-contain/container-queries/container-name-parsing.html b/css/css-contain/container-queries/container-name-parsing.html
new file mode 100644
index 0000000..de408dd
--- /dev/null
+++ b/css/css-contain/container-queries/container-name-parsing.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Parsing of container-name</title>
+<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+<div id="target"></div>
+<script>
+test_valid_value('container-name', 'initial');
+test_valid_value('container-name', 'inherit');
+test_valid_value('container-name', 'unset');
+test_valid_value('container-name', 'revert');
+test_valid_value('container-name', 'none');
+test_valid_value('container-name', 'foo');
+test_valid_value('container-name', 'BAR');
+test_valid_value('container-name', 'foo bar');
+
+test_invalid_value('container-name', 'none none');
+test_invalid_value('container-name', 'foo, bar');
+test_invalid_value('container-name', '#fff');
+test_invalid_value('container-name', '1px');
+test_invalid_value('container-name', 'default'); /* reserved */
+</script>
diff --git a/css/css-contain/container-queries/container-parsing.html b/css/css-contain/container-queries/container-parsing.html
new file mode 100644
index 0000000..9ec72b2
--- /dev/null
+++ b/css/css-contain/container-queries/container-parsing.html
@@ -0,0 +1,47 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Parsing of container</title>
+<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name">
+<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+<div id="target"></div>
+<script>
+test_valid_value('container', 'initial');
+test_valid_value('container', 'inherit');
+test_valid_value('container', 'unset');
+test_valid_value('container', 'revert');
+test_valid_value('container', 'none');
+test_valid_value('container', 'none / none', 'none');
+test_valid_value('container', 'inline-size');
+test_valid_value('container', 'inline-size / none', 'inline-size');
+test_valid_value('container', 'size');
+test_valid_value('container', 'size / block-size');
+test_valid_value('container', 'inline-size / inline-size');
+test_valid_value('container', 'size / size');
+test_valid_value('container', 'size state / none', 'size state');
+
+test_invalid_value('container', 'none none');
+test_invalid_value('container', 'none inline-size');
+test_invalid_value('container', 'inline-size none');
+test_invalid_value('container', 'inline-size inline-size');
+test_invalid_value('container', 'inline-size block-size unknown');
+test_invalid_value('container', 'inline-size block-size');
+test_invalid_value('container', 'size block-size');
+test_invalid_value('container', 'none, none');
+test_invalid_value('container', 'foo');
+test_invalid_value('container', 'foo, bar');
+test_invalid_value('container', '#fff');
+test_invalid_value('container', '1px');
+test_invalid_value('container', 'default');
+test_invalid_value('container', 'inline-size / 10px');
+test_invalid_value('container', 'inline-size / #fefefe');
+test_invalid_value('container', 'inline-size / calc(3px)');
+test_invalid_value('container', 'size 1 / name');
+test_invalid_value('container', 'block-size');
+test_invalid_value('container', 'block-size / name');
+test_invalid_value('container', 'block-size /  NAME', 'block-size / NAME');
+test_invalid_value('container', 'block-size/NAME','block-size / NAME');
+test_invalid_value('container', 'block-size / block-size');
+</script>
diff --git a/css/css-contain/container-queries/container-type-computed.html b/css/css-contain/container-queries/container-type-computed.html
new file mode 100644
index 0000000..edcd057
--- /dev/null
+++ b/css/css-contain/container-queries/container-type-computed.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Computed values of container-type</title>
+<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<div id="target"></div>
+<script>
+test_computed_value('container-type', 'initial', 'none');
+test_computed_value('container-type', 'unset', 'none');
+test_computed_value('container-type', 'inline-size');
+test_computed_value('container-type', 'size');
+</script>
diff --git a/css/css-contain/container-queries/container-type-parsing.html b/css/css-contain/container-queries/container-type-parsing.html
new file mode 100644
index 0000000..7a2e2d6
--- /dev/null
+++ b/css/css-contain/container-queries/container-type-parsing.html
@@ -0,0 +1,42 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Containment Test: Parsing of container-type</title>
+<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+<div id="target"></div>
+<script>
+test_valid_value('container-type', 'initial');
+test_valid_value('container-type', 'inherit');
+test_valid_value('container-type', 'unset');
+test_valid_value('container-type', 'revert');
+test_valid_value('container-type', 'none');
+test_valid_value('container-type', 'style');
+test_valid_value('container-type', 'state');
+test_valid_value('container-type', 'size');
+test_valid_value('container-type', 'inline-size');
+
+test_valid_value('container-type', 'inline-size state');
+test_valid_value('container-type', 'style state');
+test_valid_value('container-type', 'style inline-size');
+test_valid_value('container-type', 'state size');
+
+test_invalid_value('container-type', 'block-size');
+test_invalid_value('container-type', 'none none');
+test_invalid_value('container-type', 'none inline-size');
+test_invalid_value('container-type', 'inline-size none');
+test_invalid_value('container-type', 'inline-size inline-size');
+test_invalid_value('container-type', 'inline-size block-size');
+test_invalid_value('container-type', 'block-size inline-size');
+test_invalid_value('container-type', 'size inline-size');
+test_invalid_value('container-type', 'inline-size size');
+test_invalid_value('container-type', 'none, none');
+test_invalid_value('container-type', 'foo');
+test_invalid_value('container-type', '"foo"');
+test_invalid_value('container-type', 'foo, bar');
+test_invalid_value('container-type', '#fff');
+test_invalid_value('container-type', '1px');
+test_invalid_value('container-type', 'default');
+test_invalid_value('container-type', 'size nonsense');
+</script>