<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>

<div id='container'>
<div id='element'></div>
</div>

<script>
var element = document.getElementById('element');
var container = document.getElementById('container');

test(function() {
    element.style.fontSize = '10px';
    var player = element.animate([{perspective: '3em'}, {perspective: '5em'}], 10);
    player.pause();
    player.currentTime = 5;
    element.style.fontSize = '20px';
    assert_equals(getComputedStyle(element).perspective, '80px');
}, 'perspective responsive to style changes');

test(function() {
    element.style.fontSize = '10px';
    var player = element.animate([{perspective: '40px'}, {perspective: 'calc(40px - 2em)'}], 10);
    player.pause();

    player.currentTime = 5;
    element.style.fontSize = '40px';
    assert_equals(getComputedStyle(element).perspective, 'none');

    player.currentTime = 7.5;
    assert_equals(getComputedStyle(element).perspective, 'none');
}, 'perspective clamped to none');

test(function() {
    container.style.perspective = 'none';
    var player = element.animate([{perspective: 'inherit'}, {perspective: '20px'}], 4000);
    player.pause();

    player.currentTime = 1000;
    assert_equals(getComputedStyle(element).perspective, 'none');

    container.style.perspective = '100px';
    assert_equals(getComputedStyle(element).perspective, '80px');

    container.style.perspective = 'none';
    assert_equals(getComputedStyle(element).perspective, 'none');
}, 'perspective responsive to inherited changes');
</script>
