"qunit/qunit.css": "qunitjs/qunit/qunit.css",
"qunit/LICENSE.txt": "qunitjs/LICENSE.txt",
+ "qunit-assert-step/qunit-assert-step.js":
+ "qunit-assert-step/qunit-assert-step.js",
+ "qunit-assert-step/MIT-LICENSE.txt":
+ "qunit-assert-step/MIT-LICENSE.txt",
+
"requirejs/require.js": "requirejs/require.js",
"sinon/fake_timers.js": "sinon/lib/sinon/util/fake_timers.js",
--- /dev/null
+Copyright jQuery Foundation and other contributors
+http://jquery.com/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--- /dev/null
+QUnit.extend( QUnit.assert, {
+
+ /**
+ * Check the sequence/order
+ *
+ * @example test('Example unit test', function(assert) { assert.step(1); setTimeout(function () { assert.step(3); start(); }, 100); assert.step(2); stop(); });
+ * @param Number expected The excepted step within the test()
+ * @param String message (optional)
+ */
+ step: function (expected, message) {
+ // increment internal step counter.
+ QUnit.config.current.step++;
+ if (typeof message === "undefined") {
+ message = "step " + expected;
+ }
+ var actual = QUnit.config.current.step;
+ QUnit.push(QUnit.equiv(actual, expected), actual, expected, message);
+ }
+});
+
+/**
+ * Reset the step counter for every test()
+ */
+QUnit.testStart(function () {
+ QUnit.config.current.step = 0;
+});
"promises-aplus-tests": "2.1.0",
"q": "1.1.2",
"qunitjs": "1.17.1",
+ "qunit-assert-step": "1.0.3",
"requirejs": "2.1.17",
"sinon": "1.12.2",
"sizzle": "2.2.0",
// resolve when we played the last frame
// otherwise, reject
if ( gotoEnd ) {
+ deferred.notifyWith( elem, [ animation, 1, 0 ] );
deferred.resolveWith( elem, [ animation, gotoEnd ] );
} else {
deferred.rejectWith( elem, [ animation, gotoEnd ] );
<script src="data/jquery-1.9.1.js"></script>
<script src="../external/qunit/qunit.js"></script>
+ <script src="../external/qunit-assert-step/qunit-assert-step.js"></script>
<script src="../external/sinon/sinon-1.14.1.js"></script>
<script src="../external/sinon/timers_ie.js"></script>
<script src="../external/npo/npo.js"></script>
this.clock.tick( 10 );
} );
-QUnit.test( "Animation callbacks (#11797)", function( assert ) {
- assert.expect( 15 );
+QUnit.test("Animation callbacks (#11797)", function( assert ) {
+ assert.expect( 16 );
- var targets = jQuery( "#foo" ).children(),
+ var prog = 0,
+ targets = jQuery( "#foo" ).children(),
done = false,
expectedProgress = 0;
assert.ok( true, "empty: start" );
},
progress: function( anim, percent ) {
- assert.equal( percent, 0, "empty: progress 0" );
+ assert.equal( percent, prog, "empty: progress " + prog );
+ prog = 1;
},
done: function() {
assert.ok( true, "empty: done" );
this.clock.tick( 10 );
} );
+QUnit.test( "Animation callbacks in order (#2292)", function( assert ) {
+ assert.expect( 9 );
+
+ var step = 0,
+ dur = 50;
+
+ // assert? -> github.com/JamesMGreene/qunit-assert-step
+ jQuery( "#foo" ).animate( {
+ width: "5px"
+ }, {
+ duration: dur,
+ start: function() {
+ assert.step( 1 );
+ },
+ progress: function( anim, p, ms ) {
+ if ( !( step++ ) ) {
+ assert.step( 2 );
+ assert.strictEqual( p, 0, "first progress callback: progress ratio" );
+ assert.strictEqual( ms, dur, "first progress callback: remaining ms" );
+ } else {
+ assert.step( 3 );
+ assert.strictEqual( p, 1, "last progress callback: progress ratio" );
+ assert.strictEqual( ms, 0, "last progress callback: remaining ms" );
+ }
+ },
+ done: function() {
+ assert.step( 4 );
+ },
+ fail: function() {
+ assert.ok( false, "Animation failed" );
+ },
+ always: function() {
+ assert.step( 5 );
+ }
+ }).finish();
+
+ this.clock.tick( dur + 10 );
+} );
+
QUnit.test( "Animate properly sets overflow hidden when animating width/height (#12117)", function( assert ) {
assert.expect( 8 );