sku-pg
Version:
Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!
128 lines (107 loc) • 3.94 kB
HTML
<html>
<!--
Copyright 2008 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: robbyw@google.com (Robby Walker)
-->
<head>
<title>Closure Unit Tests - goog.ui.DimensionPicker</title>
<script src="../base.js"></script>
<script>
goog.require('goog.dom');
goog.require('goog.dom.TagName');
goog.require('goog.math.Size');
goog.require('goog.testing.jsunit');
goog.require('goog.testing.events');
goog.require('goog.testing.ui.rendererasserts');
goog.require('goog.ui.DimensionPicker');
goog.require('goog.ui.DimensionPickerRenderer');
</script>
</head>
<body>
<div id="render"></div>
<div id="decorate"></div>
<script>
var picker;
var render = goog.dom.getElement('render');
var decorate = goog.dom.getElement('decorate');
function setUp() {
picker = new goog.ui.DimensionPicker();
render.innerHTML = '';
decorate.innerHTML = '';
}
function tearDown() {
picker.dispose();
}
function testConstructor() {
assertNotNull('Should have successful construction', picker);
assertNull('Should not be in document', picker.getElement());
}
function testRender() {
picker.render(render);
assertEquals('Should create 1 child', 1, render.childNodes.length);
assertEquals('Should be a div', goog.dom.TagName.DIV,
render.firstChild.tagName);
}
function testDecorate() {
picker.decorate(decorate);
assertNotEquals('Should add several children', decorate.firstChild,
decorate.lastChild);
}
function testHighlightedSize() {
picker.render(render);
var size = picker.getValue();
assertEquals('Should have 0 columns highlighted', 0, size.width);
assertEquals('Should have 0 rows highlighted', 0, size.height);
picker.setValue(1, 2);
size = picker.getValue();
assertEquals('Should have 1 column highlighted', 1, size.width);
assertEquals('Should have 2 rows highlighted', 2, size.height);
picker.setValue(new goog.math.Size(3, 4));
size = picker.getValue();
assertEquals('Should have 3 columns highlighted', 3, size.width);
assertEquals('Should have 4 rows highlighted', 4, size.height);
}
function testHandleMove() {
picker.render(render);
var renderer = picker.getRenderer();
var mouseMoveElem = renderer.getMouseMoveElement(picker);
picker.rightToLeft_ = false;
var e = {
target: mouseMoveElem,
offsetX: 18, // Each grid square currently a magic 18px.
offsetY: 36
};
picker.handleMouseMove(e);
var size = picker.getValue();
assertEquals('Should have 1 column highlighted', 1, size.width);
assertEquals('Should have 2 rows highlighted', 2, size.height);
picker.rightToLeft_ = true;
picker.handleMouseMove(e);
var size = picker.getValue();
// In RTL we pick from the right side of the picker, so an offsetX of 0
// would actually mean select all columns.
assertEquals('Should have columns to the right of the mouse highlighted',
Math.ceil((mouseMoveElem.offsetWidth - e.offsetX) / 18), size.width);
assertEquals('Should have 2 rows highlighted', 2, size.height);
}
function testDispose() {
var element = picker.getElement();
picker.render(render);
picker.dispose();
assertTrue('Picker should have been disposed of', picker.isDisposed());
assertNull('Picker element reference should have been nulled out',
picker.getElement());
}
function testRendererDoesntCallGetCssClassInConstructor() {
goog.testing.ui.rendererasserts.
assertNoGetCssClassCallsInConstructor(
goog.ui.DimensionPickerRenderer);
}
</script>
</body>
</html>