diff options
Diffstat (limited to 'testing/web-platform/tests/2dcontext/tools/templates.yaml')
-rw-r--r-- | testing/web-platform/tests/2dcontext/tools/templates.yaml | 378 |
1 files changed, 378 insertions, 0 deletions
diff --git a/testing/web-platform/tests/2dcontext/tools/templates.yaml b/testing/web-platform/tests/2dcontext/tools/templates.yaml new file mode 100644 index 000000000..a67f3aad4 --- /dev/null +++ b/testing/web-platform/tests/2dcontext/tools/templates.yaml @@ -0,0 +1,378 @@ +# Copyright (c) 2010 Philip Taylor +# Released under the BSD license and W3C Test Suite License: see LICENSE.txt + +framed: | + <!DOCTYPE html> + <title>Canvas test: %(name)s</title> + <script src="../tests.js"></script> + <link rel="stylesheet" href="../tests.css"> + %(fonts)s<body class="framed show_output"> + <h1> + <a href="%(name)s.html" target="_parent">%(name_wrapped)s</a> + </h1> + <p><a href="#" id="show_output" onclick="document.body.className += ' show_output'; return false">[show output]</a> + %(fonthack)s<p class="output">Actual output:</p> + <canvas id="c" class="output" %(canvas)s>%(fallback)s</canvas> + %(expected)s + <ul id="d"></ul> + <script> + _addTest(function(canvas, ctx) { + + %(code)s + + }); + </script> + %(images)s + +standalone: | + <!DOCTYPE html> + <title>Canvas test: %(name)s</title> + <script src="../tests.js"></script> + <link rel="stylesheet" href="../tests.css"> + <link rel="prev" href="%(prev)s.html" title="%(prev)s"> + <link rel="next" href="%(next)s.html" title="%(next)s"> + %(fonts)s<body class="show_output"> + <p> + <a href="%(prev)s.html" accesskey="p" title="[p] %(prev)s"><</a> + <a href="index.html">[index]</a> + <a href="%(next)s.html" accesskey="n" title="[n] %(next)s">></a> + <h1>%(backrefs)s</h1> + <p class="desc">%(desc)s</p> + <div class="refs">References: + <ul> + %(refs)s + </ul> + </div> + %(notes)s + %(fonthack)s<p class="output">Actual output:</p> + <canvas id="c" class="output" %(canvas)s>%(fallback)s</canvas> + %(expected)s + <ul id="d"></ul> + <script> + _addTest(function(canvas, ctx) { + + %(code)s + + }); + </script> + %(images)s + +minimal: | + <!DOCTYPE html> + <html class="minimal"> + <title>Canvas test: %(name)s</title> + <script src="../tests.js"></script> + <link rel="stylesheet" href="../tests.css"> + <link rel="prev" href="minimal.%(prev)s.html" title="%(prev)s"> + <link rel="next" href="minimal.%(next)s.html" title="%(next)s"> + %(fonts)s<body> + <p id="passtext">Pass</p> + <p id="failtext">Fail</p> + <!-- TODO: handle "script did not run" case --> + %(fonthack)s<p class="output">These images should be identical:</p> + <canvas id="c" class="output" %(canvas)s>%(fallback)s</canvas> + %(expected)s + <ul id="d"></ul> + <script> + _addTest(function(canvas, ctx) { + + %(code)s + + }); + </script> + %(images)s + +w3c: | + <!DOCTYPE html> + <!-- DO NOT EDIT! This test has been generated by tools/gentest.py. --> + <title>Canvas test: %(name)s</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/common/canvas-tests.js"></script> + <link rel="stylesheet" href="/common/canvas-tests.css"> + %(fonts)s<body class="show_output"> + + <h1>%(name)s</h1> + <p class="desc">%(desc)s</p> + + %(notes)s + %(fonthack)s<p class="output">Actual output:</p> + <canvas id="c" class="output" %(canvas)s>%(fallback)s</canvas> + %(expected)s + <ul id="d"></ul> + <script> + var t = async_test("%(escaped_desc)s"); + _addTest(function(canvas, ctx) { + + %(code)s + + }); + </script> + %(scripts)s%(images)s + +mochitest: | + <!DOCTYPE HTML> + <title>%(mochi_name_fn)s</title> + %(mochi_desc)s<script src="/MochiKit/MochiKit.js"></script> + <script src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" href="/tests/SimpleTest/test.css"> + %(fonts)s<body><!-- [[[ test_%(mochi_name)s.html ]]] --> + + <p>Canvas test: %(mochi_name)s</p> + %(mochi_desc)s%(fonthack)s<canvas id="c" %(canvas)s>%(fallback)s</canvas> + <script> + + function %(mochi_name_fn)s() { + + var canvas = document.getElementById('c'); + var ctx = canvas.getContext('2d'); + + %(mochi_code)s + + } + </script> + %(mochi_images)s + +mochitest.isPixel: | + function isPixel(ctx, x,y, r,g,b,a, pos, colour, d) { + var pixel = ctx.getImageData(x, y, 1, 1); + var pr = pixel.data[0], + pg = pixel.data[1], + pb = pixel.data[2], + pa = pixel.data[3]; + ok(r-d <= pr && pr <= r+d && + g-d <= pg && pg <= g+d && + b-d <= pb && pb <= b+d && + a-d <= pa && pa <= a+d, + "pixel "+pos+" is "+pr+","+pg+","+pb+","+pa+"; expected "+colour+" +/- "+d); + } + +mochitest.todo_isPixel: | + function todo_isPixel(ctx, x,y, r,g,b,a, pos, colour, d) { + var pixel = ctx.getImageData(x, y, 1, 1); + var pr = pixel.data[0], + pg = pixel.data[1], + pb = pixel.data[2], + pa = pixel.data[3]; + todo(r-d <= pr && pr <= r+d && + g-d <= pg && pg <= g+d && + b-d <= pb && pb <= b+d && + a-d <= pa && pa <= a+d, + "pixel "+pos+" is "+pr+","+pg+","+pb+","+pa+"; expected "+colour+" +/- "+d); + } + +mochitest.deferTest: | + function deferTest() { + _deferred = true; + } + +mochitest.wrapFunction: | + function wrapFunction(f) { + return function () { + f.apply(null, arguments); + SimpleTest.finish(); + } + } + +mochitest.exception: | + var _thrown_outer = false; + try { + + %s + } catch (e) { + _thrown_outer = true; + } + todo(!_thrown_outer, 'should not throw exception'); + +mochitest.Makefile: | + # + # ***** BEGIN LICENSE BLOCK ***** + # Version: MPL 1.1/GPL 2.0/LGPL 2.1 + # + # The contents of this file are subject to the Mozilla Public License Version + # 1.1 (the "License"); you may not use this file except in compliance with + # the License. You may obtain a copy of the License at + # http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS IS" basis, + # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + # for the specific language governing rights and limitations under the + # License. + # + # The Original Code is mozilla.org code. + # + # The Initial Developer of the Original Code is + # Mozilla Corporation. + # Portions created by the Initial Developer are Copyright (C) 2007 + # the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # Philip Taylor <philip.taylor@cl.cam.ac.uk> + # + # Alternatively, the contents of this file may be used under the terms of + # either of the GNU General Public License Version 2 or later (the "GPL"), + # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + # in which case the provisions of the GPL or the LGPL are applicable instead + # of those above. If you wish to allow use of your version of this file only + # under the terms of either the GPL or the LGPL, and not to allow others to + # use your version of this file under the terms of the MPL, indicate your + # decision by deleting the provisions above and replace them with the notice + # and other provisions required by the GPL or the LGPL. If you do not delete + # the provisions above, a recipient may use your version of this file under + # the terms of any one of the MPL, the GPL or the LGPL. + # + # ***** END LICENSE BLOCK ***** + + DEPTH = ../../.. + topsrcdir = @top_srcdir@ + srcdir = @srcdir@ + VPATH = @srcdir@ + relativesrcdir = content/canvas/test + + include $(DEPTH)/config/autoconf.mk + include $(topsrcdir)/config/rules.mk + + +index.frame: | + <!DOCTYPE html> + <title>Canvas tests - %(category)s.*</title> + <link rel="stylesheet" href="../frame.css"> + <p><a href="index.html">[index]</a> + <h1>%(backrefs)s.*</h1> + <p> + +# FF trunk doesn't do onload in object, so use iframe instead +#index.frame.item: |- +# <object width="200" height="220" data="framed.%s.html">(object fallback)</object><!-- +# --> +index.frame.item: |- + <iframe width="200" height="220" src="framed.%s.html">(iframe fallback)</iframe><!-- + --> + +index.w3c.frame: | + <!DOCTYPE html> + <title>Canvas tests - %(category)s.*</title> + <link rel="stylesheet" href="/common/canvas-frame.css"> + <p><a href="index.html">[index]</a> + <h1>%(backrefs)s.*</h1> + <p> + +index.w3c.frame.item: |- + <iframe width="320" height="240" src="%s.html">(iframe fallback)</iframe><!-- + --> + +index: | + <!DOCTYPE html> + <title>Canvas tests - index</title> + <link rel="stylesheet" href="../index.css"> + <script> + function expand(obj) { + obj.parentNode.className = obj.parentNode.className ? "" : "expand"; + return false; + } + </script> + + <h1><code><canvas></code> tests</h1> + + <p>Developed by <a href="mailto:excors@gmail.com">Philip Taylor</a>. + Last updated %(updated)s. + + <p>Based on the <a + href="http://www.whatwg.org/specs/web-apps/current-work/#the-canvas">HTML</a> + Draft Standard — 22 February 2010. See also the <a + href="spec.html">annotated specification</a>. + + <p>See <a href="results.html">test results</a> for some browsers. + (Generated semi-automatically via the <a + href="../reportgenentry.html">report generator</a>.) + + <p>You may want to <a href="../source.tar.bz2">download the source + code/data</a> (e.g. to create an offline copy of the tests). + + <h2>Test cases</h2> + + <p>For each test, a green background indicates success, red indicates + failure, blue indicates a need to manually confirm the output is as + expected. + + <p>The versions in the report generator are the most visually minimalist. + The category links below show the actual and expected renderings, and any + error messages. The individual test pages have links to relevant parts of + the specification and extra notes. + + <p>There may be many inaccuracies: tests that do not notice when part of + the output is incorrect; tests that are too intolerant of acceptable + renderings differences, or make other unreasonable assumptions; tests that + were written for an outdated version of the specification, and tests that + are just wrong. Also a number of features are not tested, most notably text + rendering. Please contact me (<a + href="mailto:excors@gmail.com">email</a>, <a + href="http://wiki.whatwg.org/wiki/IRC">IRC</a>, etc) if you find any + problems. + +index.w3c: | + <!DOCTYPE html> + <title>Canvas tests - index</title> + <link rel="stylesheet" href="/common/canvas-index.css"> + + <h1><code><canvas></code> tests</h1> + +index.category.item: | + <li><h3><a href="index.%s.html">%s.*</a></h3><p>%d test%s <a href="#" onclick="return expand(this)">expand</a></p> + +index.w3c.category.item: | + <li><h3><a href="index.%s.html">%s.*</a></h3><p>%d test%s</p> + +reportgen: | + <!DOCTYPE html> + <title>Canvas tests - report generator</title> + <link rel="stylesheet" href="../reportgen.css"> + <script src="../reportgen.js"></script> + <p>This is mainly for my own use, so it is not designed to be user-friendly. + If anyone else wants to use it for some reason, just wait + until "tests not yet loaded" and "tests not yet completed" get down to zero, then click the + pass/fail button for any test it shows where it cannot work out the answer (or use the + <kbd>y</kbd>/<kbd>n</kbd> keys to choose for the magenta-highlighted case), then use the + buttons at the bottom to collect all the results. + <form id="f"> + <p><label for="loading">Tests not yet loaded:</label> <input id="loading" value="0" readonly> + <p><label for="waiting">Tests not yet completed:</label> <input id="waiting" value="0" readonly> + <p><button type="button" onclick="showUnfinished()">Show uncompleted tests</button> + <button type="button" onclick="showAll()">Show all tests</button> + <button type="button" onclick="reloadAll()">Reload test cases serially</button> + <!--<button type="button" onclick="avoidFrameLimit()">HACK: work around frame limit</button> + <button type="button" onclick="makeObjects()">HACK: s/iframe/object/</button>--> + <hr> + <p><label for="passed">Detected passes:</label> <input id="passed" value="0" readonly> + <p><label for="failed">Detected fails:</label> <input id="failed" value="0" readonly> + <hr> + <table> + <tr> + <th>Test name + <th>Test case + <th>Pass? + <th>Fail? + <th>Notes + <script> + createTable( [ + %(items)s + ] ); + </script> + </table> + </form> + <hr> + <form method="post" action="../submitresults.cgi"> + <button type="button" onclick="document.getElementById('report').value = genreport()">Generate test report</button><br> + <textarea name="report" id="report" cols="100" rows="10"></textarea><br> + <input type="submit" value="Submit results"> (Submissions will tend to be ignored unless there + is a good reason why they won't be, so don't use this form unless there is such a reason.) + </form> + +results: | + <!DOCTYPE html> + <title>Canvas tests - results</title> + <link rel="stylesheet" href="../results.css"> + <table> + <col id="col1"> + <tr> + <th>Test |