diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/sliderbase_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/ui/sliderbase_test.html | 689 |
1 files changed, 0 insertions, 689 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/sliderbase_test.html b/contexts/data/lib/closure-library/closure/goog/ui/sliderbase_test.html deleted file mode 100644 index f5548ee..0000000 --- a/contexts/data/lib/closure-library/closure/goog/ui/sliderbase_test.html +++ /dev/null @@ -1,689 +0,0 @@ -<!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.ui.SliderBase</title> -<script src="../base.js"></script> -<script type="text/javascript"> - goog.require('goog.dom'); - goog.require('goog.dom.a11y'); - goog.require('goog.dom.a11y.State'); - goog.require('goog.events'); - goog.require('goog.style'); - goog.require('goog.testing.MockClock'); - goog.require('goog.testing.events'); - goog.require('goog.testing.jsunit'); - goog.require('goog.testing.recordFunction'); - goog.require('goog.ui.SliderBase'); - goog.require('goog.userAgent'); -</script> -<style type="text/css"> - -#oneThumbSlider { - position: relative; - width: 1000px; - background: grey; - height: 20px; -} - -#twoThumbSlider { - position: relative; - /* Extra 20px is so distance between thumb centers is 1000px */ - width: 1020px; -} - -#valueThumb, #extentThumb { - position: absolute; - width: 20px; -} - -#thumb { - position: relative; - width: 20px; - height: 20px; - background: black; -} - -#rangeHighlight { - position: absolute; -} - -</style> -</head> -<body> - -<div id="sandbox"></div> - -<script type="text/javascript"> -var oneThumbSlider; -var oneThumbSliderRtl; -var oneChangeEventCount; - -var twoThumbSlider; -var twoThumbSliderRtl; -var twoChangeEventCount; - -var mockClock; - -/** - * A basic class to implement the abstract goog.ui.SliderBase for testing. - * @constructor - * @extends {goog.ui.SliderBase} - */ -function OneThumbSlider() { - goog.ui.SliderBase.call(this); -} -goog.inherits(OneThumbSlider, goog.ui.SliderBase); - - -/** {@override} */ -OneThumbSlider.prototype.createThumbs = function() { - this.valueThumb = this.extentThumb = goog.dom.getElement('thumb'); -}; - - -/** {@override} */ -OneThumbSlider.prototype.getCssClass = function() { - return 'dummyCssClass'; -}; - - -/** - * A basic class to implement the abstract goog.ui.SliderBase for testing. - * @constructor - * @extends {goog.ui.SliderBase} - */ -function TwoThumbSlider() { - goog.ui.SliderBase.call(this); -} -goog.inherits(TwoThumbSlider, goog.ui.SliderBase); - - -/** {@override} */ -TwoThumbSlider.prototype.createThumbs = function() { - this.valueThumb = goog.dom.getElement('valueThumb'); - this.extentThumb = goog.dom.getElement('extentThumb'); - this.rangeHighlight = goog.dom.getElement('rangeHighlight'); -}; - - -/** {@override} */ -TwoThumbSlider.prototype.getCssClass = function() { - return 'dummyCssClass'; -}; - - -function setUp() { - var sandBox = goog.dom.getElement('sandbox'); - mockClock = new goog.testing.MockClock(true); - - var oneThumbElem = goog.dom.createDom( - 'div', {'id': 'oneThumbSlider'}, - goog.dom.createDom('span', {'id': 'thumb'})); - sandBox.appendChild(oneThumbElem); - oneThumbSlider = new OneThumbSlider(); - oneThumbSlider.decorate(oneThumbElem); - oneChangeEventCount = 0; - goog.events.listen(oneThumbSlider, goog.ui.Component.EventType.CHANGE, - function() { - oneChangeEventCount++; - }); - - var twoThumbElem = goog.dom.createDom( - 'div', {'id': 'twoThumbSlider'}, - goog.dom.createDom('div', {'id': 'rangeHighlight'}), - goog.dom.createDom('span', {'id': 'valueThumb'}), - goog.dom.createDom('span', {'id': 'extentThumb'})); - sandBox.appendChild(twoThumbElem); - twoThumbSlider = new TwoThumbSlider(); - twoThumbSlider.decorate(twoThumbElem); - twoChangeEventCount = 0; - goog.events.listen(twoThumbSlider, goog.ui.Component.EventType.CHANGE, - function() { - twoChangeEventCount++; - }); - - var sandBoxRtl = goog.dom.createDom('div', - {'dir': 'rtl', 'style': 'position:absolute;'}); - sandBox.appendChild(sandBoxRtl); - - var oneThumbElemRtl = goog.dom.createDom( - 'div', {'id': 'oneThumbSliderRtl'}, - goog.dom.createDom('span', {'id': 'thumbRtl'})); - sandBoxRtl.appendChild(oneThumbElemRtl); - oneThumbSliderRtl = new OneThumbSlider(); - oneThumbSliderRtl.enableFlipForRtl(true); - oneThumbSliderRtl.decorate(oneThumbElemRtl); - goog.events.listen(oneThumbSliderRtl, goog.ui.Component.EventType.CHANGE, - function() { - oneChangeEventCount++; - }); - - var twoThumbElemRtl = goog.dom.createDom( - 'div', {'id': 'twoThumbSliderRtl'}, - goog.dom.createDom('div', {'id': 'rangeHighlightRtl'}), - goog.dom.createDom('span', {'id': 'valueThumbRtl'}), - goog.dom.createDom('span', {'id': 'extentThumbRtl'})); - sandBoxRtl.appendChild(twoThumbElemRtl); - twoThumbSliderRtl = new TwoThumbSlider(); - twoThumbSliderRtl.enableFlipForRtl(true); - twoThumbSliderRtl.decorate(twoThumbElemRtl); - twoChangeEventCount = 0; - goog.events.listen(twoThumbSliderRtl, goog.ui.Component.EventType.CHANGE, - function() { - twoChangeEventCount++; - }); -} - -function tearDown() { - goog.events.removeAll(); - oneThumbSlider.dispose(); - twoThumbSlider.dispose(); - oneThumbSliderRtl.dispose(); - twoThumbSliderRtl.dispose(); - mockClock.dispose(); - goog.dom.getElement('sandbox').innerHTML = ''; -} - -function testGetAndSetValue() { - oneThumbSlider.setValue(30); - assertEquals(30, oneThumbSlider.getValue()); - assertEquals('Setting valid value must dispatch only a single change event.', - 1, oneChangeEventCount); - - oneThumbSlider.setValue(30); - assertEquals(30, oneThumbSlider.getValue()); - assertEquals('Setting to same value must not dispatch change event.', - 1, oneChangeEventCount); - - oneThumbSlider.setValue(-30); - assertEquals('Setting invalid value must not change value.', - 30, oneThumbSlider.getValue()); - assertEquals('Setting invalid value must not dispatch change event.', - 1, oneChangeEventCount); - - - // Value thumb can't go past extent thumb, so we must move that first to - // allow setting value. - twoThumbSlider.setExtent(70); - twoChangeEventCount = 0; - twoThumbSlider.setValue(60); - assertEquals(60, twoThumbSlider.getValue()); - assertEquals('Setting valid value must dispatch only a single change event.', - 1, twoChangeEventCount); - - twoThumbSlider.setValue(60); - assertEquals(60, twoThumbSlider.getValue()); - assertEquals('Setting to same value must not dispatch change event.', - 1, twoChangeEventCount); - - twoThumbSlider.setValue(-60); - assertEquals('Setting invalid value must not change value.', - 60, twoThumbSlider.getValue()); - assertEquals('Setting invalid value must not dispatch change event.', - 1, twoChangeEventCount); -} - -function testGetAndSetValueRtl() { - var thumbElement = goog.dom.getElement('thumbRtl'); - assertEquals(0, goog.style.bidi.getOffsetStart(thumbElement)); - assertEquals('', thumbElement.style.left); - assertTrue(thumbElement.style.right >= 0); - - oneThumbSliderRtl.setValue(30); - assertEquals(30, oneThumbSliderRtl.getValue()); - assertEquals('Setting valid value must dispatch only a single change event.', - 1, oneChangeEventCount); - - assertEquals('', thumbElement.style.left); - assertTrue(thumbElement.style.right >= 0); - - oneThumbSliderRtl.setValue(30); - assertEquals(30, oneThumbSliderRtl.getValue()); - assertEquals('Setting to same value must not dispatch change event.', - 1, oneChangeEventCount); - - oneThumbSliderRtl.setValue(-30); - assertEquals('Setting invalid value must not change value.', - 30, oneThumbSliderRtl.getValue()); - assertEquals('Setting invalid value must not dispatch change event.', - 1, oneChangeEventCount); - - - // Value thumb can't go past extent thumb, so we must move that first to - // allow setting value. - var valueThumbElement = goog.dom.getElement('valueThumbRtl'); - var extentThumbElement = goog.dom.getElement('extentThumbRtl'); - assertEquals(0, goog.style.bidi.getOffsetStart(valueThumbElement)); - assertEquals(0, goog.style.bidi.getOffsetStart(extentThumbElement)); - assertEquals('', valueThumbElement.style.left); - assertTrue(valueThumbElement.style.right >= 0); - assertEquals('', extentThumbElement.style.left); - assertTrue(extentThumbElement.style.right >= 0); - - twoThumbSliderRtl.setExtent(70); - twoChangeEventCount = 0; - twoThumbSliderRtl.setValue(60); - assertEquals(60, twoThumbSliderRtl.getValue()); - assertEquals('Setting valid value must dispatch only a single change event.', - 1, twoChangeEventCount); - - twoThumbSliderRtl.setValue(60); - assertEquals(60, twoThumbSliderRtl.getValue()); - assertEquals('Setting to same value must not dispatch change event.', - 1, twoChangeEventCount); - - assertEquals('', valueThumbElement.style.left); - assertTrue(valueThumbElement.style.right >= 0); - assertEquals('', extentThumbElement.style.left); - assertTrue(extentThumbElement.style.right >= 0); - - twoThumbSliderRtl.setValue(-60); - assertEquals('Setting invalid value must not change value.', - 60, twoThumbSliderRtl.getValue()); - assertEquals('Setting invalid value must not dispatch change event.', - 1, twoChangeEventCount); -} - -function testGetAndSetExtent() { - // Note(user): With a one thumb slider the API only really makes sense if you - // always use setValue since there is no extent. - - twoThumbSlider.setExtent(7); - assertEquals(7, twoThumbSlider.getExtent()); - assertEquals('Setting valid value must dispatch only a single change event.', - 1, twoChangeEventCount); - - twoThumbSlider.setExtent(7); - assertEquals(7, twoThumbSlider.getExtent()); - assertEquals('Setting to same value must not dispatch change event.', - 1, twoChangeEventCount); - - twoThumbSlider.setExtent(-7); - assertEquals('Setting invalid value must not change value.', - 7, twoThumbSlider.getExtent()); - assertEquals('Setting invalid value must not dispatch change event.', - 1, twoChangeEventCount); -} - -function testUpdateValueExtent() { - twoThumbSlider.setValueAndExtent(30, 50); - - assertEquals('Setting value results in updating aria-valuenow', - '30', - goog.dom.a11y.getState( - twoThumbSlider.getElement(), - goog.dom.a11y.State.VALUENOW)); - assertEquals(30, twoThumbSlider.getValue()); - assertEquals(50, twoThumbSlider.getExtent()); -} - -function testRangeListener() { - var slider = new goog.ui.SliderBase; - slider.updateUi_= slider.updateAriaStates = function() {}; - slider.rangeModel.setValue(0); - - var f = goog.testing.recordFunction(); - goog.events.listen(slider, goog.ui.Component.EventType.CHANGE, f); - - slider.rangeModel.setValue(50); - assertEquals(1, f.getCallCount()); - - slider.exitDocument(); - slider.rangeModel.setValue(0); - assertEquals('The range model listener should not have been removed so we ' + - 'should have gotten a second event dispatch', - 2, f.getCallCount()); -} - -/** - * Verifies that rangeHighlight position and size are correct for the given - * startValue and endValue. Assumes slider has default min/max values [0, 100], - * width of 1020px, and thumb widths of 20px, with rangeHighlight drawn from - * the centers of the thumbs. - */ -function assertHighlightedRange(rangeHighlight, startValue, endValue) { - var rangeStr = '[' + startValue + ', ' + endValue + ']'; - var rangeStart = 10 + 10 * startValue; - assertEquals('Range highlight for ' + rangeStr + ' should start at ' + - rangeStart + 'px.', rangeStart, rangeHighlight.offsetLeft); - var rangeSize = 10 * (endValue - startValue); - assertEquals('Range highlight for ' + rangeStr + ' should have size ' + - rangeSize + 'px.', rangeSize, rangeHighlight.offsetWidth); -} - -function testKeyHandlingTests() { - twoThumbSlider.setValue(0); - twoThumbSlider.setExtent(100); - assertEquals(0, twoThumbSlider.getValue()); - assertEquals(100, twoThumbSlider.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSlider.getElement(), goog.events.KeyCodes.RIGHT); - assertEquals(1, twoThumbSlider.getValue()); - assertEquals(99, twoThumbSlider.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSlider.getElement(), goog.events.KeyCodes.RIGHT); - assertEquals(2, twoThumbSlider.getValue()); - assertEquals(98, twoThumbSlider.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSlider.getElement(), goog.events.KeyCodes.LEFT); - assertEquals(1, twoThumbSlider.getValue()); - assertEquals(98, twoThumbSlider.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSlider.getElement(), goog.events.KeyCodes.LEFT); - assertEquals(0, twoThumbSlider.getValue()); - assertEquals(98, twoThumbSlider.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSlider.getElement(), goog.events.KeyCodes.RIGHT, - { shiftKey: true }); - assertEquals(10, twoThumbSlider.getValue()); - assertEquals(90, twoThumbSlider.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSlider.getElement(), goog.events.KeyCodes.RIGHT, - { shiftKey: true }); - assertEquals(20, twoThumbSlider.getValue()); - assertEquals(80, twoThumbSlider.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSlider.getElement(), goog.events.KeyCodes.LEFT, - { shiftKey: true }); - assertEquals(10, twoThumbSlider.getValue()); - assertEquals(80, twoThumbSlider.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSlider.getElement(), goog.events.KeyCodes.LEFT, - { shiftKey: true }); - assertEquals(0, twoThumbSlider.getValue()); - assertEquals(80, twoThumbSlider.getExtent()); -} - -function testKeyHandlingRtl() { - twoThumbSliderRtl.setValue(0); - twoThumbSliderRtl.setExtent(100); - assertEquals(0, twoThumbSliderRtl.getValue()); - assertEquals(100, twoThumbSliderRtl.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSliderRtl.getElement(), goog.events.KeyCodes.RIGHT); - assertEquals(0, twoThumbSliderRtl.getValue()); - assertEquals(99, twoThumbSliderRtl.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSliderRtl.getElement(), goog.events.KeyCodes.RIGHT); - assertEquals(0, twoThumbSliderRtl.getValue()); - assertEquals(98, twoThumbSliderRtl.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSliderRtl.getElement(), goog.events.KeyCodes.LEFT); - assertEquals(1, twoThumbSliderRtl.getValue()); - assertEquals(98, twoThumbSliderRtl.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSliderRtl.getElement(), goog.events.KeyCodes.LEFT); - assertEquals(2, twoThumbSliderRtl.getValue()); - assertEquals(98, twoThumbSliderRtl.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSliderRtl.getElement(), goog.events.KeyCodes.RIGHT, - { shiftKey: true }); - assertEquals(0, twoThumbSliderRtl.getValue()); - assertEquals(90, twoThumbSliderRtl.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSliderRtl.getElement(), goog.events.KeyCodes.RIGHT, - { shiftKey: true }); - assertEquals(0, twoThumbSliderRtl.getValue()); - assertEquals(80, twoThumbSliderRtl.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSliderRtl.getElement(), goog.events.KeyCodes.LEFT, - { shiftKey: true }); - assertEquals(10, twoThumbSliderRtl.getValue()); - assertEquals(80, twoThumbSliderRtl.getExtent()); - - goog.testing.events.fireKeySequence( - twoThumbSliderRtl.getElement(), goog.events.KeyCodes.LEFT, - { shiftKey: true }); - assertEquals(20, twoThumbSliderRtl.getValue()); - assertEquals(80, twoThumbSliderRtl.getExtent()); -} - -function testRangeHighlight() { - var rangeHighlight = goog.dom.getElement('rangeHighlight'); - - // Test [0, 100] - twoThumbSlider.setValue(0); - twoThumbSlider.setExtent(100); - assertHighlightedRange(rangeHighlight, 0, 100); - - // Test [25, 75] - twoThumbSlider.setValue(25); - twoThumbSlider.setExtent(50); - assertHighlightedRange(rangeHighlight, 25, 75); - - // Test [50, 50] - twoThumbSlider.setValue(50); - twoThumbSlider.setExtent(0); - assertHighlightedRange(rangeHighlight, 50, 50); -} - -function testRangeHighlightAnimation() { - var animationDelay = 160; // Delay in ms, is a bit higher than actual delay. - if (goog.userAgent.IE) { - // For some reason, (probably due to how timing works), IE7 and IE8 will not - // stop if we don't wait for it. - animationDelay = 250; - } - - var rangeHighlight = goog.dom.getElement('rangeHighlight'); - twoThumbSlider.setValue(0); - twoThumbSlider.setExtent(100); - - // Animate right thumb, final range is [0, 75] - twoThumbSlider.animatedSetValue(75); - assertHighlightedRange(rangeHighlight, 0, 100); - mockClock.tick(animationDelay); - assertHighlightedRange(rangeHighlight, 0, 75); - - // Animate left thumb, final range is [25, 75] - twoThumbSlider.animatedSetValue(25); - assertHighlightedRange(rangeHighlight, 0, 75); - mockClock.tick(animationDelay); - assertHighlightedRange(rangeHighlight, 25, 75); -} - -/** - * Verifies that no error occurs and that the range highlight is sized correctly - * for a zero-size slider (i.e. doesn't attempt to set a negative size). The - * test tries to resize the slider from its original size to 0, then checks - * that the range highlight's size is correctly set to 0. - * - * The size verification is needed because Webkit/Gecko outright ignore calls - * to set negative sizes on an element, leaving it at its former size. IE - * throws an error in the same situation. - */ -function testRangeHighlightForZeroSizeSlider() { - // Make sure range highlight spans whole slider before zeroing width. - twoThumbSlider.setExtent(100); - twoThumbSlider.getElement().style.width = 0; - - // The setVisible call is used to force a UI update. - twoThumbSlider.setVisible(true); - assertEquals('Range highlight size should be 0 when slider size is 0', - 0, goog.dom.getElement('rangeHighlight').offsetWidth); -} - -function testMouseWheelEventHandlerEnable() { - // Mouse wheel handling should be enabled by default. - assertTrue(oneThumbSlider.isHandleMouseWheel()); - - // Test disabling the mouse wheel handler - oneThumbSlider.setHandleMouseWheel(false); - assertFalse(oneThumbSlider.isHandleMouseWheel()); - - // Test that enabling again works fine. - oneThumbSlider.setHandleMouseWheel(true); - assertTrue(oneThumbSlider.isHandleMouseWheel()); - - // Test that mouse wheel handling can be disabled before rendering a slider. - var wheelDisabledElem = goog.dom.createDom( - 'div', {}, goog.dom.createDom('span')); - var wheelDisabledSlider = new OneThumbSlider(); - wheelDisabledSlider.setHandleMouseWheel(false); - wheelDisabledSlider.decorate(wheelDisabledElem); - assertFalse(wheelDisabledSlider.isHandleMouseWheel()); -} - -function testDisabledAndEnabledSlider() { - // Check that a slider is enabled by default - assertTrue(oneThumbSlider.isEnabled()); - - var listenerCount = oneThumbSlider.getHandler().getListenerCount(); - // Disable the slider and check its state - oneThumbSlider.setEnabled(false); - assertFalse(oneThumbSlider.isEnabled()); - assertTrue(goog.dom.classes.has( - oneThumbSlider.getElement(), 'goog-slider-disabled')); - assertEquals(0, oneThumbSlider.getHandler().getListenerCount()); - - // setValue should work unaffected even when the slider is disabled. - oneThumbSlider.setValue(30); - assertEquals(30, oneThumbSlider.getValue()); - assertEquals('Setting valid value must dispatch a change event ' + - 'even when slider is disabled.', 1, oneChangeEventCount); - - // Test the transition from disabled to enabled - oneThumbSlider.setEnabled(true); - assertTrue(oneThumbSlider.isEnabled()); - assertFalse(goog.dom.classes.has( - oneThumbSlider.getElement(), 'goog-slider-disabled')); - assertTrue(listenerCount == oneThumbSlider.getHandler().getListenerCount()); -} - -function testBlockIncrementingWithEnableAndDisabled() { - var doc = goog.dom.getOwnerDocument(oneThumbSlider.getElement()); - // Case when slider is not disabled between the mouse down and up events. - goog.testing.events.fireMouseDownEvent(oneThumbSlider.getElement()); - assertEquals(1, goog.events.getListeners( - oneThumbSlider.getElement(), - goog.events.EventType.MOUSEMOVE, false).length); - assertEquals(1, goog.events.getListeners( - doc, goog.events.EventType.MOUSEUP, true).length); - - goog.testing.events.fireMouseUpEvent(oneThumbSlider.getElement()); - - assertEquals(0, goog.events.getListeners( - oneThumbSlider.getElement(), - goog.events.EventType.MOUSEMOVE, false).length); - assertEquals(0, goog.events.getListeners( - doc, goog.events.EventType.MOUSEUP, true).length); - - // Case when the slider is disabled between the mouse down and up events. - goog.testing.events.fireMouseDownEvent(oneThumbSlider.getElement()); - assertEquals(1, goog.events.getListeners( - oneThumbSlider.getElement(), - goog.events.EventType.MOUSEMOVE, false).length); - assertEquals(1, - goog.events.getListeners(doc, - goog.events.EventType.MOUSEUP, true).length); - - oneThumbSlider.setEnabled(false); - - assertEquals(0, goog.events.getListeners( - oneThumbSlider.getElement(), - goog.events.EventType.MOUSEMOVE, false).length); - assertEquals(0, goog.events.getListeners( - doc, goog.events.EventType.MOUSEUP, true).length); - assertEquals(1, oneThumbSlider.getHandler().getListenerCount()); - - goog.testing.events.fireMouseUpEvent(oneThumbSlider.getElement()); - assertEquals(0, goog.events.getListeners( - oneThumbSlider.getElement(), - goog.events.EventType.MOUSEMOVE, false).length); - assertEquals(0, goog.events.getListeners( - doc, goog.events.EventType.MOUSEUP, true).length); -} - -function testMouseClickWithMoveToPointEnabled() { - var stepSize = 20; - oneThumbSlider.setStep(stepSize); - oneThumbSlider.setMoveToPointEnabled(true); - - var initialValue = oneThumbSlider.getValue(); - var coords = goog.style.getClientPosition(oneThumbSlider.getElement()); - - coords.x += stepSize / 2; - - // Case when value is increased - goog.testing.events.fireClickSequence(oneThumbSlider.getElement(), - /* opt_button */ undefined, coords); - assertEquals(oneThumbSlider.getValue(), initialValue + stepSize); - - // Case when value is decreased - goog.testing.events.fireClickSequence(oneThumbSlider.getElement(), - /* opt_button */ undefined, coords); - assertEquals(oneThumbSlider.getValue(), initialValue); - - // Case when thumb is clicked - goog.testing.events.fireClickSequence(oneThumbSlider.getElement()); - assertEquals(oneThumbSlider.getValue(), initialValue); -} - -/** - * Tests getThumbCoordinateForValue method. - */ -function testThumbCoordinateForValue() { - var value = 30; - oneThumbSlider.setValue(value); - var coord = goog.style.getPosition(oneThumbSlider.valueThumb); - assertEquals( - coord.x, Math.round(oneThumbSlider.getThumbCoordinateForValue(value).x)); - assertEquals(0, oneThumbSlider.getThumbCoordinateForValue(value).y); - // Verify this works regardless of current position. - oneThumbSlider.setValue(value / 2); - assertEquals( - coord.x, Math.round(oneThumbSlider.getThumbCoordinateForValue(value).x)); -} - -/** - * Tests getValueFromMousePosition method. - */ -function testValueFromMousePosition() { - var value = 30; - oneThumbSlider.setValue(value); - var offset = goog.style.getPageOffset(oneThumbSlider.valueThumb); - var size = goog.style.getSize(oneThumbSlider.valueThumb); - offset.x += size.width / 2; - offset.y += size.height / 2; - var e = null; - goog.events.listen(oneThumbSlider, goog.events.EventType.MOUSEMOVE, - function(evt) { - e = evt; - }); - goog.testing.events.fireMouseMoveEvent(oneThumbSlider, offset); - assertNotEquals(e, null); - assertEquals( - value, Math.round(oneThumbSlider.getValueFromMousePosition(e))); - // Verify this works regardless of current position. - oneThumbSlider.setValue(value / 2); - assertEquals( - value, Math.round(oneThumbSlider.getValueFromMousePosition(e))); -} - -</script> -</body> -</html> |