<!DOCTYPE html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<div id='container'>
    <div id='element'></div>
</div>
<script>

'use strict';
var container = document.getElementById('container');
var element = document.getElementById('element');

var properties = [
    'fillOpacity',
    'floodOpacity',
    'opacity',
    'shapeImageThreshold',
    'stopOpacity',
    'strokeOpacity',
];

for (var property of properties) {
    test(function() {
        var initialKeyframe = {};
        initialKeyframe[property] = 'inherit';
        var finalKeyframe = {};
        finalKeyframe[property] = '0.5';
        var keyframes = [ initialKeyframe, finalKeyframe ];

        container.style[property] = 1;
        var player = element.animate(keyframes, 10);

        player.pause();
        player.currentTime = 5;
        assert_equals(getComputedStyle(element)[property], '0.75');

        container.style[property] = 0.25;
        assert_equals(getComputedStyle(element)[property], '0.375');

        container.style[property] = -0.5; // clamps to 0
        assert_equals(getComputedStyle(element)[property], '0.25');

        container.style[property] = 2; // clamps to 1
        assert_equals(getComputedStyle(element)[property], '0.75');
    }, property + ' responsive to inherited changes');
}

</script>
