The test assumes "en" is always an accepted language, it's not correct. This assumption isn't what is being tested here anyway. We should set language preference at the beginning before testing to avoid irrelevant failure. Differential Revision: https://phabricator.services.mozilla.com/D32628
94 lines
3.0 KiB
HTML
94 lines
3.0 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Test conditional processing tests applied to animations</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
</head>
|
|
<body>
|
|
<p id="display"></p>
|
|
<div id="content">
|
|
<svg id="svg" width="120px" height="120px"
|
|
onload="this.pauseAnimations()">
|
|
<circle r="50" fill="blue" id="circle">
|
|
<set attributeName="cy" to="100" begin="0s" dur="100s" id="a"/>
|
|
<set attributeName="cx" to="100" begin="a.end" dur="100s" id="b"/>
|
|
</circle>
|
|
</svg>
|
|
</div>
|
|
<pre id="test">
|
|
<script class="testbody" type="text/javascript">
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
function run() {
|
|
SpecialPowers.pushPrefEnv({"set": [["intl.accept_languages", "en"]]}, runInternal);
|
|
}
|
|
|
|
function runInternal() {
|
|
var svg = document.getElementById("svg"),
|
|
a = document.getElementById("a"),
|
|
b = document.getElementById("b"),
|
|
circle = document.getElementById("circle");
|
|
|
|
// Check initial state
|
|
svg.setCurrentTime(50);
|
|
is(a.getStartTime(), 0, "a has resolved start time at start");
|
|
is(circle.cy.animVal.value, 100, "a is in effect at start");
|
|
is(b.getStartTime(), 100, "b has resolved start time at start");
|
|
|
|
// Add a failing conditional processing test
|
|
a.setAttribute("systemLanguage", "no-such-language");
|
|
ok(hasUnresolvedStartTime(a),
|
|
"a has unresolved start time with failing conditional processing test");
|
|
is(circle.cy.animVal.value, 0,
|
|
"a is not in effect with failing conditional processing test");
|
|
ok(hasUnresolvedStartTime(b),
|
|
"b has unresolved start time with failing conditional processing test on a");
|
|
|
|
// Remove failing conditional processing test
|
|
a.removeAttribute("systemLanguage");
|
|
is(a.getStartTime(), 0, "a has resolved start time after removing test");
|
|
is(circle.cy.animVal.value, 100, "a is in effect after removing test");
|
|
is(b.getStartTime(), 100, "b has resolved start time after removing test on a");
|
|
|
|
// Add another failing conditional processing test
|
|
// According to the spec, if a null string or empty string value is set for
|
|
// the 'systemLanguage' attribute, the attribute returns "false".
|
|
a.setAttribute("systemLanguage", "");
|
|
|
|
// Fast forward until |a| would have finished
|
|
var endEventsReceived = 0;
|
|
a.addEventListener("endEvent", function() { endEventsReceived++; });
|
|
svg.setCurrentTime(150);
|
|
is(endEventsReceived, 0,
|
|
"a does not dispatch end events with failing condition processing test");
|
|
is(circle.cx.animVal.value, 0,
|
|
"b is not in effect with failing conditional processing test on a");
|
|
|
|
// Make test pass
|
|
a.setAttribute("systemLanguage", "en");
|
|
is(circle.cx.animVal.value, 100,
|
|
"b is in effect with passing conditional processing test on a");
|
|
|
|
SimpleTest.finish();
|
|
}
|
|
|
|
function hasUnresolvedStartTime(anim) {
|
|
// getStartTime throws INVALID_STATE_ERR when there is no current interval
|
|
try {
|
|
anim.getStartTime();
|
|
return false;
|
|
} catch (e) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
window.addEventListener("load", run);
|
|
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|