| <!DOCTYPE html> |
| <html> |
| <!-- |
| Copyright 2008 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.ext.Element</title> |
| <script src="../../base.js"></script> |
| <script> |
| goog.require('goog.graphics'); |
| goog.require('goog.graphics.ext'); |
| goog.require('goog.testing.StrictMock'); |
| goog.require('goog.testing.jsunit'); |
| </script> |
| </head> |
| <body> |
| <div id="root" style="display: none"></div> |
| <script> |
| var el, graphics, mockWrapper; |
| |
| function setUp() { |
| var div = document.getElementById('root'); |
| graphics = new goog.graphics.ext.Graphics(100, 100, 200, 200); |
| div.innerHTML = ''; |
| graphics.render(div); |
| |
| mockWrapper = new goog.testing.StrictMock(goog.graphics.Element); |
| } |
| |
| function tearDown() { |
| mockWrapper.$verify(); |
| } |
| |
| function assertPosition(fn, left, top, opt_width, opt_height) { |
| mockWrapper.setTransformation(0, 0, 0, 5, 5); |
| mockWrapper.setTransformation(left, top, 0, |
| (opt_width || 10) / 2, (opt_height || 10) / 2); |
| mockWrapper.$replay(); |
| |
| el = new goog.graphics.ext.Element(graphics, mockWrapper); |
| el.setSize(10, 10); |
| fn(); |
| } |
| |
| function testLeft() { |
| assertPosition(function() { |
| el.setLeft(10); |
| }, 10, 0); |
| assertFalse(el.isParentDependent()); |
| } |
| |
| function testLeftPercent() { |
| assertPosition(function() { |
| el.setLeft('10%'); |
| }, 20, 0); |
| } |
| |
| function testCenter() { |
| assertPosition(function() { |
| el.setCenter(0); |
| }, 95, 0); |
| assertTrue(el.isParentDependent()); |
| } |
| |
| function testCenterPercent() { |
| assertPosition(function() { |
| el.setCenter('10%'); |
| }, 115, 0); |
| } |
| |
| function testRight() { |
| assertPosition(function() { |
| el.setRight(10); |
| }, 180, 0); |
| assertTrue(el.isParentDependent()); |
| } |
| |
| function testRightPercent() { |
| assertPosition(function() { |
| el.setRight('10%'); |
| }, 170, 0); |
| assertTrue(el.isParentDependent()); |
| } |
| |
| function testTop() { |
| assertPosition(function() { |
| el.setTop(10); |
| }, 0, 10); |
| assertFalse(el.isParentDependent()); |
| } |
| |
| function testTopPercent() { |
| assertPosition(function() { |
| el.setTop('10%'); |
| }, 0, 20); |
| } |
| |
| function testMiddle() { |
| assertPosition(function() { |
| el.setMiddle(0); |
| }, 0, 95); |
| assertTrue(el.isParentDependent()); |
| } |
| |
| function testMiddlePercent() { |
| assertPosition(function() { |
| el.setMiddle('10%'); |
| }, 0, 115); |
| } |
| |
| function testBottom() { |
| assertPosition(function() { |
| el.setBottom(10); |
| }, 0, 180); |
| assertTrue(el.isParentDependent()); |
| } |
| |
| function testBottomPercent() { |
| assertPosition(function() { |
| el.setBottom('10%'); |
| }, 0, 170); |
| assertTrue(el.isParentDependent()); |
| } |
| |
| function testSize() { |
| assertPosition(function() { |
| el.setSize(100, 100); |
| }, 0, 0, 100, 100); |
| assertFalse(el.isParentDependent()); |
| } |
| |
| function testSizePercent() { |
| assertPosition(function() { |
| el.setSize('10%', '20%'); |
| }, 0, 0, 20, 40); |
| assertTrue(el.isParentDependent()); |
| } |
| </script> |
| </body> |
| </html> |