blob: 5f6089a85d9b42315354adee12e13a2390caeb0e [file] [log] [blame]
<!DOCTYPE html>
<html>
<title>Test that sizing changes are reflected in CSS classes.</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../../resources/run-after-layout-and-paint.js"></script>
<script src="../media-controls.js"></script>
<video controls width=200 preload=none></video>
<script>
async_test(t => {
const video = document.querySelector('video');
const testCases = [
{ width: 500, expect: expectSmall },
{ width: 1441, expect: expectLarge },
{ width: 800, expect: expectSmall },
{ width: 2000, expect: expectLarge },
{ width: 0, expect: expectSmall },
{ width: 741, expect: expectSmall },
{ width: 308, expect: expectSmall },
{ width: 150, expect: expectSmall },
];
expectSmall();
runTestCase(0);
function runTestCase(index) {
let test = testCases[index];
video.width = test.width;
runAfterLayoutAndPaint(t.step_func(() => {
test.expect();
let nextIndex = index + 1;
if (nextIndex === testCases.length) {
t.done();
return;
}
runTestCase(nextIndex);
}));
}
function expectSmall() {
checkControlsHasClass(video, 'sizing-small');
checkControlsDoesNotHaveClass(video, 'sizing-large');
}
function expectLarge() {
checkControlsHasClass(video, 'sizing-large');
checkControlsDoesNotHaveClass(video, 'sizing-small');
}
});
</script>
</html>