<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JsUnit Test Suite</title> <link rel="stylesheet" type="text/css" href="../../../../../libraries/jsUnit/css/jsUnitStyle.css"> <script language="JavaScript" type="text/javascript" src="../../../../../libraries/jsUnit/app/jsUnitCore.js"></script> <!--<script language="JavaScript" type="text/javascript" src="../../../src/core.js"></script>--> <script language="JavaScript" type="text/javascript" src="../../../src/web2d.js"></script> <script type="text/javascript"> web2d.peer.Toolkit.init(); </script> </head> <body> <h1>JsUnit Test Suite</h1> <p>This page contains a suite of tests for testing JsUnit. Click <a href="../../lib/jsunit/testRunner.html">here</a> to start running the test</p> <div id="divWorkspace" style="border:1px solid red;position:absolute;left:0;top:0;width:400px;height:410px;"> </div> <script language="JavaScript" type="text/javascript"> function setUp() { debug("Setting up workspace"); workspace = new web2d.Workspace(); workspace.addItAsChildTo($('#divWorkspace').first()); group = new web2d.Group(); line = new web2d.Line(); elipse = new web2d.Elipse(); rect = new web2d.Rect(); rectArc = new web2d.Rect(0.3); } function testAppendAndRemoveElements() { workspace.append(group); workspace.append(line); workspace.append(elipse); workspace.append(rect); workspace.append(rectArc); workspace.removeChild(group); workspace.removeChild(line); workspace.removeChild(elipse); workspace.removeChild(rect); workspace.removeChild(rectArc); workspace.append(group); group.append(line); group.append(elipse); group.append(rect); group.append(rectArc); group.removeChild(line); group.removeChild(elipse); group.removeChild(rect); group.removeChild(rectArc); workspace.removeChild(group); } function testElementFill() { var testFill = function(elem, parent, color, opacity, isSupported) { if (parent) { parent.append(elem); } if (isSupported) { elem.setFill(color, opacity); var fill = elem.getFill(); assertEquals(color, fill.color); if (opacity) { assertEquals(opacity, fill.opacity); } // Set delegated elem.setAttribute('fillColor', color); elem.setAttribute('fillOpacity', opacity); fill = elem.getFill(); assertEquals(color, fill.color); if (opacity) { assertEquals(opacity, fill.opacity); } } else { var wasCatched = false; try { line.setFill(color); } catch (e) { wasCatched = true; } assertEquals(true, wasCatched); } }; testFill(workspace, null, 'blue', null, true); testFill(elipse, workspace, 'green', 0.3, true); testFill(rect, workspace, 'blue', 0.3, true); testFill(rectArc, workspace, 'yellow', 0.3, true); testFill(line, workspace, 'yellow', 0.3, false); testFill(group, workspace, 'yellow', null, false); } function testElementPosition() { var testPosition = function(elem, parent, x, y, isSupported) { if (isSupported) { // Method setting ... parent.append(elem); elem.setPosition(x, y); assertEquals(x, elem.getPosition().x); assertEquals(y, elem.getPosition().y); // Attribute setting x = x + 10; elem.setAttribute('x', x); assertEquals(x, elem.getPosition().x); y = y + 20; elem.setAttribute('y', y); assertEquals(y, elem.getPosition().y); // Attribute getters assertEquals(y, elem.getAttribute('y')); assertEquals(x, elem.getAttribute('x')); // Attribute setter. y = y + 20; x = x + 20; elem.setAttribute('position', x + ' ' + y); assertEquals(x, elem.getPosition().x); assertEquals(y, elem.getPosition().y); } else { var wasCatched = false; try { line.setPosition(44, 34); } catch (e) { wasCatched = true; } assertEquals(true, wasCatched); } }; testPosition(group, workspace, 41, 31, true); testPosition(elipse, workspace, 42, 32, true); testPosition(rect, workspace, 43, 33, true); testPosition(rectArc, workspace, 44, 34, true); } function testElementSize() { var testSize = function(elem, parent, width, height, isSupported) { if (parent) { parent.append(elem); } if (isSupported) { // Function setter .. elem.setSize(width, height); assertEquals(width, elem.getSize().width); assertEquals(height, elem.getSize().height); // Attribute setter. elem.setAttribute('width', width); assertEquals(height, elem.getSize().height); assertEquals(width, elem.getSize().width); elem.setAttribute('height', height); assertEquals(height, elem.getSize().height); assertEquals(width, elem.getSize().width); // Multiple setter. elem.setAttribute('size', width + ' ' + height); } else { var wasCatched = false; try { elem.setSize(44, 34); } catch (e) { wasCatched = true; } assertEquals(true, wasCatched); } }; testSize(workspace, null, '43mm', '43mm', true); testSize(group, workspace, 10, 20, true); testSize(elipse, group, 11, 21, true); testSize(rect, workspace, 12, 22, true); testSize(rectArc, workspace, 23, 13, true); testSize(line, workspace, 13, 23, false); } function testElementEventHandling() { var testEventHandling = function(elem, parent, eventType) { if (parent) { parent.append(elem); } var listener = function() { /* Dummy event listener */ }; elem.addEvent(eventType, listener); elem.removeEvent(eventType, listener); }; testEventHandling(workspace, null, 'mouseover'); testEventHandling(group, workspace, 'mouseover'); testEventHandling(elipse, workspace, 'mouseover'); testEventHandling(rect, workspace, 'mouseover'); testEventHandling(rectArc, workspace, 'mouseover'); testEventHandling(line, workspace, 'mouseover'); } ; function testStroke() { var testStroke = function(elem, parent, isSupported) { if (parent) { parent.append(elem); } var strokeStyles = ['solid','dot','dash','dashdot','longdash']; for (var i = 0; i < strokeStyles.length; i++) { for (var j = 0; j < 10; j++) { elem.setStroke(j, strokeStyles[i], 'red'); } } }; // testStroke(workspace,null); testStroke(elipse, workspace); testStroke(rect, workspace); testStroke(rectArc, workspace); testStroke(line, workspace); } ; </script> </body> </html>