UNPKG

sku-pg

Version:

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

153 lines (128 loc) 4.92 kB
<!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>HsvaPalette Unit Tests</title> <script src="../base.js"></script> <script src="../deps.js"></script> <script> goog.require('goog.color.alpha'); goog.require('goog.events'); goog.require('goog.math.Rect'); goog.require('goog.style'); goog.require('goog.testing.PropertyReplacer'); goog.require('goog.testing.jsunit'); goog.require('goog.ui.HsvaPalette'); goog.require('goog.userAgent'); </script> </head> <body> <div id="sandbox"></div> <script> var samplePalette; var eventWasFired = false; var stubs = new goog.testing.PropertyReplacer(); function setUp() { samplePalette = new goog.ui.HsvaPalette(); } function tearDown() { samplePalette.dispose(); stubs.reset(); } function testZeroAlpha() { var palette = new goog.ui.HsvaPalette(null, undefined, 0); assertEquals(0, palette.getAlpha()); } function testOptionalInitialColor() { var alpha = 0.5; var color = '#0000ff'; var palette = new goog.ui.HsvaPalette(null, color, alpha); assertEquals(color, palette.getColor()); assertEquals(alpha, palette.getAlpha()); } function testCustomClassName() { var customClassName = 'custom-plouf'; var customClassPalette = new goog.ui.HsvaPalette(null, null, null, customClassName); customClassPalette.createDom(); assertTrue(goog.dom.classes.has(customClassPalette.getElement(), customClassName)); } function testSetColor() { var color = '#abcdef01'; samplePalette.setColorRgbaHex(color); assertEquals(color, goog.color.alpha.parse(samplePalette.getColorRgbaHex()).hex); } function testRender() { samplePalette.render(document.getElementById('sandbox')); assertTrue(samplePalette.isInDocument()); var elem = samplePalette.getElement(); assertNotNull(elem); assertEquals(goog.dom.TagName.DIV, elem.tagName); if (goog.userAgent.IE && !goog.userAgent.isVersionOrHigher('7')) { assertSameElements('On IE6, the noalpha class must be present', ['goog-hsva-palette', 'goog-hsva-palette-noalpha'], goog.dom.classes.get(elem)); } else { assertEquals('The noalpha class must not be present', 'goog-hsva-palette', elem.className); } } function testNoLeftOverListenersAfterDispose() { var initialListenerCount = goog.events.getTotalListenerCount(); samplePalette.render(document.getElementById('sandbox')); samplePalette.dispose(); assertEquals(initialListenerCount, goog.events.getTotalListenerCount()); } function testInputColor() { samplePalette.render(document.getElementById('sandbox')); var color = '#00112233'; samplePalette.inputElement.value = color; samplePalette.handleInput(null); assertEquals(color, goog.color.alpha.parse(samplePalette.getColorRgbaHex()).hex); } function testHandleMouseMoveAlpha() { samplePalette.render(document.getElementById('sandbox')); stubs.set(goog.dom, 'getPageScroll', function() { return new goog.math.Coordinate(0, 0); }); // Lowering the opacity of a dark, opaque red should yield a // more transparent red. samplePalette.setColorRgbaHex('#630c0000'); goog.style.setPageOffset(samplePalette.aImageEl_, 0, 0); goog.style.setSize(samplePalette.aImageEl_, 10, 100); var boundaries = goog.style.getBounds(samplePalette.aImageEl_); var event = new goog.events.Event(); event.clientY = boundaries.top; samplePalette.handleMouseMoveA_(boundaries, event); assertEquals('#630c00ff', samplePalette.getColorRgbaHex()); } function testSwatchOpacity() { samplePalette.render(document.getElementById('sandbox')); samplePalette.setAlpha(1); assertEquals(1, goog.style.getOpacity(samplePalette.swatchElement)); samplePalette.setAlpha(0x99 / 0xff); assertEquals(0.6, goog.style.getOpacity(samplePalette.swatchElement)); samplePalette.setAlpha(0); assertEquals(0, goog.style.getOpacity(samplePalette.swatchElement)); } function testNoTransparencyBehavior() { samplePalette.render(document.getElementById('sandbox')); samplePalette.inputElement.value = '#abcdef22'; samplePalette.handleInput(null); samplePalette.inputElement.value = '#abcdef'; samplePalette.handleInput(null); assertEquals(1, goog.style.getOpacity(samplePalette.swatchElement)); } </script> </body> </html>