Update web-platform-tests to revision 5c34fc630374b9eb0559139a486ff1a2e4247c4f

This commit is contained in:
WPT Sync Bot 2020-05-28 08:18:22 +00:00
parent b0f0bd8282
commit 1b463fce85
222 changed files with 5045 additions and 641 deletions

View file

@ -0,0 +1,4 @@
[buffer-is-detached.https.window.html]
[writeValueWithResponse() fails when passed a detached buffer]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.https.window.html]
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[gen-characteristic-is-removed.https.window.html]
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.https.window.html]
[Service gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[write-succeeds.https.window.html]
[A regular write request to a writable characteristic should succeed.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[buffer-is-detached.https.window.html]
[writeValueWithoutResponse() fails when passed a detached buffer]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.https.window.html]
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[gen-characteristic-is-removed.https.window.html]
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.https.window.html]
[Service gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[write-succeeds.https.window.html]
[A regular write request to a writable characteristic should succeed.]
expected: FAIL

View file

@ -1,4 +0,0 @@
[hit-test-floats-003.html]
[Miss float below something else]
expected: FAIL

View file

@ -1,2 +0,0 @@
[mix-blend-mode-animation.html]
expected: TIMEOUT

View file

@ -2,3 +2,6 @@
[Hit test intersecting scaled box] [Hit test intersecting scaled box]
expected: FAIL expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

@ -0,0 +1,2 @@
[appearance-transition.tentative.html]
expected: FAIL

View file

@ -2,3 +2,6 @@
[listeners are called when <iframe> is resized] [listeners are called when <iframe> is resized]
expected: FAIL expected: FAIL
[listeners are called correct number of times]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -1,4 +0,0 @@
[elementsFromPoint-invalid-cases.html]
[The root element is the last element returned for otherwise empty queries within the viewport]
expected: FAIL

View file

@ -3,12 +3,6 @@
[Legacy listener of animationend] [Legacy listener of animationend]
expected: TIMEOUT expected: TIMEOUT
[Listener of animationstart]
expected: TIMEOUT
[Listener of animationend]
expected: FAIL
[Legacy listener of transitionend] [Legacy listener of transitionend]
expected: TIMEOUT expected: TIMEOUT

View file

@ -1,5 +1,4 @@
[webkit-transition-end-event.html] [webkit-transition-end-event.html]
expected: TIMEOUT
[dispatchEvent of an transitionend event does not trigger a prefixed event handler or listener] [dispatchEvent of an transitionend event does not trigger a prefixed event handler or listener]
expected: FAIL expected: FAIL
@ -13,14 +12,11 @@
expected: FAIL expected: FAIL
[event types for prefixed and unprefixed transitionend event listeners should be named appropriately] [event types for prefixed and unprefixed transitionend event listeners should be named appropriately]
expected: TIMEOUT expected: FAIL
[ontransitionend and onwebkittransitionend are not aliases] [ontransitionend and onwebkittransitionend are not aliases]
expected: FAIL expected: FAIL
[webkitTransitionEnd event listener is case sensitive]
expected: NOTRUN
[webkitTransitionEnd event listener should trigger for an animation] [webkitTransitionEnd event listener should trigger for an animation]
expected: FAIL expected: FAIL

View file

@ -318,18 +318,15 @@
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*] [<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk] [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
expected: FAIL

View file

@ -56,3 +56,6 @@
[separate text/javascript x/x] [separate text/javascript x/x]
expected: FAIL expected: FAIL
[separate text/javascript;charset=windows-1252 text/javascript]
expected: FAIL

View file

@ -11,6 +11,9 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL expected: FAIL
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff] [X-Content-Type-Options%3A%20'NosniFF']
expected: FAIL
[X-Content-Type-Options%3A%20%2Cnosniff]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_2.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -0,0 +1,4 @@
[creating_browsing_context_test_01.html]
[first argument: absolute url]
expected: FAIL

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-1.html] [iframe_sandbox_popups_escaping-1.html]
expected: CRASH expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT expected: TIMEOUT

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-3.html] [iframe_sandbox_popups_escaping-3.html]
expected: TIMEOUT expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT expected: TIMEOUT

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_nonescaping-1.html] [iframe_sandbox_popups_nonescaping-1.html]
expected: CRASH expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN expected: NOTRUN

View file

@ -1,4 +1,5 @@
[iframe_sandbox_popups_nonescaping-3.html] [iframe_sandbox_popups_nonescaping-3.html]
expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: FAIL

View file

@ -8,6 +8,3 @@
[Check that rel=noopener with target=_top does a normal load] [Check that rel=noopener with target=_top does a normal load]
expected: FAIL expected: FAIL
[Check that rel=noopener with target=_self does a normal load]
expected: FAIL

View file

@ -3,3 +3,6 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] [The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: FAIL

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,4 @@
[buffer-is-detached.https.window.html]
[writeValueWithResponse() fails when passed a detached buffer]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.https.window.html]
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[gen-characteristic-is-removed.https.window.html]
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.https.window.html]
[Service gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[write-succeeds.https.window.html]
[A regular write request to a writable characteristic should succeed.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[buffer-is-detached.https.window.html]
[writeValueWithoutResponse() fails when passed a detached buffer]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.https.window.html]
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[gen-characteristic-is-removed.https.window.html]
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.https.window.html]
[Service gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[write-succeeds.https.window.html]
[A regular write request to a writable characteristic should succeed.]
expected: FAIL

View file

@ -1,4 +0,0 @@
[hit-test-floats-003.html]
[Miss float below something else]
expected: FAIL

View file

@ -1,2 +0,0 @@
[mix-blend-mode-animation.html]
expected: TIMEOUT

View file

@ -2,3 +2,6 @@
[Hit test intersecting scaled box] [Hit test intersecting scaled box]
expected: FAIL expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

@ -0,0 +1,2 @@
[appearance-transition.tentative.html]
expected: FAIL

View file

@ -2,3 +2,6 @@
[listeners are called when <iframe> is resized] [listeners are called when <iframe> is resized]
expected: FAIL expected: FAIL
[listeners are called correct number of times]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -1,4 +0,0 @@
[elementsFromPoint-invalid-cases.html]
[The root element is the last element returned for otherwise empty queries within the viewport]
expected: FAIL

View file

@ -4,9 +4,6 @@
[Legacy listener of transitionend] [Legacy listener of transitionend]
expected: TIMEOUT expected: TIMEOUT
[Listener of animationend]
expected: FAIL
[Legacy listener of animationend] [Legacy listener of animationend]
expected: TIMEOUT expected: TIMEOUT
@ -16,9 +13,6 @@
[Legacy listener of animationiteration] [Legacy listener of animationiteration]
expected: TIMEOUT expected: TIMEOUT
[Listener of animationstart]
expected: TIMEOUT
[Legacy listener of animationstart] [Legacy listener of animationstart]
expected: TIMEOUT expected: TIMEOUT

View file

@ -1,5 +1,4 @@
[webkit-transition-end-event.html] [webkit-transition-end-event.html]
expected: TIMEOUT
[dispatchEvent of an transitionend event does not trigger a prefixed event handler or listener] [dispatchEvent of an transitionend event does not trigger a prefixed event handler or listener]
expected: FAIL expected: FAIL
@ -13,7 +12,7 @@
expected: FAIL expected: FAIL
[event types for prefixed and unprefixed transitionend event listeners should be named appropriately] [event types for prefixed and unprefixed transitionend event listeners should be named appropriately]
expected: TIMEOUT expected: FAIL
[ontransitionend and onwebkittransitionend are not aliases] [ontransitionend and onwebkittransitionend are not aliases]
expected: FAIL expected: FAIL
@ -27,6 +26,3 @@
[onwebkittransitionend event handler should not trigger if an unprefixed event handler also exists] [onwebkittransitionend event handler should not trigger if an unprefixed event handler also exists]
expected: FAIL expected: FAIL
[webkitTransitionEnd event listener is case sensitive]
expected: NOTRUN

View file

@ -318,18 +318,15 @@
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*] [<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk] [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
expected: FAIL

View file

@ -56,3 +56,6 @@
[separate text/javascript x/x] [separate text/javascript x/x]
expected: FAIL expected: FAIL
[separate text/javascript;charset=windows-1252 text/javascript]
expected: FAIL

View file

@ -11,6 +11,9 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL expected: FAIL
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff] [X-Content-Type-Options%3A%20'NosniFF']
expected: FAIL
[X-Content-Type-Options%3A%20%2Cnosniff]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_2.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -0,0 +1,4 @@
[creating_browsing_context_test_01.html]
[first argument: absolute url]
expected: FAIL

View file

@ -1,6 +1,6 @@
[iframe_sandbox_popups_escaping-1.html] [iframe_sandbox_popups_escaping-1.html]
type: testharness type: testharness
expected: CRASH expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT expected: TIMEOUT

View file

@ -1,6 +1,6 @@
[iframe_sandbox_popups_escaping-3.html] [iframe_sandbox_popups_escaping-3.html]
type: testharness type: testharness
expected: TIMEOUT expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT expected: TIMEOUT

View file

@ -1,6 +1,6 @@
[iframe_sandbox_popups_nonescaping-1.html] [iframe_sandbox_popups_nonescaping-1.html]
type: testharness type: testharness
expected: CRASH expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN expected: NOTRUN

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_nonescaping-3.html] [iframe_sandbox_popups_nonescaping-3.html]
type: testharness type: testharness
expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: FAIL

View file

@ -12,6 +12,3 @@
[Check that rel=noopener with target=_top does a normal load] [Check that rel=noopener with target=_top does a normal load]
expected: FAIL expected: FAIL
[Check that rel=noopener with target=_self does a normal load]
expected: FAIL

View file

@ -4,3 +4,6 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] [The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: FAIL

View file

@ -10,22 +10,29 @@ bluetooth_test(async () => {
const {characteristic, fake_characteristic} = const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic(); await getMeasurementIntervalCharacteristic();
let last_value = await fake_characteristic.getLastWrittenValue(); let lastValue, lastWriteType;
assert_equals(last_value, null); ({lastValue, lastWriteType} =
await fake_characteristic.getLastWrittenValue());
assert_equals(lastValue, null);
assert_equals(lastWriteType, 'none');
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS); await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
const typed_array = Uint8Array.of(1, 2); const typed_array = Uint8Array.of(1, 2);
await characteristic.writeValue(typed_array); await characteristic.writeValue(typed_array);
last_value = await fake_characteristic.getLastWrittenValue(); ({lastValue, lastWriteType} =
assert_array_equals(last_value, [1, 2]); await fake_characteristic.getLastWrittenValue());
assert_array_equals(lastValue, [1, 2]);
assert_equals(lastWriteType, 'default-deprecated');
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS); await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
const array_buffer = Uint8Array.of(3, 4).buffer; const array_buffer = Uint8Array.of(3, 4).buffer;
await characteristic.writeValue(array_buffer); await characteristic.writeValue(array_buffer);
last_value = await fake_characteristic.getLastWrittenValue(); ({lastValue, lastWriteType} =
assert_array_equals(last_value, [3, 4]); await fake_characteristic.getLastWrittenValue());
assert_array_equals(lastValue, [3, 4]);
assert_equals(lastWriteType, 'default-deprecated');
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS); await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
@ -33,6 +40,8 @@ bluetooth_test(async () => {
data_view.setUint8(0, 5); data_view.setUint8(0, 5);
data_view.setUint8(1, 6); data_view.setUint8(1, 6);
await characteristic.writeValue(data_view); await characteristic.writeValue(data_view);
last_value = await fake_characteristic.getLastWrittenValue(); ({lastValue, lastWriteType} =
assert_array_equals(last_value, [5, 6]); await fake_characteristic.getLastWrittenValue());
assert_array_equals(lastValue, [5, 6]);
assert_equals(lastWriteType, 'default-deprecated');
}, test_desc); }, test_desc);

View file

@ -0,0 +1,27 @@
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-test.js
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
'use strict';
const test_desc =
'writeValueWithResponse() fails when passed a detached buffer';
function detachBuffer(buffer) {
window.postMessage('', '*', [buffer]);
}
bluetooth_test(async (t) => {
const {characteristic} = await getMeasurementIntervalCharacteristic();
const typed_array = Uint8Array.of(1, 2);
detachBuffer(typed_array.buffer);
await promise_rejects_dom(
t, 'InvalidStateError',
characteristic.writeValueWithResponse(typed_array));
const array_buffer = Uint8Array.of(3, 4).buffer;
detachBuffer(array_buffer);
await promise_rejects_dom(
t, 'InvalidStateError',
characteristic.writeValueWithResponse(array_buffer));
}, test_desc);

View file

@ -0,0 +1,17 @@
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-test.js
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
'use strict';
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
const expected = new DOMException(
'GATT Characteristic no longer exists.', 'InvalidStateError');
bluetooth_test(async () => {
const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
await fake_characteristic.remove();
await assert_promise_rejects_with_message(
characteristic.writeValueWithResponse(new ArrayBuffer(1 /* length */)),
expected, 'Characteristic got removed.');
}, test_desc);

View file

@ -0,0 +1,27 @@
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-test.js
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
// Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py
'use strict';
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
const expected = new DOMException(
'GATT Characteristic no longer exists.', 'InvalidStateError');
let fake_peripheral, characteristic, fake_characteristic;
bluetooth_test(
() =>
getMeasurementIntervalCharacteristic()
.then(
_ => (
{fake_peripheral, characteristic, fake_characteristic} = _))
.then(() => characteristic.getDescriptor(user_description.name))
.then(
() => null,
(e) => assert_unreached('Caught error unexpectedly.', e))
.then(() => fake_characteristic.remove())
.then(() => fake_peripheral.simulateGATTServicesChanged())
.then(
() => assert_promise_rejects_with_message(
characteristic.writeValueWithResponse(new Uint8Array(1)), expected)),
test_desc);

View file

@ -0,0 +1,18 @@
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-test.js
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
'use strict';
const test_desc = 'Service gets removed. Reject with InvalidStateError.';
const expected =
new DOMException('GATT Service no longer exists.', 'InvalidStateError');
bluetooth_test(async () => {
const {characteristic, fake_peripheral, fake_service} =
await getMeasurementIntervalCharacteristic();
await fake_service.remove();
await fake_peripheral.simulateGATTServicesChanged();
await assert_promise_rejects_with_message(
characteristic.writeValueWithResponse(new ArrayBuffer(1 /* length */)),
expected, 'Service got removed.');
}, test_desc);

View file

@ -0,0 +1,47 @@
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-test.js
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
'use strict';
const test_desc = 'A regular write request to a writable characteristic ' +
'should succeed.';
bluetooth_test(async () => {
const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
let lastValue, lastWriteType;
({lastValue, lastWriteType} =
await fake_characteristic.getLastWrittenValue());
assert_equals(lastValue, null);
assert_equals(lastWriteType, 'none');
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
const typed_array = Uint8Array.of(1, 2);
await characteristic.writeValueWithResponse(typed_array);
({lastValue, lastWriteType} =
await fake_characteristic.getLastWrittenValue());
assert_array_equals(lastValue, [1, 2]);
assert_equals(lastWriteType, 'with-response');
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
const array_buffer = Uint8Array.of(3, 4).buffer;
await characteristic.writeValueWithResponse(array_buffer);
({lastValue, lastWriteType} =
await fake_characteristic.getLastWrittenValue());
assert_array_equals(lastValue, [3, 4]);
assert_equals(lastWriteType, 'with-response');
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
const data_view = new DataView(new ArrayBuffer(2));
data_view.setUint8(0, 5);
data_view.setUint8(1, 6);
await characteristic.writeValueWithResponse(data_view);
({lastValue, lastWriteType} =
await fake_characteristic.getLastWrittenValue());
assert_array_equals(lastValue, [5, 6]);
assert_equals(lastWriteType, 'with-response');
}, test_desc);

View file

@ -0,0 +1,27 @@
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-test.js
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
'use strict';
const test_desc =
'writeValueWithoutResponse() fails when passed a detached buffer';
function detachBuffer(buffer) {
window.postMessage('', '*', [buffer]);
}
bluetooth_test(async (t) => {
const {characteristic} = await getMeasurementIntervalCharacteristic();
const typed_array = Uint8Array.of(1, 2);
detachBuffer(typed_array.buffer);
await promise_rejects_dom(
t, 'InvalidStateError',
characteristic.writeValueWithoutResponse(typed_array));
const array_buffer = Uint8Array.of(3, 4).buffer;
detachBuffer(array_buffer);
await promise_rejects_dom(
t, 'InvalidStateError',
characteristic.writeValueWithoutResponse(array_buffer));
}, test_desc);

View file

@ -0,0 +1,17 @@
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-test.js
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
'use strict';
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
const expected = new DOMException(
'GATT Characteristic no longer exists.', 'InvalidStateError');
bluetooth_test(async () => {
const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
await fake_characteristic.remove();
await assert_promise_rejects_with_message(
characteristic.writeValueWithoutResponse(new ArrayBuffer(1 /* length */)),
expected, 'Characteristic got removed.');
}, test_desc);

View file

@ -0,0 +1,27 @@
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-test.js
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
// Generated by //third_party/WebKit/LayoutTests/bluetooth/generate.py
'use strict';
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
const expected = new DOMException(
'GATT Characteristic no longer exists.', 'InvalidStateError');
let fake_peripheral, characteristic, fake_characteristic;
bluetooth_test(
() =>
getMeasurementIntervalCharacteristic()
.then(
_ => (
{fake_peripheral, characteristic, fake_characteristic} = _))
.then(() => characteristic.getDescriptor(user_description.name))
.then(
() => null,
(e) => assert_unreached('Caught error unexpectedly.', e))
.then(() => fake_characteristic.remove())
.then(() => fake_peripheral.simulateGATTServicesChanged())
.then(
() => assert_promise_rejects_with_message(
characteristic.writeValueWithoutResponse(new Uint8Array(1)), expected)),
test_desc);

View file

@ -0,0 +1,18 @@
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-test.js
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
'use strict';
const test_desc = 'Service gets removed. Reject with InvalidStateError.';
const expected =
new DOMException('GATT Service no longer exists.', 'InvalidStateError');
bluetooth_test(async () => {
const {characteristic, fake_peripheral, fake_service} =
await getMeasurementIntervalCharacteristic();
await fake_service.remove();
await fake_peripheral.simulateGATTServicesChanged();
await assert_promise_rejects_with_message(
characteristic.writeValueWithoutResponse(new ArrayBuffer(1 /* length */)),
expected, 'Service got removed.');
}, test_desc);

View file

@ -0,0 +1,41 @@
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-test.js
// META: script=/bluetooth/resources/bluetooth-fake-devices.js
'use strict';
const test_desc = 'A regular write request to a writable characteristic ' +
'should succeed.';
bluetooth_test(async () => {
const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
let lastValue, lastWriteType;
({lastValue, lastWriteType} =
await fake_characteristic.getLastWrittenValue());
assert_equals(lastValue, null);
assert_equals(lastWriteType, 'none');
const typed_array = Uint8Array.of(1, 2);
await characteristic.writeValueWithoutResponse(typed_array);
({lastValue, lastWriteType} =
await fake_characteristic.getLastWrittenValue());
assert_array_equals(lastValue, [1, 2]);
assert_equals(lastWriteType, 'without-response');
const array_buffer = Uint8Array.of(3, 4).buffer;
await characteristic.writeValueWithoutResponse(array_buffer);
({lastValue, lastWriteType} =
await fake_characteristic.getLastWrittenValue());
assert_array_equals(lastValue, [3, 4]);
assert_equals(lastWriteType, 'without-response');
const data_view = new DataView(new ArrayBuffer(2));
data_view.setUint8(0, 5);
data_view.setUint8(1, 6);
await characteristic.writeValueWithoutResponse(data_view);
({lastValue, lastWriteType} =
await fake_characteristic.getLastWrittenValue());
assert_array_equals(lastValue, [5, 6]);
assert_equals(lastWriteType, 'without-response');
}, test_desc);

View file

@ -17,6 +17,8 @@ bluetooth_test(() => getMeasurementIntervalCharacteristic()
getDescriptors()| getDescriptors()|
readValue()| readValue()|
writeValue(new Uint8Array(1))| writeValue(new Uint8Array(1))|
writeValueWithResponse(new Uint8Array(1))|
writeValueWithoutResponse(new Uint8Array(1))|
startNotifications() startNotifications()
]), expected)), ]), expected)),
test_desc); test_desc);

View file

@ -23,8 +23,8 @@
var img = document.createElement('img'); var img = document.createElement('img');
img.onerror = t.step_func_done(_ => w.close()); img.onerror = t.step_func_done(_ => w.close());
img.onload = t.unreached_func(); img.onload = t.unreached_func();
w.document.body.appendChild(img);
img.src = "/images/red-16x16.png"; img.src = "/images/red-16x16.png";
w.document.body.appendChild(img);
}, "window.open() inherits policy."); }, "window.open() inherits policy.");
async_test(t => { async_test(t => {

View file

@ -1,7 +1,3 @@
import sys
import urlparse
def main(request, response): def main(request, response):
""" """
Returns cookie name and path from query params in a Set-Cookie header. Returns cookie name and path from query params in a Set-Cookie header.
@ -20,10 +16,14 @@ def main(request, response):
< Date: Tue, 04 Oct 2016 18:16:06 GMT < Date: Tue, 04 Oct 2016 18:16:06 GMT
< Content-Length: 80 < Content-Length: 80
""" """
params = urlparse.parse_qs(request.url_parts.query)
name = request.GET[b'name']
path = request.GET[b'path']
cookie = b"%s=1; Path=%s; Expires=Wed, 09 Jun 2021 10:18:14 GMT" % (name, path)
headers = [ headers = [
("Content-Type", "application/json"), (b"Content-Type", b"application/json"),
("Set-Cookie", "{name[0]}=1; Path={path[0]}; Expires=Wed, 09 Jun 2021 10:18:14 GMT".format(**params)) (b"Set-Cookie", cookie)
] ]
body = "{}" body = b"{}"
return headers, body return headers, body

View file

@ -11,6 +11,8 @@
border: 3px solid teal; border: 3px solid teal;
contain: size; contain: size;
margin: 15px; margin: 15px;
width: auto;
height: auto;
} }
</style> </style>
<body> <body>

View file

@ -12,6 +12,7 @@
contain: size; contain: size;
margin: 15px; margin: 15px;
width: max-content; /* This means 0, given 'contain:size'. */ width: max-content; /* This means 0, given 'contain:size'. */
height: auto;
} }
</style> </style>
<body> <body>

View file

@ -12,6 +12,7 @@
contain: size; contain: size;
margin: 15px; margin: 15px;
height: max-content; /* This means 0, given 'contain:size'. */ height: max-content; /* This means 0, given 'contain:size'. */
width: auto;
} }
</style> </style>
<body> <body>

View file

@ -0,0 +1,4 @@
<!doctype html>
<html style="background:green">
<title>CSS Test Reference</title>
<p>Pass if the background is green.</p>

View file

@ -0,0 +1,12 @@
<!doctype html>
<title>CSS Test: display:contents on root element blockified with rendered background.</title>
<link rel="help" href="https://drafts.csswg.org/css-display/#the-display-properties">
<link rel="help" href="https://drafts.csswg.org/css-display/#transformations">
<link rel="match" href="display-contents-root-background-ref.html">
<style>
:root {
display: contents;
background-image: url(../support/1x1-green.png);
}
</style>
<p>Pass if the background is green.</p>

View file

@ -4,8 +4,9 @@
<title>CSS Test Reference: flex container multiline wrapping-reverse in column-reverse direction</title> <title>CSS Test Reference: flex container multiline wrapping-reverse in column-reverse direction</title>
<link rel="author" title="tmtysk" href="mailto:tmtysk@gmail.com"> <link rel="author" title="tmtysk" href="mailto:tmtysk@gmail.com">
<link rel="reviewer" title="Tab Atkins" href="mailto:jackalmage@gmail.com"> <link rel="reviewer" title="Tab Atkins" href="mailto:jackalmage@gmail.com">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style> <style>
* { margin:0; padding:0; font-size:100%; line-height:1; } * { margin:0; padding:0; font-size:100%; line-height:1; font-family: Ahem; }
.test { .test {
width: 300px; width: 300px;
@ -21,26 +22,32 @@
#row1-col1 { #row1-col1 {
height: 90px; height: 90px;
color: orange;
} }
#row1-col2 { #row1-col2 {
height: 90px; height: 90px;
color: green;
} }
#row1-col3 { #row1-col3 {
height: 90px; height: 90px;
color: blue;
} }
#row2-col1 { #row2-col1 {
height: 140px; height: 140px;
color: yellow;
} }
#row2-col2 { #row2-col2 {
height: 140px; height: 140px;
color: magenta;
} }
#row3-col1 { #row3-col1 {
height: 290px; height: 290px;
color: cyan;
} }
.clear { .clear {

View file

@ -7,9 +7,10 @@
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property"> <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-wrap-property">
<link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction-property"> <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-direction-property">
<link rel="match" href="multi-line-wrap-reverse-column-reverse-ref.html"> <link rel="match" href="multi-line-wrap-reverse-column-reverse-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<meta name="assert" content="This test check that a flex container reverse-wraps blocks multiline in column-reverse direction."> <meta name="assert" content="This test check that a flex container reverse-wraps blocks multiline in column-reverse direction.">
<style> <style>
* { margin:0; padding:0; font-size:100%; line-height:1; } * { margin:0; padding:0; font-size:100%; line-height:1; font-family: Ahem; }
#test { #test {
display: flex; display: flex;
@ -26,26 +27,32 @@
#col1-row1 { #col1-row1 {
height: 90px; height: 90px;
color: orange;
} }
#col1-row2 { #col1-row2 {
height: 90px; height: 90px;
color: green;
} }
#col1-row3 { #col1-row3 {
height: 90px; height: 90px;
color: blue;
} }
#col2-row1 { #col2-row1 {
height: 140px; height: 140px;
color: yellow;
} }
#col2-row2 { #col2-row2 {
height: 140px; height: 140px;
color: magenta;
} }
#col3-row1 { #col3-row1 {
height: 290px; height: 290px;
color: cyan;
} }
</style> </style>

View file

@ -0,0 +1,5 @@
<!DOCTYPE html>
<style>
textarea { font-size: 3em; }
</style>
<textarea>Textarea</textarea>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<link rel="help" href="https://crbug.com/1086082">
<link rel="match" href="font-size-monospace-adjust-ref.html">
<style>
textarea {
font-size: 3em;
transition: margin-bottom 1e10s steps(2, start);
margin-bottom: 10px;
}
.margin {
margin-bottom: 20px;
}
</style>
<textarea id=textarea>Textarea</textarea>
<script>
document.documentElement.offsetTop;
textarea.classList.toggle('margin');
</script>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Evaluate the behavior of a grid container as Flexbox item</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid/#layout-algorithm">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-content">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-flex">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-grid">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="A single-line column flexbox shouldn't shrink-to-fit since its flex item is stretching in the main-axis, honoring the 'align-self: normal (behaves as 'stretch')'. The grid item's inline-size should be stretched as well, honoring its justify-self: 'normal' (behaves as 'stretch')">
<link rel="stylesheet" href="/fonts/ahem.css">
<style>
body { overflow: hidden; }
.flexbox {
display: flex;
flex-flow: column nowrap;
align-content: flex-start;
width: 100px;
height: 100px;
font: 25px/1 Ahem;
color: green;
}
.grid {
display: grid;
align-items: baseline;
background: red;
}
.gridItem {
background: green;
height: 100px;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div class="flexbox">
<div class="grid">
<div class="gridItem">XX</div>
</div>
</div>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Evaluate the behavior of a grid container as Flexbox item</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid/#layout-algorithm">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-content">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-flex">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-grid">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="The align-content: 'stretch' prevents the multi-line column flexbox to shrink-to-fit (default behavior), hence the grid container will be stretched, honoring its align-self: 'normal (behaves as 'stretch'), so that its grid item, honoring its justify-self: 'normal' (behaves as 'stretch') ">
<link rel="stylesheet" href="/fonts/ahem.css">
<style>
body { overflow: hidden; }
.flexbox {
display: flex;
flex-flow: column wrap;
align-content: stretch;
width: 100px;
height: 100px;
font: 25px/1 Ahem;
color: green;
}
.grid {
display: grid;
align-items: baseline;
background: red;
}
.gridItem {
background: green;
height: 100px;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div class="flexbox">
<div class="grid">
<div class="gridItem">XX</div>
</div>
</div>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Evaluate the behavior of a grid container as Flexbox item</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid/#layout-algorithm">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-content">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-flex">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-grid">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="A single-line column flexbox shouldn't shrink-to-fit since its flex item is stretching in the main-axis, honoring the 'align-self: normal (behaves as 'stretch')'. The grid item's inline-size should be stretched as well, honoring its justify-self: 'normal' (behaves as 'stretch')">
<link rel="stylesheet" href="/fonts/ahem.css">
<style>
body { overflow: hidden; }
.flexbox {
display: flex;
flex-flow: column nowrap;
align-content: flex-start;
width: 100px;
height: 100px;
font: 25px/1 Ahem;
color: green;
}
.grid {
display: grid;
align-items: baseline;
background: red;
}
.gridItem {
background: green;
height: 100px;
writing-mode: vertical-lr;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div class="flexbox">
<div class="grid">
<div class="gridItem">XX</div>
</div>
</div>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Evaluate the behavior of a grid container as Flexbox item</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid/#layout-algorithm">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-content">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-flex">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-grid">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="The align-content: 'stretch' prevents the multi-line column flexbox to shrink-to-fit (default behavior), hence the grid container will be stretched, honoring its align-self: 'normal (behaves as 'stretch'), so that its grid item, honoring its justify-self: 'normal' (behaves as 'stretch') ">
<link rel="stylesheet" href="/fonts/ahem.css">
<style>
body { overflow: hidden; }
.flexbox {
display: flex;
flex-flow: column wrap;
align-content: stretch;
width: 100px;
height: 100px;
font: 25px/1 Ahem;
color: green;
}
.grid {
display: grid;
background: red;
}
.gridItem {
background: green;
height: 100px;
writing-mode: vertical-lr;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div class="flexbox">
<div class="grid">
<div class="gridItem">XX</div>
</div>
</div>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Evaluate the behavior of a grid container as Flexbox item</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid/#layout-algorithm">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-content">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-flex">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-grid">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="A single-line column flexbox shouldn't shrink-to-fit since its flex item is stretching in the main-axis, honoring the 'align-self: normal (behaves as 'stretch')'. The grid item's inline-size should be stretched as well, honoring its justify-self: 'normal' (behaves as 'stretch')">
<link rel="stylesheet" href="/fonts/ahem.css">
<style>
body { overflow: hidden; }
.flexbox {
display: flex;
flex-flow: column nowrap;
align-content: flex-start;
width: 100px;
height: 100px;
font: 25px/1 Ahem;
color: green;
}
.grid {
display: grid;
align-items: start;
background: red;
}
.gridItem {
background: green;
height: 100px;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div class="flexbox">
<div class="grid">
<div class="gridItem">XX</div>
</div>
</div>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Evaluate the behavior of a grid container as Flexbox item</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid/#layout-algorithm">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-flex-wrap">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-justify-content">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#propdef-align-self">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-flex">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#align-grid">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="The align-content: 'stretch' prevents the multi-line column flexbox to shrink-to-fit (default behavior), hence the grid container will be stretched, honoring its align-self: 'normal (behaves as 'stretch'), so that its grid item, honoring its justify-self: 'normal' (behaves as 'stretch') ">
<link rel="stylesheet" href="/fonts/ahem.css">
<style>
body { overflow: hidden; }
.flexbox {
display: flex;
flex-flow: column wrap;
justify-content: stretch;
width: 100px;
height: 100px;
font: 25px/1 Ahem;
color: green;
}
.grid {
display: grid;
align-items: start;
background: red;
}
.gridItem {
background: green;
height: 100px;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div class="flexbox">
<div class="grid">
<div class="gridItem">XX</div>
</div>
</div>

View file

@ -0,0 +1,30 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Grid item placement with inherited grid-template-areas</title>
<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#line-placement">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="Grid placement algorithm is able to select the right line when defined implicitly with an inherited grid-template-areas.">
<style>
.wrapper {
grid-template-areas: "a b" "a c";
}
.grid {
display: grid;
grid-template-areas: inherit;
width: 100px;
height: 100px;
background: red;
}
.item {
background: green;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div class="wrapper">
<div class="grid">
<div class="item" style="grid-area: a"></div>
<div class="item" style="grid-area: b"></div>
<div class="item" style="grid-area: c"></div>
</div>
</div>

View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Grid item placement with non-inherited grid-template-areas</title>
<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#line-placement">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="Checks that inheriting grid-template-columns and grid-template-rows doesn't also inherit grid-template-areas.">
<style>
.wrapper {
grid-template-areas: "area";
}
.grid {
display: grid;
width: 100px;
height: 100px;
grid-auto-columns: 0px 100%;
grid-auto-rows: 0px 100%;
grid-template-columns: inherit;
grid-template-rows: inherit;
background: red;
}
.item {
grid-area: area;
background: green;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div class="wrapper">
<div class="grid">
<div class="item"></div>
</div>
</div>

View file

@ -11,11 +11,6 @@
</head> </head>
<body> <body>
<div id="target"></div> <div id="target"></div>
<style>
#target {
position: absolute;
}
</style>
<script> <script>
test_computed_value("z-index", "auto"); test_computed_value("z-index", "auto");
test_computed_value("z-index", "-1"); test_computed_value("z-index", "-1");

View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Positioned Layout Module Level 3: getComputedStyle().zIndex</title>
<link rel="help" href="https://drafts.csswg.org/css-position/#propdef-z-index">
<meta name="assert" content="z-index computed value is the keyword auto or an integer.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<style>
#target {
position: absolute;
}
</style>
<script>
test_computed_value("z-index", "auto");
test_computed_value("z-index", "-1");
test_computed_value("z-index", "calc(3 - 2)", "1");
</script>
</body>
</html>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html class="test-wait">
<link rel="help" href="https://crbug.com/1085994">
<style id="style">
@property --x {
syntax: "<length>";
inherits: false;
initial-value: 0px;
}
</style>
<script>
document.documentElement.offsetTop;
style.setAttribute('media', 'braille');
document.documentElement.className = '';
</script>
<p>
PASS if no crash
</p>
</html>

View file

@ -0,0 +1,3 @@
<!doctype html>
<title>CSS Test Reference</title>
<input type="file">

View file

@ -0,0 +1,11 @@
<!doctype html>
<title>::file-chooser-button allows to customize the button in &lt;input type=file&gt;</title>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5049">
<link rel="mismatch" href="file-chooser-button-001-notref.html">
<style>
input::file-chooser-button {
background: green;
color: white;
}
</style>
<input type="file">

View file

@ -0,0 +1,16 @@
<!doctype html>
<title>Shouldn't assert when re-creating a ::file-chooser-button pseudo-element after it being display: none</title>
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5049">
<style>
.tweak::file-chooser-button {
display: none;
}
</style>
<input type="file">
<script>
let input = document.querySelector("input");
input.getBoundingClientRect().top;
input.classList.add("tweak");
input.getBoundingClientRect().top;
input.classList.remove("tweak");
</script>

View file

@ -0,0 +1,72 @@
<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-ruby/#line-height">
<link rel="stylesheet" href="/fonts/ahem.css">
<style>
body {
font: 16px/1 Ahem;
}
body > div {
border: 1px solid lime;
}
</style>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
function renderRuby(source) {
document.body.insertAdjacentHTML('afterbegin', source);
const firstChild = document.body.firstChild;
const container = firstChild.tagName == 'RUBY' ? null : firstChild;
const ruby = firstChild.tagName == 'RUBY' ? firstChild : firstChild.querySelector('ruby');
return {container: container, ruby: ruby, rt: ruby.querySelector('rt')}
}
function renderRubyAndGetBoxes(source) {
const {container, ruby, rt} = renderRuby(source);
return {
container: container ? container.getBoundingClientRect() : null,
ruby: ruby ? ruby.getBoundingClientRect() : null,
rt: rt ? rt.getBoundingClientRect() : null
};
}
test(() => {
const {container, ruby, rt} = renderRubyAndGetBoxes(
'<div><ruby>base<rt>annotation</rt></ruby></div>');
assert_true(container.top <= rt.top);
assert_true(rt.top < ruby.top);
}, 'Over ruby doesn\'t overflow the block');
test(() => {
const {container, ruby, rt} = renderRubyAndGetBoxes(
'<div>before <span style="vertical-align:32px;">' +
'<ruby>base<rt>annotation</rt></ruby>' +
'</span> after</div>');
assert_true(container.top <= rt.top);
assert_true(rt.top < ruby.top);
}, 'Over ruby + vertical-align doesn\'t overflow the block');
test(() => {
const {container, ruby, rt} = renderRubyAndGetBoxes(
'<div><ruby style="ruby-position:under">base<rt>annotation</rt></ruby></div>');
assert_true(container.bottom >= rt.bottom);
assert_true(rt.bottom > ruby.bottom);
}, 'Under ruby doesn\'t overflow the block');
test(() => {
const {container, ruby, rt} = renderRubyAndGetBoxes(
'<div>before <ruby style="vertical-align:-32px; ruby-position:under">' +
'base<rt>annotation</rt></ruby> after</div>');
assert_true(container.bottom >= rt.bottom);
assert_true(rt.bottom > ruby.bottom);
}, 'Under ruby + vertical-align doesn\'t overflow the block');
test(() => {
const {container, ruby, rt} = renderRuby(
'<div><span>before</span><br><ruby>base<rt style="font-size:16px"' +
'>annotation</rt></ruby></div>');
const firstLine = container.querySelector('span').getBoundingClientRect();
assert_true(ruby.getBoundingClientRect().top - firstLine.bottom > 1);
}, 'Expand inter-lines spacing');
</script>
</body>

View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<title>CSS aspect-ratio: Row flexbox main size</title>
<link rel="author" title="Google LLC" href="https://www.google.com/">
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#line-sizing" title="9.2.3.B">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
<meta name="assert" content="A stretched flex item in a definite-height single-line flex container should trigger aspect-ratio.">
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div style="display: flex; height: 100px;">
<div style="background: green; aspect-ratio: 1/1; min-width: 0;"></div>
</div>

Some files were not shown because too many files have changed in this diff Show more