UNPKG

sku-pg

Version:

Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!

144 lines (116 loc) 4.44 kB
<!DOCTYPE html> <html> <!-- Copyright 2009 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by an Apache 2.0 License. See the COPYING file for details. --> <!-- Author: kartiks@google.com (Kartik Singh) --> <head> <title>Closure Unit Tests - goog.ui.SplitPane</title> <script src="../base.js"></script> <script type="text/javascript"> goog.require('goog.dom'); goog.require('goog.dom.classes'); goog.require('goog.math.Size'); goog.require('goog.style'); goog.require('goog.testing.jsunit'); goog.require('goog.ui.Component'); goog.require('goog.ui.SplitPane'); goog.require('goog.ui.SplitPane.Orientation'); </script> </head> <body> <div id="sandbox"></div> <script type="text/javascript"> var splitpane; var leftComponent; var rightComponent; function setUp() { leftComponent = new goog.ui.Component(); rightComponent = new goog.ui.Component(); splitpane = new goog.ui.SplitPane(leftComponent, rightComponent, goog.ui.SplitPane.Orientation.HORIZONTAL); } function tearDown() { splitpane.dispose(); leftComponent.dispose(); rightComponent.dispose(); goog.dom.getElement('sandbox').innerHTML = ''; } function testRender() { splitpane.render(goog.dom.getElement('sandbox')); assertEquals(1, goog.dom.getElementsByTagNameAndClass('div', 'goog-splitpane').length); assertEquals(1, goog.dom.getElementsByTagNameAndClass('div', 'goog-splitpane-first-container').length); assertEquals(1, goog.dom.getElementsByTagNameAndClass('div', 'goog-splitpane-second-container').length); assertEquals(1, goog.dom.getElementsByTagNameAndClass('div', 'goog-splitpane-handle').length); } function testDecorate() { var mainDiv = goog.dom.createDom('div', 'goog-splitpane', goog.dom.createDom('div', 'goog-splitpane-first-container'), goog.dom.createDom('div', 'goog-splitpane-second-container'), goog.dom.createDom('div', 'goog-splitpane-handle')); var sandbox = goog.dom.getElement('sandbox'); goog.dom.appendChild(sandbox, mainDiv); splitpane.decorate(mainDiv); } function testSetSize() { splitpane.setInitialSize(200); splitpane.setHandleSize(10); splitpane.render(goog.dom.getElement('sandbox')); splitpane.setSize(new goog.math.Size(500, 300)); assertEquals(200, splitpane.getFirstComponentSize()); var splitpaneSize = goog.style.getBorderBoxSize(splitpane.getElement()); assertEquals(500, splitpaneSize.width); assertEquals(300, splitpaneSize.height); } function testOrientationChange() { splitpane.setInitialSize(200); splitpane.setHandleSize(10); splitpane.render(goog.dom.getElement('sandbox')); splitpane.setSize(new goog.math.Size(500, 300)); var first = goog.dom.getElementsByTagNameAndClass('div', 'goog-splitpane-first-container')[0]; var second = goog.dom.getElementsByTagNameAndClass('div', 'goog-splitpane-second-container')[0]; var handle = goog.dom.getElementsByTagNameAndClass('div', 'goog-splitpane-handle')[0]; var handleSize = goog.style.getBorderBoxSize(handle); assertEquals(10, handleSize.width); assertEquals(300, handleSize.height); var firstSize = goog.style.getBorderBoxSize(first); assertEquals(200, firstSize.width); assertEquals(300, firstSize.height); var secondSize = goog.style.getBorderBoxSize(second); assertEquals(290, secondSize.width); // 500 - 200 - 10 = 290 assertEquals(300, secondSize.height); splitpane.setOrientation(goog.ui.SplitPane.Orientation.VERTICAL); handleSize = goog.style.getBorderBoxSize(handle); assertEquals(10, handleSize.height); assertEquals(500, handleSize.width); firstSize = goog.style.getBorderBoxSize(first); assertEquals(120, firstSize.height); // 200 * 300/500 = 120 assertEquals(500, firstSize.width); secondSize = goog.style.getBorderBoxSize(second); assertEquals(170, secondSize.height); // 300 - 120 - 10 = 170 assertEquals(500, secondSize.width); splitpane.setOrientation(goog.ui.SplitPane.Orientation.HORIZONTAL); handleSize = goog.style.getBorderBoxSize(handle); assertEquals(10, handleSize.width); assertEquals(300, handleSize.height); firstSize = goog.style.getBorderBoxSize(first); assertEquals(200, firstSize.width); assertEquals(300, firstSize.height); secondSize = goog.style.getBorderBoxSize(second); assertEquals(290, secondSize.width); assertEquals(300, secondSize.height); } </script> </body> </html>