<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>Canvas test: 2d.gradient.object.invalidcolour</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
<body class="show_output">

<h1>2d.gradient.object.invalidcolour</h1>
<p class="desc"></p>


<p class="output">Actual output:</p>
<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>

<ul id="d"></ul>
<script>
var t = async_test("");
_addTest(function(canvas, ctx) {

var g = ctx.createLinearGradient(0, 0, 100, 0);
assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, ""); });
assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'rgb(NaN%, NaN%, NaN%)'); });
assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'null'); });
assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'undefined'); });
assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, null); });
assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, undefined); });

var g = ctx.createRadialGradient(0, 0, 0, 100, 0, 0);
assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, ""); });
assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'rgb(NaN%, NaN%, NaN%)'); });
assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'null'); });
assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, 'undefined'); });
assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, null); });
assert_throws_dom("SYNTAX_ERR", function() { g.addColorStop(0, undefined); });


});
</script>

