UNPKG

sku-pg

Version:

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

125 lines (98 loc) 3.08 kB
<!DOCTYPE html> <html> <!-- Copyright 2011 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.style.transition</title> <script src="../base.js"></script> <script> goog.require('goog.style'); goog.require('goog.style.transition'); goog.require('goog.testing.jsunit'); goog.require('goog.userAgent'); </script> </head> <body> <script> /** Fake element. */ var element; function setUp() { element = {'style': {}}; } function getTransitionStyle(element) { return element.style['transition'] || goog.style.getStyle(element, 'transition'); }; function testSetWithNoProperty() { try { goog.style.transition.set(element, []); } catch (e) { return; } fail('Should fail when no property is given.'); } function testSetWithString() { goog.style.transition.set(element, 'opacity 1s ease-in 0.125s'); assertEquals('opacity 1s ease-in 0.125s', getTransitionStyle(element)); } function testSetWithSingleProperty() { goog.style.transition.set(element, {property: 'opacity', duration: 1, timing: 'ease-in', delay: 0.125}); assertEquals('opacity 1s ease-in 0.125s', getTransitionStyle(element)); } function testSetWithMultipleStrings() { goog.style.transition.set(element, [ 'width 1s ease-in', 'height 0.5s linear 1s' ]); assertEquals('width 1s ease-in,height 0.5s linear 1s', getTransitionStyle(element)); } function testSetWithMultipleProperty() { goog.style.transition.set(element, [ {property: 'width', duration: 1, timing: 'ease-in', delay: 0}, {property: 'height', duration: 0.5, timing: 'linear', delay: 1} ]); assertEquals('width 1s ease-in 0s,height 0.5s linear 1s', getTransitionStyle(element)); } function testRemoveAll() { goog.style.setStyle(element, 'transition', 'opacity 1s ease-in'); goog.style.transition.removeAll(element); assertEquals('', getTransitionStyle(element)); } function testAddAndRemoveOnRealElement() { if (!goog.style.transition.isSupported()) { return; } var div = document.getElementById('test'); goog.style.transition.set(div, 'opacity 1s ease-in 0.125s'); assertEquals('opacity 1s ease-in 0.125s', getTransitionStyle(div)); goog.style.transition.removeAll(div); assertEquals('', getTransitionStyle(div)); } function testSanityDetectionOfCss3Transition() { var support = goog.style.transition.isSupported(); // IE support starts at IE10. if (goog.userAgent.IE) { assertEquals(goog.userAgent.isVersionOrHigher('10.0'), support); } // FF support start at FF4 (Gecko 2.0) if (goog.userAgent.GECKO) { assertEquals(goog.userAgent.isVersionOrHigher('2.0'), support); } // Webkit support has existed for a long time, we assume support on // most webkit version in used today. if (goog.userAgent.WEBKIT) { assertTrue(support); } } </script> <div id=test></div> </body> </html>