Files
openlayers/master/examples/test_utils.html
Éric Lemoine 5d14b9e2d4 Updated
2013-02-20 10:38:25 +01:00

235 lines
7.3 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>GFX Test: Test the basic utils functions</title>
<style type="text/css">
@import "../../../../dojo/resources/dojo.css";
@import "../../../../dijit/tests/css/dijitTests.css";
</style>
<!-- SVGWEB { -->
<meta name="svg.render.forceflash" content="true"/>
<script src="svgweb/src/svg.js" data-path="svgweb/src"></script>
<script src="../../../../dojo/dojo.js" djConfig="isDebug:true,forceGfxRenderer:'svg'" type="text/javascript"></script>
<!-- } -->
<script type="text/javascript" src="../../../util/doh/runner.js"></script>
<script type="text/javascript">
dojo.require("doh.runner");
dojo.require("dojox.gfx");
dojo.require("dojox.gfx.utils");
</script>
<script type="text/javascript">
dojo.addOnLoad(function(){
var drawing;
var ta;
doh.register("GFX: Utils Tests", [
{
name: "toJson",
timeout: 1000,
setUp: function(){
if(!drawing){
var dn = dojo.byId("gfxObject");
drawing = dojox.gfx.createSurface(dn, 300, 300);
/* SVGWEB { */
drawing.whenLoaded(function() {
drawing.createRect({
width: 100,
height: 100,
x: 100,
y: 100
}).setFill("blue").setStroke("black");
});
/* } */
}
if(!ta){
ta = dojo.byId("outputArea");
}
},
runTest: function(){
/* SVGWEB { */
drawing.whenLoaded(function() {
var d = new doh.Deferred();
try{
var json = dojox.gfx.utils.toJson(drawing);
doh.assertTrue(json != null, "Checking that non-null was returned.");
ta.value = json;
var obj = dojo.fromJson(json);
doh.assertTrue(1, obj.length, "Checking that the json is an array of one entry.");
doh.assertTrue(obj[0].shape != null, "Checking that a toplevel shape object is present.");
doh.assertEqual("rect", obj[0].shape.type, "Checking that the shape type is rect.");
doh.assertEqual(100, obj[0].shape.width, "Checking that the width is 100.");
doh.assertEqual(100, obj[0].shape.height, "Checking that the height is 100.");
d.callback(true);
}catch(e){
d.errback(e);
}
return d;
});
/* } */
}
},
{
name: "fromJson",
timeout: 1000,
setUp: function(){
if(!drawing){
var dn = dojo.byId("gfxObject");
drawing = dojox.gfx.createSurface(dn, 300, 300);
/* SVGWEB { */
drawing.whenLoaded(function() {
drawing.createRect({
width: 100,
height: 100,
x: 100,
y: 100
}).setFill("blue").setStroke("black");
});
/* } */
}
if(!ta){
ta = dojo.byId("outputArea");
}
},
runTest: function(){
/* SVGWEB { */
drawing.whenLoaded(function() {
var d = new doh.Deferred();
try{
var json = dojox.gfx.utils.toJson(drawing);
doh.assertTrue(json != null, "Checking that non-null was returned.");
var targetNode = dojo.byId("scratchObject");
var tempSurface = dojox.gfx.createSurface(targetNode, 300, 300);
dojox.gfx.utils.fromJson(tempSurface, json);
var nsJson = dojox.gfx.utils.toJson(tempSurface);
tempSurface.destroy();
var obj = dojo.fromJson(nsJson);
doh.assertTrue(1, obj.length, "Checking that the json is an array of one entry.");
doh.assertTrue(obj[0].shape != null, "Checking that a toplevel shape object is present.");
doh.assertEqual("rect", obj[0].shape.type, "Checking that the shape type is rect.");
doh.assertEqual(100, obj[0].shape.width, "Checking that the width is 100.");
doh.assertEqual(100, obj[0].shape.height, "Checking that the height is 100.");
d.callback(true);
}catch(e){
d.errback(e);
}
return d;
});
/* } */
}
},
{
name: "toSvg",
timeout: 10000,
setUp: function(){
if(!drawing){
var dn = dojo.byId("gfxObject");
drawing = dojox.gfx.createSurface(dn, 300, 300);
/* SVGWEB { */
drawing.whenLoaded(function() {
drawing.createRect({
width: 100,
height: 100,
x: 100,
y: 100
}).setFill("blue").setStroke("black");
});
/* } */
}
if(!ta){
ta = dojo.byId("outputArea");
}
},
runTest: function(){
/* SVGWEB { */
drawing.whenLoaded(function() {
var d = new doh.Deferred();
var def= dojox.gfx.utils.toSvg(drawing);
def.addCallback(function(svg){
try{
doh.assertTrue(svg != null, "Checking that non-null was returned.");
ta.value = svg;
doh.assertTrue(svg.length > 0, "Checking that svg length > 0");
doh.assertTrue(svg.toLowerCase().indexOf("<svg") === 0, "Checking that the string starts with SVG open tag.");
d.callback(true);
}catch(e){
d.errback(e);
}
});
def.addErrback(function(e){
d.errback(e);
});
return d;
});
/* } */
}
},
{
name: "serialize/deserialize",
timeout: 1000,
setUp: function(){
if(!drawing){
var dn = dojo.byId("gfxObject");
drawing = dojox.gfx.createSurface(dn, 300, 300);
/* SVGWEB { */
drawing.whenLoaded(function() {
drawing.createRect({
width: 100,
height: 100,
x: 100,
y: 100
}).setFill("blue").setStroke("black");
});
/* } */
}
if(!ta){
ta = dojo.byId("outputArea");
}
},
runTest: function(){
/* SVGWEB { */
drawing.whenLoaded(function() {
var d = new doh.Deferred();
try{
var sObj = dojox.gfx.utils.serialize(drawing);
doh.assertTrue(sObj != null, "Checking that non-null was returned.");
//Lets try to deserialize it!
var targetNode = dojo.byId("scratchObject");
var tempSurface = dojox.gfx.createSurface(targetNode, 300, 300);
dojox.gfx.utils.deserialize(tempSurface, sObj);
var nsJson = dojox.gfx.utils.toJson(tempSurface);
tempSurface.destroy();
var obj = dojo.fromJson(nsJson);
doh.assertTrue(1, obj.length, "Checking that the json is an array of one entry.");
doh.assertTrue(obj[0].shape != null, "Checking that a toplevel shape object is present.");
doh.assertEqual("rect", obj[0].shape.type, "Checking that the shape type is rect.");
doh.assertEqual(100, obj[0].shape.width, "Checking that the width is 100.");
doh.assertEqual(100, obj[0].shape.height, "Checking that the height is 100.");
d.callback(true);
}catch(e){
d.errback(e);
}
return d;
});
/* } */
}
}
]);
doh.run();
});
</script>
</head>
<body class="tundra">
<h1>Test of GFX Utils functions</h1>
This page is intended for testing of the functions of the utils package, such as toJson, fromJson, and toSvg.
<div id="gfxObject"></div>
<div id="scratchObject"></div>
<div>
<textarea style="width: 100%; height: 300px" id="outputArea"></textarea>
</div>
</body>
</html>