| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <script> |
| description("Test the behavior of CanvasRenderingContext2D.setFillColor() when called with different numbers of arguments."); |
| |
| let ctx = document.createElement('canvas').getContext('2d'); |
| |
| let TypeError = "TypeError: Type error"; |
| let TypeErrorNotEnoughArguments = "TypeError: Not enough arguments"; |
| |
| shouldThrow("ctx.setFillColor()", "TypeErrorNotEnoughArguments"); |
| shouldBe("ctx.fillStyle", "'#000000'"); |
| |
| |
| debug("\n\nundefined setFillColor(DOMString color, optional unrestricted float alpha)\n") |
| shouldBe("ctx.setFillColor('red')", "undefined"); |
| shouldBe("ctx.fillStyle", "'#ff0000'"); |
| |
| shouldBe("ctx.setFillColor('red', .5)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(255, 0, 0, 0.5)'"); |
| |
| shouldBe("ctx.setFillColor('red', NaN)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(255, 0, 0, 0.5)'"); |
| |
| |
| debug("\n\nundefined setFillColor(unrestricted float grayLevel, optional unrestricted float alpha = 1)\n") |
| |
| shouldBe("ctx.setFillColor(.25)", "undefined"); |
| shouldBe("ctx.fillStyle", "'#404040'"); |
| |
| shouldBe("ctx.setFillColor(.25, .5)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(64, 64, 64, 0.5)'"); |
| |
| shouldBe("ctx.setFillColor(NaN, .5)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(64, 64, 64, 0.5)'"); |
| |
| shouldBe("ctx.setFillColor(.25, NaN)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(64, 64, 64, 0.5)'"); |
| |
| |
| debug("\n\nundefined setFillColor(unrestricted float r, unrestricted float g, unrestricted float b, unrestricted float a)\n") |
| |
| shouldThrow("ctx.setFillColor(.1, .2, .3)", "TypeError"); |
| |
| shouldBe("ctx.setFillColor(.1, .2, .3, .4)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(26, 51, 77, 0.4)'"); |
| |
| shouldBe("ctx.setFillColor(NaN, .2, .3, .4)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(26, 51, 77, 0.4)'"); |
| |
| shouldBe("ctx.setFillColor(.1, NaN, .3, .4)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(26, 51, 77, 0.4)'"); |
| |
| shouldBe("ctx.setFillColor(.1, .2, NaN, .4)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(26, 51, 77, 0.4)'"); |
| |
| shouldBe("ctx.setFillColor(.1, .2, .3, NaN)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(26, 51, 77, 0.4)'"); |
| |
| shouldBe("ctx.setFillColor(.5, .4, .3, .2, .1)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(128, 102, 77, 0.2)'"); |
| |
| shouldBe("ctx.setFillColor(1, .4, .3, .2, .1, 0)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(255, 102, 77, 0.2)'"); |
| |
| shouldBe("ctx.setFillColor(1.5, 10, -0.1, -100)", "undefined"); |
| shouldBe("ctx.fillStyle", "'rgba(255, 255, 0, 0)'"); |
| |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |