corrade-http-templates – Blame information for rev 38

Subversion Repositories:
Rev:
Rev Author Line No. Line
38 office 1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Velocity.js Tests</title>
5 <link rel="stylesheet" href="qunit-1.14.0.css" type="text/css" media="screen" />
6 <script type="text/javascript" src="qunit-1.14.0.js"></script>
7 <script type="text/javascript" src="jquery-1.12.4.js"></script>
8 <script type="text/javascript" src="when.js"></script>
9 <!--<script type="text/javascript" src="zepto.js"></script>-->
10 <script type="text/javascript" src="../velocity.js"></script>
11 <script type="text/javascript" src="../velocity.ui.js"></script>
12 <style>
13 #details {
14 margin: 0 auto;
15 margin-bottom: 1em;
16  
17 width: 800px;
18 padding: 0;
19  
20 line-height: 1.35em;
21 list-style: none;
22 }
23 </style>
24 </head>
25 <body>
26 <ul id="details">
27 <li>
28 Unit tests: <i><b>current document</b>.</i>
29 </li>
30 <li>
31 Performance tests: <i>See <b>Performance</b> pane in <a href="../../index.html#performance">docs</a>.</i>
32 </li>
33 <li>
34 Property support tests: <i>Run the Property Support pane's <a href="../../index.html#propertiesTest">auto-cycler</a>.</i>
35 </li>
36 <li>
37 Visual tests: <i>See <a href="../../demo.html"><b>demo</b></a>. Read demo's source for intended behavior.</i>
38 </li>
39 </ul>
40 <div id="qunit"></div>
41 <div id="qunit-stage"></div>
42 <script>
43  
44 // Needed tests:
45 // - new stop behvaior
46 // - e/p/o shorthands
47  
48 /*********************
49 Helper Functions
50 *********************/
51  
52 /* IE detection: https://gist.github.com/julianshapiro/9098609 */
53 var IE = (function() {
54 if (document.documentMode) {
55 return document.documentMode;
56 } else {
57 for (var i = 7; i > 0; i--) {
58 var div = document.createElement("div");
59  
60 div.innerHTML = "<!" + "--[if IE " + i + "]><span></span><![endif]--" + ">";
61  
62 if (div.getElementsByTagName("span").length) {
63 div = null;
64  
65 return i;
66 }
67  
68 div = null;
69 }
70 }
71  
72 return undefined;
73 })();
74  
75 var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
76 var isAndroid = /Android/i.test(navigator.userAgent);
77  
78 function applyStartValues (element, startValues) {
79 Velocity.Utilities.each(startValues, function(property, startValue) {
80 element.style[property] = startValue;
81 });
82 }
83  
84 /*********************
85 IE<=7 Reversion
86 *********************/
87  
88 if (IE <= 7 && $.fn.velocity) {
89 alert("Velocity wasn't reverted to jQuery's $.animate() for IE<=7.");
90 }
91  
92 /*******************
93 jQuery Shim
94 *******************/
95  
96 var $ = (window.jQuery || window.Zepto);
97  
98 Data = function(element) {
99 return Velocity.Utilities.data(element, "velocity");
100 };
101  
102 if ($ && $.Velocity) {
103 window.Velocity = $.Velocity;
104 }
105  
106 /*******************
107 Setup: Targets
108 *******************/
109  
110 var $qunitStage = document.getElementById("qunit-stage");
111  
112 var targetsFragment = document.createDocumentFragment(),
113 targetsIndex = 0,
114 $targets,
115 $targetSet,
116 defaultStyles = {
117 opacity: 1,
118 width: 1,
119 height: 1,
120 marginBottom: 1,
121 colorGreen: 200
122 };
123  
124 for (var i = 0; i < 200; i++) {
125 var div = document.createElement("div");
126  
127 div.className = "target";
128 div.style.opacity = defaultStyles.opacity;
129 div.style.color = "rgb(125, " + defaultStyles.colorGreen + ", 125)";
130 div.style.width = defaultStyles.width + "px";
131 div.style.height = defaultStyles.height + "px";
132 div.style.marginBottom = defaultStyles.marginBottom + "px";
133 div.style.textShadow = "0px 0px " + defaultStyles.textShadowBlur + "px red";
134  
135 targetsFragment.appendChild(div);
136 div = null;
137 }
138  
139 $qunitStage.appendChild(targetsFragment);
140 $targets = $qunitStage.querySelectorAll(".target");
141  
142 function getTarget () {
143 var newTarget = $targets[targetsIndex++];
144  
145 return newTarget;
146 }
147  
148 /********************
149 Setup: Settings
150 ********************/
151  
152 var pluginName = "velocity",
153 defaultProperties = {
154 opacity: defaultStyles.opacity / 2,
155 width: defaultStyles.width * 2,
156 height: defaultStyles.height * 2,
157 colorGreen: defaultStyles.colorGreen / 2
158 },
159 defaultOptions = {
160 queue: "",
161 duration: 300,
162 easing: "swing",
163 begin: null,
164 complete: null,
165 progress: null,
166 display: null,
167 loop: false,
168 delay: false,
169 mobileHA: true,
170 _cacheValues: true
171 },
172 asyncCheckDuration = defaultOptions.duration / 2,
173 completeCheckDuration = defaultOptions.duration * 2;
174  
175 Velocity.defaults = defaultOptions;
176  
177 /****************
178 Arguments
179 ****************/
180  
181 QUnit.test("Arguments", function(assert) {
182 var testComplete = function() { /* Do nothing */ },
183 testDuration = 1000,
184 testEasing = "easeInSine",
185 testOptions = {
186 queue: defaultOptions.queue,
187 duration: testDuration,
188 easing: testEasing,
189 begin: null,
190 complete: testComplete,
191 progress: null,
192 display: "block",
193 loop: false,
194 delay: false,
195 mobileHA: false,
196 _cacheValues: defaultOptions._cacheValues
197 };
198  
199 /**********************
200 Invalid Arguments
201 **********************/
202  
203 var $target1 = getTarget();
204 /* No arguments: Ensure an error isn't thrown and that the $targeted elements are returned to the chain. */
205 Velocity();
206 Velocity($target1);
207 Velocity($target1, {});
208 Velocity($target1, {}, testDuration);
209 /* Invalid arguments: Ensure an error isn't thrown. */
210 Velocity($target1, "fakeArg1", "fakeArg2");
211  
212 /****************
213 Overloading
214 ****************/
215  
216 var $target3 = getTarget();
217 Velocity($target3, defaultProperties, testDuration);
218 assert.equal(Data($target3, pluginName).opts.duration, testDuration, "Overload variation #2.");
219  
220 var $target4 = getTarget();
221 Velocity($target4, defaultProperties, testEasing);
222 assert.equal(Data($target4, pluginName).opts.easing, testEasing, "Overload variation #3.");
223  
224 var $target5 = getTarget();
225 Velocity($target5, defaultProperties, testComplete);
226 assert.equal(Data($target5, pluginName).opts.complete, testComplete, "Overload variation #4.");
227  
228 var $target6 = getTarget();
229 Velocity($target6, defaultProperties, testDuration, [ 0.42, 0, 0.58, 1 ]);
230 assert.equal(Data($target6, pluginName).opts.duration, testDuration, "Overload variation #5a.");
231 assert.equal(Data($target6, pluginName).opts.easing(0.2), 0.0816598562658975, "Overload variation #5b.");
232  
233 var $target7 = getTarget();
234 Velocity($target7, defaultProperties, testDuration, testComplete);
235 assert.equal(Data($target7, pluginName).opts.duration, testDuration, "Overload variation #6a.");
236 assert.equal(Data($target7, pluginName).opts.complete, testComplete, "Overload variation #6b.");
237  
238 var $target8 = getTarget();
239 Velocity($target8, defaultProperties, testDuration, testEasing, testComplete);
240 assert.equal(Data($target8, pluginName).opts.duration, testDuration, "Overload variation #7a.");
241 assert.equal(Data($target8, pluginName).opts.easing, testEasing, "Overload variation #7b.");
242 assert.equal(Data($target8, pluginName).opts.complete, testComplete, "Overload variation #7c.");
243  
244 var $target9 = getTarget();
245 Velocity($target9, defaultProperties, testOptions);
246 assert.deepEqual(Data($target9, pluginName).opts, testOptions, "Overload variation #8: options object.");
247  
248 var $target10 = getTarget();
249 Velocity({ elements: $target10, properties: defaultProperties, options: testOptions });
250 assert.deepEqual(Data($target10, pluginName).opts, testOptions, "Overload variation #9: single object w/ map.");
251  
252 var $target11 = getTarget();
253 Velocity({ elements: $target11, properties: "fadeOut", options: testOptions });
254 assert.strictEqual(Data($target11, pluginName).tweensContainer.opacity.endValue, 0, "Overload variation #9: single object w/ redirect.");
255  
256 var $target12 = getTarget();
257 Velocity($target12, { opacity: [ 0.75, "spring", 0.25 ]}, testDuration);
258 assert.equal(Data($target12, pluginName).tweensContainer.opacity.startValue, 0.25, "Overload variation #10a.");
259 assert.equal(Data($target12, pluginName).tweensContainer.opacity.easing, "spring", "Overload variation #10b.");
260 assert.equal(Data($target12, pluginName).tweensContainer.opacity.endValue, 0.75, "Overload variation #10c.");
261  
262 var $target13 = getTarget();
263 Velocity($target13, { opacity: [ 0.75, 0.25 ]}, testDuration);
264 assert.equal(Data($target13, pluginName).tweensContainer.opacity.startValue, 0.25, "Overload variation #11a.");
265 assert.equal(Data($target13, pluginName).tweensContainer.opacity.endValue, 0.75, "Overload variation #11b.");
266  
267 var $target14 = getTarget();
268 Velocity($target14, { opacity: [ 0.75, "spring" ]}, testDuration);
269 assert.equal(Data($target14, pluginName).tweensContainer.opacity.endValue, 0.75, "Overload variation #12a.");
270 assert.equal(Data($target14, pluginName).tweensContainer.opacity.easing, "spring", "Overload variation #12b.");
271  
272 var $target15 = getTarget();
273 Velocity($target15, defaultProperties, "fast", testEasing);
274 assert.equal(Data($target15, pluginName).opts.duration, 200, "Overload variation #13a.");
275  
276 var $target16 = getTarget();
277 Velocity($target16, defaultProperties, "normal");
278 assert.equal(Data($target16, pluginName).opts.duration, 400, "Overload variation #13b.");
279  
280 if ($) {
281 var $target17 = getTarget();
282 $($target17).velocity(defaultProperties, testOptions);
283 assert.deepEqual(Data($target17, pluginName).opts, testOptions, "$.fn.: Utility function variation #1: options object.");
284  
285 var $target18 = getTarget();
286 $($target18).velocity({ properties: defaultProperties, options: testOptions });
287 assert.deepEqual(Data($target18, pluginName).opts, testOptions, "$.fn.: Utility function variation #2: single object.");
288  
289 var $target19 = getTarget();
290 $($target19).velocity(defaultProperties, testDuration, testEasing, testComplete);
291 assert.equal(Data($target19, pluginName).opts.duration, testDuration, "$.fn.: Utility function variation #2a.");
292 assert.equal(Data($target19, pluginName).opts.easing, testEasing, "$.fn.: Utility function variation #2b.");
293 assert.equal(Data($target19, pluginName).opts.complete, testComplete, "$.fn.: Utility function variation #2c.");
294  
295 var $target20 = getTarget();
296 assert.deepEqual($($target20), $($target20).velocity(defaultProperties, testDuration, testEasing, testComplete).velocity(defaultProperties, testDuration, testEasing, testComplete), "$.fn.: Elements passed back to the call stack.");
297 }
298 });
299  
300 /******************
301 CSS Object
302 ******************/
303  
304 /* Note: We don't bother checking all of the GET/SET-related CSS object's functions, as most are repeatedly tested indirectly via the other tests. */
305 QUnit.test("CSS Object", function(assert) {
306 var CSS = Velocity.CSS;
307  
308 var testHookRoot = "boxShadow",
309 testHookRootValue = IE >=9 ? "1px 2px 3px 4px black" : "black 1px 2px 3px 4px",
310 testHook = "boxShadowY",
311 testHookValueExtracted = "2px",
312 testHookValueInject = "10px",
313 testHookRootValueInjected = "1px 10px 3px 4px";
314  
315 /* Hooks manipulation. */
316 assert.equal(CSS.Hooks.getRoot(testHook), testHookRoot, "Hooks.getRoot() returned root.");
317  
318 /* Hooks have no effect if they're unsupported (which is the case for our hooks on <=IE8), thus we just ensure that errors aren't thrown. */
319 if (IE <=8) {
320 <=8) { CSS.Hooks.extractValue(testHook, testHookRootValue);
321 <=8) { CSS.Hooks.injectValue(testHook, testHookValueInject, testHookRootValue);
322 <=8) { } else {
323 <=8) { assert.equal(CSS.Hooks.extractValue(testHook, testHookRootValue), testHookValueExtracted, "Hooks.extractValue() returned value #1.");
324 <=8) { /* Check for a match anywhere in the string since browser differ in where they inject the color value. */
325 <=8) { assert.equal(CSS.Hooks.injectValue(testHook, testHookValueInject, testHookRootValue).indexOf(testHookRootValueInjected) !== -1, true, "Hooks.extractValue() returned value #2.");
326 <=8) { }
327  
328 <=8) { /* Varied start color formats. Ensure that all variations of red output contain the same color copmonents when Normalized: "255 0 0". */
329 <=8) { var redVariations = [
330 <=8) { "rgb(255, 0, 0)",
331 <=8) { "rgba(255,0,0,0.5)",
332 <=8) { "#ff0000",
333 <=8) { "red"
334 <=8) { ];
335  
336 <=8) { Velocity.Utilities.each(redVariations, function(i, redVariation) {
337 <=8) { assert.equal(/255 0 0/.test(CSS.Normalizations.registered["color"]("extract", null, redVariation)), true, "Normalizations.extractValue() returned red color variation #" + i + ".");
338 <=8) { });
339  
340 <=8) { var testPropertyFake = "fakeProperty";
341  
342 <=8) { /* Property name functions. */
343 <=8) { assert.equal(CSS.Names.prefixCheck(testPropertyFake)[0], testPropertyFake, "Names.prefixCheck() returned unmatched property untouched.");
344 <=8) { assert.equal(CSS.Names.prefixCheck(testPropertyFake)[1], false, "Names.prefixCheck() indicated that unmatched property waws unmatched.");
345 <=8) { assert.equal(CSS.Values.isCSSNullValue("rgba(0,0,0,0)"), true, "Values.isCSSNullValue() matched null value #1.");
346 <=8) { assert.equal(CSS.Values.isCSSNullValue("none"), true, "Values.isCSSNullValue() matched null value #2.");
347 <=8) { assert.equal(CSS.Values.isCSSNullValue(10), false, "Values.isCSSNullValue() didn't match non-null value.");
348  
349 <=8) { var testUnitProperty1 = "rotateZ",
350 <=8) { testUnitPropertyUnit1 = "deg",
351 <=8) { testUnitProperty2 = "width",
352 <=8) { testUnitPropertyUnit2 = "px",
353 <=8) { testElementType1 = document.createElement("div"),
354 <=8) { testElementTypeDisplay1 = "block",
355 <=8) { testElementType2 = document.createElement("span"),
356 <=8) { testElementTypeDisplay2 = "inline";
357  
358 <=8) { /* CSS value functions. */
359 <=8) { assert.equal(CSS.Values.getUnitType(testUnitProperty1), testUnitPropertyUnit1, "Unit type #1 was retrieved.");
360 <=8) { assert.equal(CSS.Values.getUnitType(testUnitProperty2), testUnitPropertyUnit2, "Unit type #2 was retrieved.");
361  
362 <=8) { /* Class addition/removal. */
363 <=8) { var $target1 = getTarget();
364 <=8) { $target1.className = "";
365 <=8) { CSS.Values.addClass($target1, "one");
366 <=8) { assert.equal($target1.className, "one", "First class was added.");
367 <=8) { CSS.Values.addClass($target1, "two");
368 <=8) { assert.equal($target1.className, "one two", "Second class was added.");
369  
370 <=8) { CSS.Values.removeClass($target1, "two");
371 <=8) { assert.equal($target1.className.replace(/^\s+|\s+$/g, ""), "one", "Second class was removed.");
372 <=8) { CSS.Values.removeClass($target1, "one");
373 <=8) { assert.equal($target1.className.replace(/^\s+|\s+$/g, ""), "", "First class was removed.");
374 <=8) { });
375  
376 <=8) { /****************************
377 <=8) { Start Value Calculation
378 <=8) { ****************************/
379  
380 <=8) { QUnit.test("Start Value Calculation", function(assert) {
381 <=8) { var testStartValues = { paddingLeft: "10px", height: "100px", paddingRight: "50%", marginLeft: "100px", marginBottom: "33%", marginTop: "100px", lineHeight: "30px", wordSpacing: "40px", backgroundColorRed: "123" };
382  
383 <=8) { /* Properties not previously defined on the element. */
384 <=8) { var $target1 = getTarget();
385 <=8) { Velocity($target1, testStartValues);
386 <=8) { assert.equal(Data($target1, pluginName).tweensContainer.paddingLeft.startValue, 0, "Undefined standard start value was calculated.");
387 <=8) { assert.equal(Data($target1, pluginName).tweensContainer.backgroundColorRed.startValue, 255, "Undefined start value hook was calculated.");
388  
389 <=8) { /* Properties previously defined on the element. */
390 <=8) { var $target2 = getTarget();
391 <=8) { Velocity($target2, defaultProperties);
392 <=8) { assert.equal(Data($target2, pluginName).tweensContainer.width.startValue, parseFloat(defaultStyles.width), "Defined start value #1 was calculated.");
393 <=8) { assert.equal(Data($target2, pluginName).tweensContainer.opacity.startValue, parseFloat(defaultStyles.opacity), "Defined start value #2 was calculated.");
394 <=8) { assert.equal(Data($target2, pluginName).tweensContainer.colorGreen.startValue, parseFloat(defaultStyles.colorGreen), "Defined hooked start value was calculated.");
395  
396 <=8) { /* Properties that shouldn't cause start values to be unit-converted. */
397 <=8) { var testPropertiesEndNoConvert = { paddingLeft: "20px", height: "40px", paddingRight: "75%" };
398 <=8) { var $target3 = getTarget();
399 <=8) { applyStartValues($target3, testStartValues);
400 <=8) { Velocity($target3, testPropertiesEndNoConvert);
401 <=8) { assert.equal(Data($target3, pluginName).tweensContainer.paddingLeft.startValue, parseFloat(testStartValues.paddingLeft), "Start value #1 wasn't unit converted.");
402 <=8) { assert.equal(Data($target3, pluginName).tweensContainer.height.startValue, parseFloat(testStartValues.height), "Start value #2 wasn't unit converted.");
403 <=8) {// assert.deepEqual(Data($target3, pluginName).tweensContainer.paddingRight.startValue, [Math.floor((parentWidth * parseFloat(testStartValues.paddingRight)) / 100), 0], "Start value #3 was pattern matched.");
404  
405 <=8) { /* Properties that should cause start values to be unit-converted. */
406 <=8) { var testPropertiesEndConvert = { paddingLeft: "20%", height: "40%", lineHeight: "0.5em", wordSpacing: "2rem", marginLeft: "10vw", marginTop: "5vh", marginBottom: "100px" };
407 <=8) { parentWidth = $qunitStage.clientWidth,
408 <=8) { parentHeight = $qunitStage.clientHeight,
409 <=8) { parentFontSize = Velocity.CSS.getPropertyValue($qunitStage, "fontSize"),
410 <=8) { remSize = parseFloat(Velocity.CSS.getPropertyValue(document.body, "fontSize"));
411  
412 <=8) { var $target4 = getTarget();
413 <=8) { applyStartValues($target4, testStartValues);
414 <=8) { Velocity($target4, testPropertiesEndConvert);
415  
416 <=8) { /* Long decimal results can be returned after unit conversion, and Velocity's code and the code here can differ in precision. So, we round floor values before comparison. */
417 <=8) {// assert.deepEqual(Data($target4, pluginName).tweensContainer.paddingLeft.startValue, [parseFloat(testStartValues.paddingLeft), 0], "Horizontal property converted to %.");
418 <=8) { assert.equal(Math.floor(Data($target4, pluginName).tweensContainer.height.startValue), Math.floor((parseFloat(testStartValues.height) / parentHeight) * 100), "Vertical property converted to %.");
419 <=8) {// assert.equal(Data($target4, pluginName).tweensContainer.lineHeight.startValue, Math.floor(parseFloat(testStartValues.lineHeight) / parseFloat(parentFontSize)), "Property converted to em.");
420 <=8) {// assert.equal(Data($target4, pluginName).tweensContainer.wordSpacing.startValue, Math.floor(parseFloat(testStartValues.wordSpacing) / parseFloat(remSize)), "Property converted to rem.");
421 <=8) { assert.equal(Math.floor(Data($target4, pluginName).tweensContainer.marginBottom.startValue), parseFloat(testStartValues.marginBottom) / 100 * parseFloat($target4.parentNode.offsetWidth), "Property converted to px.");
422  
423 <=8) {// if (!(IE<=8) && !isAndroid) {
424 <=8) {<=8) && !isAndroid) {// assert.equal(Data($target4, pluginName).tweensContainer.marginLeft.startValue, Math.floor(parseFloat(testStartValues.marginLeft) / window.innerWidth * 100), "Horizontal property converted to vw.");
425 <=8) {<=8) && !isAndroid) {// assert.equal(Data($target4, pluginName).tweensContainer.marginTop.startValue, Math.floor(parseFloat(testStartValues.marginTop) / window.innerHeight * 100), "Vertical property converted to vh.");
426 <=8) {<=8) && !isAndroid) {// }
427  
428 <=8) {<=8) && !isAndroid) { // TODO: Tests for auto-parameters as the units are no longer converted.
429  
430 <=8) {<=8) && !isAndroid) { /* jQuery TRBL deferring. */
431 <=8) {<=8) && !isAndroid) { var testPropertiesTRBL = { left: "1000px" };
432 <=8) {<=8) && !isAndroid) { var $TRBLContainer = document.createElement("div");
433  
434 <=8) {<=8) && !isAndroid) { $TRBLContainer.setAttribute("id", "TRBLContainer");
435 <=8) {<=8) && !isAndroid) { $TRBLContainer.style.marginLeft = testPropertiesTRBL.left;
436 <=8) {<=8) && !isAndroid) { $TRBLContainer.style.width = "100px";
437 <=8) {<=8) && !isAndroid) { $TRBLContainer.style.height = "100px";
438 <=8) {<=8) && !isAndroid) { document.body.appendChild($TRBLContainer);
439  
440 <=8) {<=8) && !isAndroid) { var $target5 = getTarget();
441 <=8) {<=8) && !isAndroid) { $target5.style.position = "absolute";
442 <=8) {<=8) && !isAndroid) { $TRBLContainer.appendChild($target5);
443 <=8) {<=8) && !isAndroid) { Velocity($target5, testPropertiesTRBL);
444  
445 <=8) {<=8) && !isAndroid) { assert.equal(Math.round(Data($target5, pluginName).tweensContainer.left.startValue), Math.round(parseFloat(testPropertiesTRBL.left) + parseFloat(Velocity.CSS.getPropertyValue(document.body, "marginLeft"))), "TRBL value was deferred to jQuery.");
446 <=8) {<=8) && !isAndroid) { });
447  
448 <=8) {<=8) && !isAndroid) { /**************************
449 <=8) {<=8) && !isAndroid) { End Value Calculation
450 <=8) {<=8) && !isAndroid) { **************************/
451  
452 <=8) {<=8) && !isAndroid) { QUnit.asyncTest("End Value Calculation", function(assert) {
453 <=8) {<=8) && !isAndroid) { /* Standard properties without operators. */
454 <=8) {<=8) && !isAndroid) { var $target1 = getTarget();
455 <=8) {<=8) && !isAndroid) { Velocity($target1, defaultProperties);
456 <=8) {<=8) && !isAndroid) { setTimeout(function() {
457 <=8) {<=8) && !isAndroid) { assert.equal(Data($target1, pluginName).tweensContainer.width.endValue, defaultProperties.width, "Standard end value #1 was calculated.");
458 <=8) {<=8) && !isAndroid) { assert.equal(Data($target1, pluginName).tweensContainer.opacity.endValue, defaultProperties.opacity, "Standard end value #2 was calculated.");
459 <=8) {<=8) && !isAndroid) { }, asyncCheckDuration);
460  
461 <=8) {<=8) && !isAndroid) { /* Standard properties with operators. */
462 <=8) {<=8) && !isAndroid) { var testIncrementWidth = "5px",
463 <=8) {<=8) && !isAndroid) { testDecrementOpacity = 0.25,
464 <=8) {<=8) && !isAndroid) { testMultiplyMarginBottom = 4,
465 <=8) {<=8) && !isAndroid) { testDivideHeight = 2;
466  
467 <=8) {<=8) && !isAndroid) { var $target2 = getTarget();
468 <=8) {<=8) && !isAndroid) { Velocity($target2, { width: "+=" + testIncrementWidth, opacity: "-=" + testDecrementOpacity, marginBottom: "*=" + testMultiplyMarginBottom, height: "/=" + testDivideHeight });
469 <=8) {<=8) && !isAndroid) { setTimeout(function() {
470  
471 <=8) {<=8) && !isAndroid) { assert.equal(Data($target2, pluginName).tweensContainer.width.endValue, defaultStyles.width + parseFloat(testIncrementWidth), "Incremented end value was calculated.");
472 <=8) {<=8) && !isAndroid) { assert.equal(Data($target2, pluginName).tweensContainer.opacity.endValue, defaultStyles.opacity - testDecrementOpacity, "Decremented end value was calculated.");
473 <=8) {<=8) && !isAndroid) { assert.equal(Data($target2, pluginName).tweensContainer.marginBottom.endValue, defaultStyles.marginBottom * testMultiplyMarginBottom, "Multiplied end value was calculated.");
474 <=8) {<=8) && !isAndroid) { assert.equal(Data($target2, pluginName).tweensContainer.height.endValue, defaultStyles.height / testDivideHeight, "Divided end value was calculated.");
475  
476 <=8) {<=8) && !isAndroid) { start();
477 <=8) {<=8) && !isAndroid) { }, asyncCheckDuration);
478 <=8) {<=8) && !isAndroid) { });
479  
480 <=8) {<=8) && !isAndroid) { /**********************
481 <=8) {<=8) && !isAndroid) { End Value Setting
482 <=8) {<=8) && !isAndroid) { **********************/
483  
484 <=8) {<=8) && !isAndroid) { QUnit.asyncTest("End Value Setting (Note: Browser Tab Must Have Focus Due to rAF)", function(assert) {
485 <=8) {<=8) && !isAndroid) { /* Transforms and the properties that are hooked by Velocity aren't supported below IE9. */
486 <=8) {<=8) && !isAndroid) { if (!(IE < 9)) {
487 <=8) {<=8) && !isAndroid) { var testHooks = {
488 <=8) {<=8) && !isAndroid) { boxShadowBlur: "10px", // "black 0px 0px 10px 0px"
489 <=8) {<=8) && !isAndroid) { boxShadowSpread: "20px", // "black 0px 0px 0px 20px"
490 <=8) {<=8) && !isAndroid) { textShadowBlur: "30px" // "black 0px 0px 30px"
491 <=8) {<=8) && !isAndroid) { };
492  
493 <=8) {<=8) && !isAndroid) { /* Hooks. */
494 <=8) {<=8) && !isAndroid) { var $target3 = getTarget();
495 <=8) {<=8) && !isAndroid) { Velocity($target3, testHooks);
496 <=8) {<=8) && !isAndroid) { setTimeout(function() {
497 <=8) {<=8) && !isAndroid) { /* Check for a match anywhere in the string since browser differ in where they inject the color value. */
498 <=8) {<=8) && !isAndroid) { assert.equal(/0px 0px 10px 20px/.test(Velocity.CSS.getPropertyValue($target3, "boxShadow")), true, "Hook end value #1 was set.");
499 <=8) {<=8) && !isAndroid) { /* textShadow isn't supported below IE10. */
500 <=8) {<=8) && !isAndroid) { if (!IE || IE >= 10) {
501 <=8) {<=8) && !isAndroid) { assert.equal(/0px 0px 30px/.test(Velocity.CSS.getPropertyValue($target3, "textShadow")), true, "Hook end value #2 was set.");
502 <=8) {<=8) && !isAndroid) { }
503 <=8) {<=8) && !isAndroid) { }, completeCheckDuration);
504  
505 <=8) {<=8) && !isAndroid) { if (!(IE < 10) && !Velocity.State.isGingerbread) {
506 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var testTransforms = {
507 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { translateY: "10em", // Should stay the same
508 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { translateX: "20px", // Should stay the same
509 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { scaleX: "1.50", // Should remain unitless
510 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { translateZ: "30", // Should become "10px"
511 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { scaleY: "1.50deg" // Should be ignored entirely since it uses an invalid unit
512 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { },
513 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { testTransformsOutput = "matrix3d(1.5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 20, 160, 30, 1)";
514  
515 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Transforms. */
516 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target4 = getTarget();
517 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target4, testTransforms);
518 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
519 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Check for a match anywhere in the string since browser differ in where they inject the color value. */
520 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Velocity.CSS.getPropertyValue($target4, "transform"), testTransformsOutput, "Transform end value was set.");
521  
522 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Ensure previous transform values are reused. */
523 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target4, { translateX: parseFloat(testTransforms.translateX) / 2 });
524 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Data($target4, pluginName).tweensContainer.translateX.startValue, parseFloat(testTransforms.translateX), "Previous transform value was reused.");
525 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, completeCheckDuration);
526 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }
527  
528 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { if (!Velocity.State.isGingerbread) {
529 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* SVG. */
530 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $svgRoot = document.createElementNS("http://www.w3.org/2000/svg", "svg"),
531 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { $svgRect = document.createElementNS("http://www.w3.org/2000/svg", "rect"),
532 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { svgStartValues = { x: 100, y: 10, width: 250, height: "30%" },
533 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { svgEndValues = { x: 200, width: "50%", strokeDasharray: 10, height: "40%", rotateZ: "90deg", rotateX: "45deg" };
534  
535 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { $svgRoot.setAttribute("width", 1000);
536 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { $svgRoot.setAttribute("height", 1000);
537  
538 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { $svgRect.setAttribute("x", svgStartValues.x);
539 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { $svgRect.setAttribute("y", svgStartValues.y);
540 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { $svgRect.setAttribute("width", svgStartValues.width);
541 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { $svgRect.setAttribute("height", svgStartValues.height);
542  
543 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { $svgRoot.appendChild($svgRect);
544 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { $qunitStage.appendChild($svgRoot);
545  
546 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($svgRect, svgEndValues, defaultOptions);
547 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
548 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Math.round(Data($svgRect, pluginName).tweensContainer.x.startValue), svgStartValues.x, "SVG dimensional attribute #1 value was retrieved.");
549 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Math.round(parseFloat(Velocity.CSS.getPropertyValue($svgRect, "x"))), svgEndValues.x, "SVG dimensional attribute #1 end value was set.");
550  
551 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Math.round(Data($svgRect, pluginName).tweensContainer.width.startValue), parseFloat(svgStartValues.width)/1000 * 100, "SVG dimensional attribute #2 value was retrieved.");
552 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Math.round(parseFloat(Velocity.CSS.getPropertyValue($svgRect, "width"))), parseFloat(svgEndValues.width)/100 * 1000, "SVG dimensional attribute #2 end value was set.");
553  
554 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Math.round(Data($svgRect, pluginName).tweensContainer.height.startValue), parseFloat(svgStartValues.height), "SVG dimensional attribute #3 value was retrieved.");
555 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Math.round(parseFloat(Velocity.CSS.getPropertyValue($svgRect, "height"))), parseFloat(svgEndValues.height)/100 * 1000, "SVG dimensional attribute #3 end value was set.");
556  
557 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Math.round(Data($svgRect, pluginName).tweensContainer.rotateZ.startValue), 0, "SVG 2D transform value was retrieved.");
558 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Math.round(parseFloat(Velocity.CSS.getPropertyValue($svgRect, "rotateZ"))), parseFloat(svgEndValues.rotateZ), "SVG 2D transform end value was set.");
559  
560 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { if (!IE) {
561 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Math.round(Data($svgRect, pluginName).tweensContainer.rotateX.startValue), 0, "SVG 3D transform value was retrieved.");
562 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Math.round(parseFloat(Velocity.CSS.getPropertyValue($svgRect, "rotateX"))), parseFloat(svgEndValues.rotateX), "SVG 3D transform end value was set.");
563 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }
564  
565 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Math.round(Data($svgRect, pluginName).tweensContainer.strokeDasharray.startValue), 0, "SVG CSS style value was retrieved.");
566 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(parseFloat(Velocity.CSS.getPropertyValue($svgRect, "strokeDasharray")), svgEndValues.strokeDasharray, "SVG CSS style end value was set.");
567 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, completeCheckDuration);
568 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }
569 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }
570  
571 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Standard properties. */
572 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target1 = getTarget();
573 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, defaultProperties, { });
574 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
575 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target1, "width")), defaultProperties.width, "Standard end value #1 was set.");
576 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target1, "opacity")), defaultProperties.opacity, "Standard end value #2 was set.");
577  
578 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { start();
579 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, completeCheckDuration);
580 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
581  
582 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /**********************
583 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { End Value Caching
584 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { **********************/
585  
586 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { QUnit.asyncTest("End Value Caching", function(assert) {
587 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { expect(4);
588  
589 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var newProperties = { height: "50px", width: "250px" };
590  
591 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target1 = getTarget();
592 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, defaultProperties, function() {
593  
594 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { applyStartValues($target1, newProperties);
595 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Called after the last call is complete (stale). Ensure that the newly-set (via $.css()) properties are used. */
596 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, defaultProperties);
597  
598 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
599 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Data($target1, pluginName).tweensContainer.width.startValue, parseFloat(newProperties.width), "Stale end value #1 wasn't pulled.");
600 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Data($target1, pluginName).tweensContainer.height.startValue, parseFloat(newProperties.height), "Stale end value #2 wasn't pulled.");
601 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, asyncCheckDuration);
602 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
603  
604 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target2 = getTarget();
605 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target2, defaultProperties);
606 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target2, newProperties, function() {
607 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Chained onto a previous call (fresh). */
608 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Data($target2, pluginName).tweensContainer.width.startValue, defaultProperties.width, "Chained end value #1 was pulled.");
609 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Data($target2, pluginName).tweensContainer.height.startValue, defaultProperties.height, "Chained end value #2 was pulled.");
610  
611 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { start();
612 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
613 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
614  
615 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /****************
616 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Queueing
617 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { ****************/
618  
619 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { QUnit.asyncTest("Queueing", function(assert) {
620 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { expect(1);
621  
622 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target1 = getTarget();
623 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, { opacity: 0 });
624 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, { width: 2 });
625  
626 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
627 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Ensure that the second call hasn't started yet. */
628 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target1, "width")), defaultStyles.width, "Queued calls chain.");
629  
630 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { start();
631 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, asyncCheckDuration);
632 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
633  
634 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /******************
635 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Option: Queue
636 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { ******************/
637  
638 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { QUnit.asyncTest("Option: Queue", function(assert) {
639 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { expect(5);
640  
641 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var testQueue = "custom";
642  
643 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target1 = getTarget();
644 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, defaultProperties, { queue: testQueue });
645 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, defaultProperties, { queue: testQueue });
646 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, defaultProperties, { queue: testQueue });
647  
648 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Velocity.Utilities.queue($target1, testQueue).length, 3, "Custom queue was appended to.");
649 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Data($target1, pluginName).isAnimating, false, "Custom queue didn't auto-dequeue.");
650  
651 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity.Utilities.dequeue($target1, testQueue);
652 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Data($target1, pluginName).isAnimating, true, "Dequeue custom queue.");
653  
654 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, "stop", testQueue);
655 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Velocity.Utilities.queue($target1, testQueue).length, 0, "Stopped custom queue.");
656  
657 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target2 = getTarget();
658 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target2, { opacity: 0 });
659 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target2, { width: 10 }, { queue: false });
660  
661 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
662 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Ensure that the second call starts immediately. */
663 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { notEqual(Velocity.CSS.getPropertyValue($target2, "width"), defaultStyles.width, "Parallel calls don't queue.");
664  
665 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { start();
666 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, asyncCheckDuration);
667 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
668  
669 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Helpful redirect for testing custom and parallel queues. */
670 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { // var $div2 = $("#DataBody-PropertiesDummy");
671 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { // $.fn.velocity.defaults.duration = 1000;
672 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { // $div2.velocity("scroll", { queue: "test" })
673 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { // $div2.velocity({width: 100}, { queue: "test" })
674 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { // $div2.velocity({ borderWidth: 50 }, { queue: "test" })
675 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { // $div2.velocity({height: 20}, { queue: "test" })
676 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { // $div2.velocity({marginLeft: 200}, { queue: "test" })
677 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { // $div2.velocity({paddingTop: 60});
678 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { // $div2.velocity({marginTop: 100});
679 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { // $div2.velocity({paddingRight: 40});
680 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { // $div2.velocity({marginTop: 0})
681 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { // $div2.dequeue("test")
682  
683 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /******************
684 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Option: Delay
685 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { ******************/
686  
687 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { QUnit.asyncTest("Option: Delay (Note: Browser Tab Must Have Focus Due to rAF)", function(assert) {
688 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { expect(2);
689  
690 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var testDelay = defaultOptions.duration * 2;
691  
692 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target = getTarget();
693 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target, defaultProperties, { delay: testDelay });
694  
695 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
696 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target, "width")), defaultStyles.width, "Delayed calls don't start immediately");
697 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, asyncCheckDuration);
698  
699 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
700 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target, "width")), defaultProperties.width, "Delayed calls eventually start.");
701  
702 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { start();
703 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, completeCheckDuration + testDelay);
704 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
705  
706 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /********************
707 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Option: Easing
708 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { ********************/
709  
710 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { QUnit.asyncTest("Option: Easing", function(assert) {
711 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { expect(5);
712  
713 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target1 = getTarget();
714 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Ensure that a fake easing doesn't throw an error. */
715 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, defaultProperties, { easing: "fake" });
716 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(true, true, "Fake easing didn't throw error.");
717  
718 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Ensure that an improperly-formmated bezier curve array doesn't throw an error. */
719 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target2 = getTarget();
720 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target2, defaultProperties, { easing: [ "a", 0.5, 0.5, 0.5 ] });
721 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target2, defaultProperties, { easing: [ 0.5, 0.5, 0.5 ] });
722 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(true, true, "Invalid bezier curve didn't throw error.");
723  
724 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Ensure that a properly-formatted bezier curve array returns a bezier function. */
725 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target3 = getTarget();
726 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var easingBezierArray = [ 0.27, -0.65, 0.78, 0.19 ],
727 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { easingBezierTestPercent = 0.25,
728 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { easingBezierTestValue = /^-0\.23/;
729  
730 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target3, defaultProperties, { easing: easingBezierArray });
731 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
732 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(easingBezierTestValue.test(Data($target3, pluginName).tweensContainer.width.easing(easingBezierTestPercent)), true, "Array converted into bezier function.");
733 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, asyncCheckDuration);
734  
735 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Ensure that a properly-formatted spring RK4 array returns a bezier function. */
736 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target4 = getTarget();
737 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var easingSpringRK4Array = [ 250, 12 ],
738 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { easingSpringRK4TestPercent = 0.25,
739 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { easingSpringRK4TestValue = /^1\.21/;
740  
741 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target4, defaultProperties, { easing: easingSpringRK4Array });
742 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
743 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(easingSpringRK4TestValue.test(Data($target4, pluginName).tweensContainer.width.easing(easingSpringRK4TestPercent)), true, "Array converted into springRK4 function.");
744 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, asyncCheckDuration);
745  
746 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Ensure that a properly-formatted step easing array returns a step function. */
747 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target5 = getTarget();
748 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var easingStepArray = [ 4 ],
749 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { easingStepTestPercent = 0.35,
750 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { easingStepTestValue = /^0\.25/;
751  
752 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target5, defaultProperties, { easing: easingStepArray });
753 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
754 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(easingStepTestValue.test(Data($target5, pluginName).tweensContainer.width.easing(easingStepTestPercent)), true, "Array converted into Step function.");
755  
756 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { start();
757 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, asyncCheckDuration);
758 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
759  
760 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /********************
761 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Option: Display
762 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { ********************/
763  
764 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { QUnit.asyncTest("Option: Display", function(assert) {
765 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var testDisplayBlock = "block",
766 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { testDisplayNone = "none",
767 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { testDisplayBlank = "";
768  
769 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target1 = getTarget();
770 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Async checks are used since the display property is set inside processCallsTick(). */
771 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, defaultProperties, { display: testDisplayBlock });
772 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
773 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Velocity.CSS.getPropertyValue($target1, "display"), testDisplayBlock, "Display:'block' was set immediately.");
774 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, asyncCheckDuration);
775  
776 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target2 = getTarget();
777 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target2, defaultProperties, { display: testDisplayNone });
778 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
779 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { notEqual(Velocity.CSS.getPropertyValue($target2, "display"), 0, "Display:'none' was not set immediately.");
780 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, asyncCheckDuration);
781 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
782 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Velocity.CSS.getPropertyValue($target2, "display"), 0, "Display:'none' was set upon completion.");
783 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, completeCheckDuration);
784  
785 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target3 = getTarget();
786 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target3, defaultProperties, { display: testDisplayBlank });
787 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
788 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Velocity.CSS.getPropertyValue($target3, "display"), "block", "Display:'' was set immediately.");
789  
790 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { start();
791 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, completeCheckDuration);
792 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
793  
794 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /***********************
795 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Option: Visibility
796 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { ***********************/
797  
798 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { QUnit.asyncTest("Option: Visibility", function(assert) {
799 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var testVisibilityBlock = "visible",
800 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { testVisibilityNone = "hidden",
801 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { testVisibilityBlank = "";
802  
803 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target1 = getTarget();
804 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* Async checks are used since the visibility property is set inside processCallsTick(). */
805 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, defaultProperties, { visibility: testVisibilityBlock });
806 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
807 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Velocity.CSS.getPropertyValue($target1, "visibility"), testVisibilityBlock, "visibility:'visible' was set immediately.");
808 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, asyncCheckDuration);
809  
810 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target2 = getTarget();
811 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target2, defaultProperties, { visibility: testVisibilityNone });
812 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
813 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { notEqual(Velocity.CSS.getPropertyValue($target2, "visibility"), 0, "visibility:'hidden' was not set immediately.");
814 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, asyncCheckDuration);
815 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
816 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Velocity.CSS.getPropertyValue($target2, "visibility"), "hidden", "visibility:'hidden' was set upon completion.");
817 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, completeCheckDuration);
818  
819 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target3 = getTarget();
820 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target3, defaultProperties, { display: testVisibilityBlank });
821 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
822 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(/visible|inherit/.test(Velocity.CSS.getPropertyValue($target3, "visibility")), true, "visibility:'' was set immediately.");
823  
824 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { start();
825 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, completeCheckDuration);
826 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
827  
828 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /******************
829 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Option: Loop
830 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { ******************/
831  
832 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { QUnit.asyncTest("Option: Loop", function(assert) {
833 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { expect(6);
834  
835 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var testOptions = { delay: 500, easing: "spring" };
836  
837 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target1 = getTarget();
838 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target1, defaultProperties, { loop: 2, delay: testOptions.delay, easing: testOptions.easing });
839  
840 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /* We expect 1 delay followed by 1 call for a total of 4 cycles, which equates to 8 queue items. */
841 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Velocity.Utilities.queue($target1).length, 8, "Loop call produced 'reverse' calls.");
842  
843 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target2 = getTarget();
844 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target2, defaultProperties, { loop: true, delay: testOptions.delay, easing: testOptions.easing });
845 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { setTimeout(function() {
846 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Data($target1, pluginName).opts.delay, testOptions.delay, "Delay option was passed into second loop call (jQuery object).");
847 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Data($target1, pluginName).opts.easing, testOptions.easing, "Easing option was passed into second loop call (jQuery object).");
848  
849 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Data($target2, pluginName).opts.delay, testOptions.delay, "Delay option was passed into second infinite loop call (jQuery object).");
850 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Data($target2, pluginName).opts.easing, testOptions.easing, "Easing option was passed into second infinite loop call (jQuery object).");
851  
852 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(Velocity.Utilities.queue($target2).length, 2, "Infinite loop is running.");
853  
854 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { start();
855 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }, completeCheckDuration + testOptions.delay);
856 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
857  
858 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /*******************
859 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Option: Begin
860 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { *******************/
861  
862 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { QUnit.asyncTest("Option: Begin", function(assert) {
863 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { expect(1);
864  
865 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $targetSet = [ getTarget(), getTarget() ];
866 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($targetSet, defaultProperties, {
867 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { duration: asyncCheckDuration,
868 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { begin: function() {
869 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.deepEqual(this, $targetSet, "Elements passed into callback.");
870  
871 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { start();
872 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }
873 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
874 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
875  
876 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /*********************
877 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Option: Complete
878 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { *********************/
879  
880 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { QUnit.asyncTest("Option: Complete", function(assert) {
881 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { expect(1);
882  
883 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $targetSet = [ getTarget(), getTarget() ];
884 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($targetSet, defaultProperties, {
885 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { duration: asyncCheckDuration,
886 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { complete: function() {
887 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.deepEqual(this, $targetSet, "Elements passed into callback.");
888  
889 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { start();
890 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { }
891 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
892 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { });
893  
894 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { /*********************
895 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Option: Progress
896 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { *********************/
897  
898 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { QUnit.asyncTest("Option: Progress", function(assert) {
899 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { expect(3);
900  
901 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var alreadyCalled = false;
902  
903 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { var $target = getTarget();
904 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { Velocity($target, defaultProperties, {
905 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { duration: asyncCheckDuration,
906 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { progress: function(elements, percentComplete, msRemaining) {
907 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { if (!alreadyCalled) {
908 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.deepEqual(this, [ $target ], "Elements passed into progress.");
909 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) { assert.equal(percentComplete >= 0 && percentComplete <= 1, true, "percentComplete passed into progress.");
910 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(msRemaining > asyncCheckDuration - 50, true, "msRemaining passed into progress.");
911  
912 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); alreadyCalled = true;
913 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
914 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
915 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
916 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
917 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
918  
919 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /*********************
920 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Command: Reverse
921 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); *********************/
922  
923 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("Command: Reverse", function(assert) {
924 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); expect(5);
925  
926 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var testEasing = "spring";
927  
928 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target = getTarget();
929 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure an error isn't thrown when there's no previous animation to reverse to. */
930 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target, "reverse");
931 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target, { opacity: defaultProperties.opacity, width: defaultProperties.width }, { easing: testEasing });
932 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target, "reverse", function() {
933 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target, "opacity")), defaultStyles.opacity, "Reversed to initial property #1.");
934 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target, "width")), defaultStyles.width, "Reversed to initial property #2.");
935 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
936 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Check chained reverses. */
937 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target, "reverse", function() {
938 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target, "opacity")), defaultProperties.opacity, "Reversed to reversed property #1.");
939 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target, "width")), defaultProperties.width, "Reversed to reversed property #2.");
940  
941 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure the options were passed through until the end. */
942 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).opts.easing, testEasing, "Options object passed through.");
943  
944 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
945 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
946 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
947  
948 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /******************
949 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Command: Stop
950 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ******************/
951  
952 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("Command: Stop", function(assert) {
953 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); expect(4);
954  
955 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget();
956 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure an error isn't thrown when "stop" is called on a $target that isn't animating. */
957 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, "stop");
958 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, defaultProperties, defaultOptions);
959 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, { top: 0 }, defaultOptions);
960 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, { width: 0 }, defaultOptions);
961 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, "stop", true);
962  
963 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure "stop" has removed all queued animations. */
964 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* We're using the element's queue length as a proxy. 0 and 1 both mean that the element's queue has been cleared -- a length of 1 just indicates that the animation is in progress. */
965 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
966 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.Utilities.queue($target1).length <= 1, true, "Queue cleared.");
967 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 1);
968  
969 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target2 = getTarget();
970 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2, { opacity: 0 }, Velocity.Utilities.extend({}, defaultOptions, { delay: 1000 }));
971 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2, { width: 0 }, defaultOptions);
972 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2, "stop");
973  
974 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target3 = getTarget();
975 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, { opacity: 0 }, Velocity.Utilities.extend({}, defaultOptions, { delay: 1000 }));
976 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, { width: 0 }, defaultOptions);
977 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, { width: 100 }, defaultOptions);
978 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, "stop", true);
979  
980 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
981 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target2, pluginName).tweensContainer.opacity, undefined, "Active call stopped.");
982 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); notEqual(Data($target2, pluginName).tweensContainer.width, undefined, "Next queue item started.");
983  
984 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.Utilities.queue($target3, "").length, 0, "Full queue array cleared.");
985  
986 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
987 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, asyncCheckDuration);
988 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
989  
990 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /****************************
991 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Command: Pause / Resume
992 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); *****************************/
993  
994 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("Command: Pause / Resume", function() {
995 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); expect(10);
996  
997 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget();
998 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1d = getTarget(); //delayed
999 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure an error isn't thrown when "pause" is called on a $target that isn't animating. */
1000 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, "pause");
1001 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1d, "pause");
1002  
1003 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure an error isn't thrown when "pause" is called on a $target that isn't animating. */
1004 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, "resume");
1005 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1d, "resume");
1006  
1007 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure a paused $target ceases to animate */
1008 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, { opacity: 0 }, defaultOptions);
1009 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); notEqual(Data($target1, pluginName).isPaused, true, "Newly active call not paused.");
1010 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1d, { opacity: 0 }, Velocity.Utilities.extend({}, defaultOptions, { delay: 200 }));
1011 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); notEqual(Data($target1d, pluginName).isPaused, true, "New call with delay not paused.");
1012  
1013 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, "pause");
1014 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1d, "pause");
1015  
1016 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1017 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); equal(parseFloat(Velocity.CSS.getPropertyValue($target1, "opacity")), 1, "Property value unchanged after pause.");
1018 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, completeCheckDuration);
1019  
1020 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1021 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); equal(parseFloat(Velocity.CSS.getPropertyValue($target1d, "opacity")), 1, "Property value unchanged after pause during delay.");
1022 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 201);
1023  
1024 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure a resumed $target proceeds to animate */
1025 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target2 = getTarget();
1026 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target2d = getTarget();
1027 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2, { opacity: 0 }, defaultOptions);
1028 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2d, { opacity: 0 }, Velocity.Utilities.extend({}, defaultOptions, { delay: 100 }));
1029  
1030 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2, "pause");
1031  
1032 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1033 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2d, "pause");
1034 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 40);
1035  
1036 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2, "resume");
1037  
1038 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1039 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2d, "resume");
1040 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 80);
1041  
1042 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1043 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); equal(parseFloat(Velocity.CSS.getPropertyValue($target2, "opacity")), 0, "Tween completed after pause/resume.");
1044 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, completeCheckDuration);
1045  
1046 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1047 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); equal(parseFloat(Velocity.CSS.getPropertyValue($target2d, "opacity")), 1, "Delayed tween did not start early after pause.");
1048 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 130);
1049  
1050 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1051 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); equal(parseFloat(Velocity.CSS.getPropertyValue($target2d, "opacity")), 0, "Delayed tween completed after pause/resume.");
1052 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, completeCheckDuration + 200);
1053  
1054 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure the property values of a pause tween are midway between start and end values */
1055 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target3 = getTarget(),
1056 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); percent = 0,
1057 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); isPaused = false;
1058  
1059 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, { opacity: 0 }, {
1060 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); duration: 200,
1061 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); easing:"linear",
1062 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); progress: function(elements, _percentComplete, _msRemaining) {
1063 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); if(isPaused) {
1064 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); throw new Error("Progress callback run after pause.");
1065 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1066 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); percent = _percentComplete;
1067 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1068 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1069  
1070 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Pause element midway through tween */
1071 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1072 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, "pause");
1073 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); isPaused = true;
1074 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 100);
1075  
1076 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1077 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, "resume");
1078 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); isPaused = false;
1079 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 200);
1080  
1081  
1082 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1083 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Property value should be linearly proportional to */
1084 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var val = parseFloat(Velocity.CSS.getPropertyValue($target3, "opacity"));
1085  
1086 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Prop value and percentage complete should correlate after pause. We need to test this since
1087 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); the timing variables used to calculate and return the percentage complete and msRemaining are
1088 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); modified after pause and resume comamands have been issued on the call */
1089 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ok(Math.round(1 - val, 4) == Math.round(percent, 4) , "Tween value and percentageComplete correlate correctly after pause.");
1090  
1091 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 250);
1092  
1093  
1094 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure a all elements in a call are paused if any element is paused, likewise for resume */
1095 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $targetA = getTarget(), $targetB = getTarget();
1096 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity([$targetA, $targetB], { opacity: 0 }, {
1097 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); duration:100,
1098 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); progress:function(elements, percent, msRemaining) {
1099 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); throw new Error("Tween does not proceed for any elements");
1100 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1101 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1102  
1103 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($targetA, "pause");
1104  
1105 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure proper behavior with queue:false */
1106 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target4 = getTarget();
1107 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target4, { opacity: 0 }, {
1108 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); duration: 200,
1109 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1110  
1111 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var isResumed = false;
1112  
1113 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1114 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target4, "pause");
1115 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target4, { left: -20 }, {
1116 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); duration: 100,
1117 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); easing:"linear",
1118 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); queue: false,
1119 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); begin: function(elements) {
1120 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ok(true, "Animation with {queue:false} will run regardless of previously paused animations.")
1121 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1122 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1123  
1124 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target4, { top: 20 }, {
1125 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); duration: 100,
1126 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); easing:"linear",
1127 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); begin: function(elements) {
1128 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); if(!isResumed) {
1129 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); throw new Error("Queued animation doesn't begin until previous animation was resumed.");
1130 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); } else {
1131 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ok(true, "Queued animation began after previously paused animation completed");
1132 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1133 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1134 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1135 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 100);
1136  
1137 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1138 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); isResumed = true;
1139 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target4, "resume");
1140 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 200);
1141  
1142 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1143 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1144 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Clear out any existing test animations to prevent errors from being thrown
1145 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); in another test */
1146 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); try {
1147 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity([$targetA, $target3, $target4], "stop");
1148 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); } catch (e) {}
1149 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 800);
1150  
1151 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1152  
1153 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /*********************************
1154 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Command: PauseAll / ResumeAll
1155 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); **********************************/
1156  
1157 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("Command: Global Pause / Resume", function() {
1158 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); expect(3);
1159  
1160 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget();
1161 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target2 = getTarget();
1162 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target3 = getTarget();
1163 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target4 = getTarget();
1164  
1165 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var isPaused = false;
1166 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var hasProgressed2 = false;
1167 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, { opacity: 0 }, Velocity.Utilities.extend({}, defaultOptions, {
1168 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); delay: 100,
1169 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); queue:false,
1170 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); progress: function(elements, progress, msRemaining) {
1171 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); if(isPaused) {
1172 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); throw new Error("Delayed Tween should not progress when globally paused");
1173 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1174 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1175 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }));
1176  
1177 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2, { opacity: 0 }, Velocity.Utilities.extend({}, defaultOptions, {
1178 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); progress: function(elements, progress, msRemaining) {
1179 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); if(isPaused) {
1180 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); throw new Error("Tween should not progress when globally paused");
1181 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); } else if(!hasProgressed2) {
1182 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); hasProgressed2 = true;
1183 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ok (true, "Tween resumes on individual pause after global resume");
1184 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1185 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1186 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }));
1187  
1188 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity.pauseAll();
1189 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); isPaused = true;
1190  
1191 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Testing with custom queues */
1192 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var hasProgressed3 = false;
1193 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, { opacity: 0 }, Velocity.Utilities.extend({}, defaultOptions, {
1194 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); queue: "queue1",
1195 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); progress: function(elements, progress, msRemaining) {
1196 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); if(!hasProgressed3) {
1197 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); hasProgressed3 = true;
1198 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ok (true, "Tweens created after global pause begin immediately");
1199 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1200 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1201 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }));
1202  
1203 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var hasProgressed4 = false;
1204 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target4, { opacity: 0 }, Velocity.Utilities.extend({}, defaultOptions, {
1205 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); queue: "queue2",
1206 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); progress: function(elements, progress, msRemaining) {
1207 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); if(isPaused) {
1208 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); throw new Error("Tween on paused queue should not progress");
1209 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); } else if(!hasProgressed4) {
1210 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); hasProgressed4 = true;
1211 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ok (true, "Paused tweens on a queue resume after a global resumeAll call");
1212 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1213 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1214 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }));
1215  
1216 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Begin queued animations */
1217 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity.Utilities.dequeue($target4, "queue2");
1218 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity.Utilities.dequeue($target3, "queue1");
1219  
1220 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Only $target4 should pause */
1221 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity.pauseAll("queue2");
1222  
1223 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1224 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); isPaused = false;
1225 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity.resumeAll();
1226 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 200);
1227  
1228 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1229 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1230 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity.resumeAll();
1231 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, 400);
1232  
1233 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1234  
1235 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /******************
1236 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Command: Finish
1237 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ******************/
1238  
1239 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("Command: Finish / FinishAll", function(assert) {
1240 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); expect(9);
1241  
1242 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget();
1243 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure an error isn't thrown when "finish" is called on a $target that isn't animating. */
1244 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, "finish");
1245  
1246 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Animate to defaultProperties, and then "finish" to jump to the end of it. */
1247 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, defaultProperties, Velocity.Utilities.extend({}, defaultOptions, { delay: 1000}));
1248 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, "finish");
1249  
1250 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1251 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Ensure "finish" has removed all queued animations. */
1252 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* We're using the element's queue length as a proxy. 0 and 1 both mean that the element's queue has been cleared -- a length of 1 just indicates that the animation is in progress. */
1253 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.Utilities.queue($target1).length <= 1, true, "Queue cleared.");
1254  
1255 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* End result of the animation should be applied */
1256 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target1, "width")), defaultProperties.width, "Standard end value #1 was set.");
1257 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target1, "opacity")), defaultProperties.opacity, "Standard end value #2 was set.");
1258 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, asyncCheckDuration);
1259  
1260 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target2 = getTarget();
1261 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2, { opacity: 0 }, Velocity.Utilities.extend({}, defaultOptions, { delay: 1000 }));
1262 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2, { width: 0 }, defaultOptions);
1263 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2, "finish");
1264  
1265 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target3 = getTarget();
1266 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, { opacity: 0, width: 50 }, Velocity.Utilities.extend({}, defaultOptions, { delay: 1000 }));
1267 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, { width: 0 }, defaultOptions);
1268 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, { width: 100 }, defaultOptions);
1269 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, "finish", true);
1270  
1271 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target4 = getTarget();
1272 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target4, { opacity: 0, width: 50 }, Velocity.Utilities.extend({}, defaultOptions, { delay: 1000 }));
1273 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target4, { width: 0 }, defaultOptions);
1274 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target4, { width: 100 }, defaultOptions);
1275 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target4, "finishAll", true);
1276  
1277 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1278 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target2, pluginName).tweensContainer.opacity, undefined, "Active call stopped.");
1279 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); notEqual(Data($target2, pluginName).tweensContainer.width, undefined, "Next queue item started.");
1280  
1281 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.Utilities.queue($target3, "").length, 0, "Full queue array cleared.");
1282 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target3, "width")), 50, "Just the first call's width was applied.");
1283  
1284 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.Utilities.queue($target4, "").length, 0, "Full queue array cleared.");
1285 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target4, "width")), 100, "The last call's width was applied.");
1286  
1287 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1288 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, asyncCheckDuration);
1289 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1290  
1291 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /***********************
1292 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Feature: Redirects
1293 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ***********************/
1294  
1295 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("Feature: Redirects", function(assert) {
1296 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget(),
1297 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $target2 = getTarget(),
1298 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); redirectOptions = { duration: 1500 };
1299  
1300 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); (window.jQuery || window.Zepto || window).Velocity.Redirects.test = function (element, options, elementIndex, elementsLength) {
1301 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); if (elementIndex === 0) {
1302 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(element, $target1, "Element passed through #1.");
1303 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(options, redirectOptions, "Options object passed through #1.");
1304 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(elementIndex, 0, "Element index passed through #1.");
1305 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(elementsLength, 2, "Elements length passed through #1.");
1306 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); } else if (elementIndex === 1) {
1307 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(element, $target2, "Element passed through #2.");
1308 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(options, redirectOptions, "Options object passed through #2.");
1309 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(elementIndex, 1, "Element index passed through #2.");
1310 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(elementsLength, 2, "Elements length passed through #2.");
1311  
1312 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1313 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1314 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); };
1315  
1316 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity([ $target1, $target2 ], "test", redirectOptions);
1317 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1318  
1319 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /************************
1320 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Feature: animating
1321 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ************************/
1322  
1323 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("Feature: 'velocity-animating' Class", function(assert) {
1324 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget();
1325  
1326 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, defaultProperties, function(element) {
1327 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(/velocity-animating/.test($target1.className), false, "Class removed.");
1328 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1329 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1330 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); );
1331  
1332 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1333 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(/velocity-animating/.test($target1.className), true, "Class added.");
1334 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, asyncCheckDuration);
1335 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1336  
1337 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /***********************
1338 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Feature: Promises
1339 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ***********************/
1340  
1341 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("Feature: Promises", function(assert) {
1342 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); expect(5);
1343  
1344 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget();
1345  
1346 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, defaultProperties, 10000).then(function(elements) {
1347 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, [ $target1 ], "Active call fulfilled.");
1348 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1349  
1350 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, defaultProperties, 10000).then(function(elements) {
1351 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, [ $target1 ], "Queued call fulfilled.");
1352 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1353  
1354 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, "stop", true).then(function(elements) {
1355 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, [ $target1 ], "Stop call fulfilled.");
1356 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1357  
1358 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target2 = getTarget(),
1359 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $target3 = getTarget();
1360  
1361 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity([ $target2, $target3 ], "fake", defaultOptions)["catch"](function(error) {
1362 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(error instanceof Error, true, "Invalid command caused promise rejection.");
1363 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1364  
1365 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity([ $target2, $target3 ], defaultProperties, defaultOptions).then(function(elements) {
1366 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, [ $target2, $target3 ], "Elements passed back into resolved promise.");
1367  
1368 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1369 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1370 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1371  
1372 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /*****************************
1373 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Feature: Value Functions
1374 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); *****************************/
1375  
1376 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.test("Feature: Value Functions", function(assert) {
1377 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var testWidth = 10;
1378  
1379 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget(),
1380 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $target2 = getTarget();
1381 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity([ $target1, $target2 ], { width: function (i, total) { return (i + 1)/total * testWidth; } });
1382  
1383 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target1, pluginName).tweensContainer.width.endValue, parseFloat(testWidth) / 2, "Function value #1 passed to tween.");
1384 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target2, pluginName).tweensContainer.width.endValue, parseFloat(testWidth), "Function value #2 passed to tween.");
1385 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1386  
1387 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /***************************
1388 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Feature: Forcefeeding
1389 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ***************************/
1390  
1391 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.test("Feature: Forcefeeding", function(assert) {
1392 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Note: Start values are always converted into pixels. W test the conversion ratio we already know to avoid additional work. */
1393 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var testStartWidth = "1rem", testStartWidthToPx = "16px",
1394 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); testStartHeight = "10px";
1395  
1396 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target = getTarget();
1397 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target, { width: [ 100, "linear", testStartWidth ], height: [ 100, testStartHeight ], opacity: [ defaultProperties.opacity, "easeInQuad" ]});
1398  
1399 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.width.startValue, parseFloat(testStartWidthToPx), "Forcefed value #1 passed to tween.");
1400 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.height.startValue, parseFloat(testStartHeight), "Forcefed value #2 passed to tween.");
1401 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.opacity.startValue, defaultStyles.opacity, "Easing was misinterpreted as forcefed value.");
1402 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1403  
1404 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /*********************************
1405 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Feature: Colors (Shorthands)
1406 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); *********************************/
1407  
1408 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.test("Feature: Colors (Shorthands)", function(assert) {
1409 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target = getTarget();
1410 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target, { borderColor: "#7871c2", color: [ "#297dad", "spring", "#5ead29" ] });
1411  
1412 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.borderColorRed.endValue, 120, "Hex #1a component.");
1413 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.borderColorGreen.endValue, 113, "Hex #1b component.");
1414 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.borderColorBlue.endValue, 194, "Hex #1c component.");
1415 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.colorRed.easing, "spring", "Per-property easing.");
1416 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.colorRed.startValue, 94, "Forcefed hex #2a component.");
1417 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.colorGreen.startValue, 173, "Forcefed hex #2b component.");
1418 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.colorBlue.startValue, 41, "Forcefed hex #2c component.");
1419 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.colorRed.endValue, 41, "Hex #3a component.");
1420 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.colorGreen.endValue, 125, "Hex #3b component.");
1421 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target, pluginName).tweensContainer.colorBlue.endValue, 173, "Hex #3c component.");
1422 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1423  
1424 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /**********************************
1425 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Packaged Effect: slideUp/Down
1426 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); **********************************/
1427  
1428 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("Packaged Effect: slideUp/Down", function(assert) {
1429 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget(),
1430 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $target2 = getTarget();
1431  
1432 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var initialStyles = {
1433 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); display: "none",
1434 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); paddingTop: "123px"
1435 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); };
1436  
1437 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $target1.style.display = initialStyles.display;
1438 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $target1.style.paddingTop = initialStyles.paddingTop;
1439  
1440 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, "slideDown",
1441 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); {
1442 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); begin: function(elements) {
1443 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, [ $target1 ], "slideDown: Begin callback returned.");
1444 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); },
1445 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); complete: function(elements) {
1446 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, [ $target1 ], "slideDown: Complete callback returned.");
1447 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.CSS.getPropertyValue($target1, "display"), Velocity.CSS.Values.getDisplayType($target1), "slideDown: display set to default.");
1448 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); notEqual(Velocity.CSS.getPropertyValue($target1, "height"), 0, "slideDown: height set.");
1449 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.CSS.getPropertyValue($target1, "paddingTop"), initialStyles.paddingTop, "slideDown: paddingTop set.");
1450 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1451 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1452 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ).then(function(elements) {
1453 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, [ $target1 ], "slideDown: Promise fulfilled.");
1454 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1455  
1456 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2, "slideUp",
1457 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); {
1458 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); begin: function(elements) {
1459 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, [ $target2 ], "slideUp: Begin callback returned.");
1460 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); },
1461 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); complete: function(elements) {
1462 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, [ $target2 ], "slideUp: Complete callback returned.");
1463 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.CSS.getPropertyValue($target2, "display"), 0, "slideUp: display set to none.");
1464 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); notEqual(Velocity.CSS.getPropertyValue($target2, "height"), 0, "slideUp: height reset.");
1465 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.CSS.getPropertyValue($target1, "paddingTop"), initialStyles.paddingTop, "slideUp: paddingTop reset.");
1466 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1467 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1468 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ).then(function(elements) {
1469 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, [ $target2 ], "slideUp: Promise fulfilled.");
1470  
1471 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1472 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1473 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1474  
1475 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /***********************
1476 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); UI Pack: Callbacks
1477 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ***********************/
1478  
1479 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("UI Pack: Callbacks", function(assert) {
1480 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); expect(3);
1481  
1482 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $targets = [ getTarget(), getTarget() ];
1483  
1484 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($targets, "transition.bounceIn",
1485 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); {
1486 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); begin: function(elements) {
1487 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, $targets, "Begin callback returned.");
1488 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); },
1489 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); complete: function(elements) {
1490 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, $targets, "Complete callback returned.");
1491 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1492 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1493 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ).then(function(elements) {
1494 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.deepEqual(elements, $targets, "Promise fulfilled.");
1495  
1496 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1497 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1498 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1499  
1500 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /*********************
1501 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); UI Pack: In/Out
1502 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); *********************/
1503  
1504 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("UI Pack: In/Out", function(assert) {
1505 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); expect(8);
1506  
1507 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget();
1508 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, "transition.bounceIn", defaultOptions.duration);
1509  
1510 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target2 = getTarget();
1511 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target2, "transition.bounceIn", { duration: defaultOptions.duration, display: "inline" });
1512  
1513 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target3 = getTarget();
1514 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target3, "transition.bounceOut", defaultOptions.duration);
1515  
1516 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target4 = getTarget();
1517 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target4, "transition.bounceOut", { duration: defaultOptions.duration, display: null });
1518  
1519 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target5 = getTarget();
1520 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $target5.style.visibility = "hidden";
1521 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target5, "transition.bounceIn", { duration: defaultOptions.duration, visibility: "visible" });
1522  
1523 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target6 = getTarget();
1524 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $target6.style.visibility = "visible";
1525 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target6, "transition.bounceOut", { duration: defaultOptions.duration, visibility: "hidden" });
1526  
1527 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1528 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); notEqual(Velocity.CSS.getPropertyValue($target3, "display"), 0, "Out: display not prematurely set to none.");
1529 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); notEqual(Velocity.CSS.getPropertyValue($target6, "visibility"), "hidden", "Out: visibility not prematurely set to hidden.");
1530 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, asyncCheckDuration);
1531  
1532 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1533 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.CSS.getPropertyValue($target1, "display"), Velocity.CSS.Values.getDisplayType($target1), "In: display set to default.");
1534 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.CSS.getPropertyValue($target2, "display"), "inline", "In: Custom inline value set.");
1535  
1536 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.CSS.getPropertyValue($target3, "display"), 0, "Out: display set to none.");
1537 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.CSS.getPropertyValue($target4, "display"), Velocity.CSS.Values.getDisplayType($target3), "Out: No display value set.");
1538  
1539 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.CSS.getPropertyValue($target5, "visibility"), "visible", "In: visibility set to visible.");
1540 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Velocity.CSS.getPropertyValue($target6, "visibility"), "hidden", "Out: visibility set to hidden.");
1541  
1542 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1543 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, completeCheckDuration);
1544 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1545  
1546 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /**************************
1547 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); UI Pack: Call Options
1548 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); **************************/
1549  
1550 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("UI Pack: Call Options", function(assert) {
1551 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); expect(7);
1552  
1553 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var UICallOptions1 = {
1554 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); delay: 123,
1555 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); duration: defaultOptions.duration,
1556 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); loop: true, // Should get ignored
1557 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); easing: "spring" // Should get ignored
1558 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); };
1559  
1560 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget();
1561 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, "transition.slideLeftIn", UICallOptions1);
1562  
1563 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1564 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); // Note: We can do this because transition.slideLeftIn is composed of a single call.
1565 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($target1, pluginName).opts.delay, UICallOptions1.delay, "Whitelisted option passed in.");
1566 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); notEqual(Data($target1, pluginName).opts.loop, UICallOptions1.loop, "Non-whitelisted option not passed in #1a.");
1567 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); notEqual(Data($target1, pluginName).opts.easing, UICallOptions1.easing, "Non-whitelisted option not passed in #1a.");
1568 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(!/velocity-animating/.test(Data($target1, pluginName).className), true, "Duration option passed in.");
1569 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, completeCheckDuration);
1570  
1571 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var UICallOptions2 = {
1572 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); stagger: 100,
1573 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); duration: defaultOptions.duration,
1574 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); backwards: true
1575 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); };
1576  
1577 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $targets = [ getTarget(), getTarget(), getTarget() ];
1578 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($targets, "transition.slideLeftIn", UICallOptions2);
1579  
1580 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1581 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($targets[0], pluginName).opts.delay, UICallOptions2.stagger * 2, "Backwards stagger delay passed in #1a.");
1582 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($targets[1], pluginName).opts.delay, UICallOptions2.stagger * 1, "Backwards stagger delay passed in #1b.");
1583 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Data($targets[2], pluginName).opts.delay, UICallOptions2.stagger * 0, "Backwards stagger delay passed in #1c.");
1584  
1585 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1586 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, completeCheckDuration);
1587 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1588  
1589 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /****************************
1590 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); UI Pack: RegisterEffect
1591 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ****************************/
1592  
1593 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("UI Pack: RegisterEffect", function(assert) {
1594 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); expect(2);
1595  
1596 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var effectDefaultDuration = 800;
1597 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity.RegisterUI("callout.twirl", {
1598 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); defaultDuration: effectDefaultDuration,
1599 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); calls: [
1600 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); [ { rotateZ: 1080 }, 0.50 ],
1601 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); [ { scaleX: 0.5 }, 0.25, { easing: "spring" } ],
1602 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); [ { scaleX: 1 }, 0.25, { easing: "spring" } ]
1603 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ]
1604 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1605  
1606 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget();
1607 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity($target1, "callout.twirl");
1608  
1609 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); setTimeout(function() {
1610 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target1, "rotateZ")), 1080, "First call's property animated.");
1611 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target1, "scaleX")), 1, "Last call's property animated.");
1612  
1613 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1614 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }, effectDefaultDuration * 1.50);
1615 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1616  
1617 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /*************************
1618 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); UI Pack: RunSequence
1619 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); *************************/
1620  
1621 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("UI Pack: RunSequence", function(assert) {
1622 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); expect(3);
1623  
1624 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $target1 = getTarget(),
1625 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $target2 = getTarget(),
1626 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $target3 = getTarget();
1627  
1628 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var mySequence = [
1629 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); { elements: $target1, properties: { opacity: defaultProperties.opacity } },
1630 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); { elements: $target2, properties: { height: defaultProperties.height } },
1631 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); { elements: $target3, properties: { width: defaultProperties.width }, options: {
1632 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); delay: 100,
1633 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); sequenceQueue: false,
1634 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); complete: function() {
1635 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target1, "opacity")), defaultProperties.opacity, "First call's property animated.");
1636 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target2, "height")), defaultProperties.height, "Second call's property animated.");
1637 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(parseFloat(Velocity.CSS.getPropertyValue($target3, "width")), defaultProperties.width, "Last call's property animated.");
1638  
1639 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1640 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1641 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1642 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1643 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ];
1644  
1645 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Velocity.RunSequence(mySequence);
1646 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1647  
1648 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /*********************
1649 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Command: Scroll
1650 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); *********************/
1651  
1652 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); if ($) {
1653 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Window scrolling. */
1654 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("Command: Scroll (Window)", function(assert) {
1655 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $details = $("#details"),
1656 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $scrollTarget1 = $("<div>Scroll target #1. Should stop 50 pixels above this point.</div>"),
1657 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $scrollTarget2 = $("<div>Scroll target #2. Should stop 50 pixels before this point.</div>"),
1658 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); scrollOffset = -50;
1659  
1660 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $scrollTarget1
1661 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .css({ position: "relative", top: 3000, height: 100, paddingBottom: 10000 })
1662 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .appendTo($("body"));
1663  
1664 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $scrollTarget2
1665 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .css({ position: "absolute", top: 100, left: 3000, width: 100, paddingRight: 15000 })
1666 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .appendTo($("body"));
1667  
1668 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $scrollTarget1
1669 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .velocity("scroll", { duration: 500, offset: scrollOffset, complete: function() {
1670 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Math.abs(Velocity.State.scrollAnchor[Velocity.State.scrollPropertyTop] - ($scrollTarget1.offset().top + scrollOffset)) <= 100, true, "Page scrolled top with a scroll offset.");
1671 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1672 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); })
1673 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .velocity({ opacity: 0.5 }, function() {
1674 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $details
1675 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .velocity({ opacity: 0.5 }, 500)
1676 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .velocity("scroll", 500)
1677 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .velocity({ opacity: 1 }, 500, function() {
1678 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); //alert(Velocity.State.scrollAnchor[Velocity.State.scrollPropertyTop] + " " + ($details.offset().top + scrollOffset))
1679 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Math.abs(Velocity.State.scrollAnchor[Velocity.State.scrollPropertyTop] - ($details.offset().top + scrollOffset)) <= 100, true, "Page scroll top was chained.");
1680  
1681 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); //$scrollTarget1.remove();
1682  
1683 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $scrollTarget2
1684 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .velocity("scroll", { duration: 500, axis: "x", offset: scrollOffset, complete: function() {
1685 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Phones can reposition the browser's scroll position by a 10 pixels or so, so we just check for a value that's within that range. */
1686 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Math.abs(Velocity.State.scrollAnchor[Velocity.State.scrollPropertyLeft] - ($scrollTarget2.offset().left + scrollOffset)) <= 100, true, "Page scrolled left with a scroll offset.");
1687 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1688 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); })
1689 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .velocity({ opacity: 0.5 }, function() {
1690 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $details
1691 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .velocity({ opacity: 0.5 }, 500)
1692 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .velocity("scroll", { duration: 500, axis: "x" })
1693 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .velocity({ opacity: 1 }, 500, function() {
1694 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); assert.equal(Math.abs(Velocity.State.scrollAnchor[Velocity.State.scrollPropertyLeft] - ($details.offset().left + scrollOffset)) <= 100, true, "Page scroll left was chained.");
1695 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1696 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1697 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1698 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1699 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1700 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1701  
1702 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Element scrolling. */
1703 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); QUnit.asyncTest("Command: Scroll (Element)", function(assert) {
1704 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); expect(2);
1705  
1706 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $scrollTarget1 = $("\
1707 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); <div id='scroller'>\
1708 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
1709 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
1710 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
1711 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
1712 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
1713 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); <div id='scrollerChild1'>\
1714 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Stop #1\
1715 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\
1716 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\
1717 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\
1718 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\
1719 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\
1720 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); </div>\
1721 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); cccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
1722 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); cccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
1723 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); cccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
1724 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); cccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
1725 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); cccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
1726 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); <div id='scrollerChild2'>\
1727 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Stop #2\
1728 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); dddddddddddddddddddddddddddddddddddddddddddddddddddddddd\
1729 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); dddddddddddddddddddddddddddddddddddddddddddddddddddddddd\
1730 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); dddddddddddddddddddddddddddddddddddddddddddddddddddddddd\
1731 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); dddddddddddddddddddddddddddddddddddddddddddddddddddddddd\
1732 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); dddddddddddddddddddddddddddddddddddddddddddddddddddddddd\
1733 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); </div>\
1734 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\
1735 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\
1736 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\
1737 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\
1738 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\
1739 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); </div>\
1740 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ");
1741  
1742 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $scrollTarget1
1743 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .css({ position: "absolute", backgroundColor: "white", top: 100, left: "50%", width: 500, height: 100, overflowY: "scroll" })
1744 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .appendTo($("body"));
1745  
1746 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Test with a jQuery object container. */
1747 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $("#scrollerChild1").velocity("scroll", { container: $("#scroller"), duration: 750, complete: function() {
1748 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Test with a raw DOM element container. */
1749 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $("#scrollerChild2").velocity("scroll", { container: $("#scroller")[0], duration: 750, complete: function() {
1750 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* This test is purely visual. */
1751 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ok(true);
1752  
1753 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $scrollTarget1.remove();
1754  
1755 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); var $scrollTarget2 = $("\
1756 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); <div id='scroller'>\
1757 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); <div id='scrollerChild1' style='float: left; width: 20%;'>\
1758 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Stop #1\
1759 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\
1760 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\
1761 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\
1762 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\
1763 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\
1764 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); cccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
1765 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); cccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
1766 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); cccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
1767 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); cccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
1768 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); cccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
1769 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); </div>\
1770 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); <div id='scrollerChild2' style='float: right; width: 20%;'>\
1771 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); Stop #2\
1772 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); dddddddddddddddddddddddddddddddddddddddddddddddddddddddd\
1773 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); dddddddddddddddddddddddddddddddddddddddddddddddddddddddd\
1774 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); dddddddddddddddddddddddddddddddddddddddddddddddddddddddd\
1775 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); dddddddddddddddddddddddddddddddddddddddddddddddddddddddd\
1776 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); dddddddddddddddddddddddddddddddddddddddddddddddddddddddd\
1777 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\
1778 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\
1779 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\
1780 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\
1781 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\
1782 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); </div>\
1783 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); </div>\
1784 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ");
1785  
1786 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $scrollTarget2
1787 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .css({ position: "absolute", backgroundColor: "white", top: 100, left: "50%", width: 100, height: 500, overflowX: "scroll" })
1788 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); .appendTo($("body"));
1789  
1790 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Test with a jQuery object container. */
1791 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $("#scrollerChild2").velocity("scroll", { axis: "x", container: $("#scroller"), duration: 750, complete: function() {
1792 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* Test with a raw DOM element container. */
1793 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $("#scrollerChild1").velocity("scroll", { axis: "x", container: $("#scroller")[0], duration: 750, complete: function() {
1794 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); /* This test is purely visual. */
1795 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); ok(true);
1796  
1797 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); $scrollTarget2.remove();
1798  
1799 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); start();
1800 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1801 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1802 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1803 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1804 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1805 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1806 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1807 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1808 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); });
1809 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); }
1810 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); </script>
1811 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress."); </body>
1812 <=8) {<=8) && !isAndroid) {< 10) && !Velocity.State.isGingerbread) {<= 1, true, "percentComplete passed into progress.");</html>