summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/2dcontext/tools/templates.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/2dcontext/tools/templates.yaml')
-rw-r--r--testing/web-platform/tests/2dcontext/tools/templates.yaml378
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">&lt;</a>
+ <a href="index.html">[index]</a>
+ <a href="%(next)s.html" accesskey="n" title="[n] %(next)s">&gt;</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>&lt;canvas&gt;</code> tests</h1>
+
+ <p>Developed by <a href="mailto:excors&#64;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 &mdash; 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&#64;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>&lt;canvas&gt;</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