110 lines
3.3 KiB
HTML
110 lines
3.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<!--
|
|
Copyright 2011 The Closure Library Authors. All Rights Reserved.
|
|
|
|
Use of this source code is governed by the Apache License, Version 2.0.
|
|
See the COPYING file for details.
|
|
|
|
-->
|
|
<head>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<title>Closure Unit Tests - goog.graphics.SvgGraphics</title>
|
|
<script src="../base.js"></script>
|
|
<script>
|
|
goog.require('goog.dom');
|
|
goog.require('goog.graphics.SvgGraphics');
|
|
goog.require('goog.testing.graphics');
|
|
goog.require('goog.testing.jsunit');
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div id="root"> </div>
|
|
|
|
<script>
|
|
var graphics;
|
|
|
|
function setUp() {
|
|
if (!document.createElementNS) {
|
|
// Some browsers don't support document.createElementNS and this test
|
|
// should not be run on those browsers (IE7,8).
|
|
return;
|
|
}
|
|
graphics = new goog.graphics.SvgGraphics('100px', '100px');
|
|
graphics.createDom();
|
|
goog.dom.getElement('root').appendChild(graphics.getElement());
|
|
}
|
|
|
|
function testAddDef() {
|
|
if (!graphics) {
|
|
// setUp has failed (no browser support), we should not run this test.
|
|
return;
|
|
}
|
|
var defElement1 = document.createElement('div');
|
|
var defElement2 = document.createElement('div');
|
|
var defKey1 = 'def1';
|
|
var defKey2 = 'def2';
|
|
var id = graphics.addDef(defKey1, defElement1);
|
|
assertEquals('_svgdef_0', id);
|
|
id = graphics.addDef(defKey1, defElement2);
|
|
assertEquals('_svgdef_0', id);
|
|
id = graphics.addDef(defKey2, defElement2);
|
|
assertEquals('_svgdef_1', id);
|
|
}
|
|
|
|
function testGetDef() {
|
|
if (!graphics) {
|
|
// setUp has failed (no browser support), we should not run this test.
|
|
return;
|
|
}
|
|
var defElement = document.createElement('div');
|
|
var defKey = 'def';
|
|
var id = graphics.addDef(defKey, defElement);
|
|
assertEquals(id, graphics.getDef(defKey));
|
|
assertNull(graphics.getDef('randomKey'));
|
|
}
|
|
|
|
function testRemoveDef() {
|
|
if (!graphics) {
|
|
// setUp has failed (no browser support), we should not run this test.
|
|
return;
|
|
}
|
|
var defElement = document.createElement('div');
|
|
var defKey = 'def';
|
|
var addedId = graphics.addDef(defKey, defElement);
|
|
graphics.removeDef('randomKey');
|
|
assertEquals(addedId, graphics.getDef(defKey));
|
|
graphics.removeDef(defKey);
|
|
assertNull(graphics.getDef(defKey));
|
|
}
|
|
|
|
function testSetElementAffineTransform() {
|
|
if (!graphics) {
|
|
// setUp has failed (no browser support), we should not run this test.
|
|
return;
|
|
}
|
|
var fill = new goog.graphics.SolidFill('blue');
|
|
var stroke = null;
|
|
var rad = -3.1415926 / 6;
|
|
var costheta = Math.cos(rad);
|
|
var sintheta = Math.sin(rad);
|
|
var dx = 10;
|
|
var dy = -20;
|
|
var affine = new goog.graphics.AffineTransform(
|
|
costheta, -sintheta + 1, sintheta, costheta, dx, dy);
|
|
var rect = graphics.drawRect(10, 20, 30, 40, stroke, fill);
|
|
rect.setTransform(affine);
|
|
graphics.render();
|
|
var svgMatrix = rect.getElement().getTransformToElement(graphics.getElement());
|
|
assertRoughlyEquals(svgMatrix.a, costheta, 0.001);
|
|
assertRoughlyEquals(svgMatrix.b, -sintheta + 1, 0.001);
|
|
assertRoughlyEquals(svgMatrix.c, sintheta, 0.001);
|
|
assertRoughlyEquals(svgMatrix.d, costheta, 0.001);
|
|
assertRoughlyEquals(svgMatrix.e, dx, 0.001);
|
|
assertRoughlyEquals(svgMatrix.f, dy, 0.001);
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|
|
|