wisemapping-frontend/packages/web2d/test/jsUnit/ElementsTestSuite.html

287 lines
7.5 KiB
HTML
Raw Normal View History

2021-07-16 16:41:58 +02:00
<!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>