mirror of
https://github.com/codeninjasllc/discourse.git
synced 2025-02-19 21:16:10 -05:00
Moved Formatter, KeyValueStore and Onebox jasmine tests to QUnit.
This commit is contained in:
parent
8af9952b25
commit
f0ebca51cc
9 changed files with 4545 additions and 178 deletions
|
@ -1,128 +0,0 @@
|
||||||
/*global expect:true describe:true it:true beforeEach:true afterEach:true spyOn:true */
|
|
||||||
|
|
||||||
describe("Discourse.Formatter", function() {
|
|
||||||
var format = "tiny";
|
|
||||||
var leaveAgo = false;
|
|
||||||
var mins_ago = function(mins){
|
|
||||||
return new Date((new Date()) - mins * 60 * 1000);
|
|
||||||
};
|
|
||||||
|
|
||||||
var formatMins = function(mins) {
|
|
||||||
return Discourse.Formatter.relativeAge(mins_ago(mins), {format: format, leaveAgo: leaveAgo});
|
|
||||||
};
|
|
||||||
|
|
||||||
var formatHours = function(hours) {
|
|
||||||
return formatMins(hours * 60);
|
|
||||||
};
|
|
||||||
|
|
||||||
var formatDays = function(days) {
|
|
||||||
return formatHours(days * 24);
|
|
||||||
};
|
|
||||||
|
|
||||||
var formatMonths = function(months) {
|
|
||||||
return formatDays(months * 30);
|
|
||||||
};
|
|
||||||
|
|
||||||
describe("relativeTime", function() {
|
|
||||||
|
|
||||||
it("can format medium length dates", function() {
|
|
||||||
format = "medium";
|
|
||||||
var strip = function(html){
|
|
||||||
return $(html).text();
|
|
||||||
}
|
|
||||||
|
|
||||||
var shortDate = function(days){
|
|
||||||
return moment().subtract('days', days).format('D MMM');
|
|
||||||
}
|
|
||||||
|
|
||||||
var shortDateYear = function(days){
|
|
||||||
return moment().subtract('days', days).format('D MMM, YYYY');
|
|
||||||
}
|
|
||||||
|
|
||||||
leaveAgo = true;
|
|
||||||
expect(strip(formatMins(1.4))).toBe("1 minute ago");
|
|
||||||
expect(strip(formatMins(2))).toBe("2 minutes ago");
|
|
||||||
expect(strip(formatMins(56))).toBe("56 minutes ago");
|
|
||||||
expect(strip(formatMins(57))).toBe("1 hour ago");
|
|
||||||
expect(strip(formatHours(4))).toBe("4 hours ago");
|
|
||||||
expect(strip(formatHours(22))).toBe("22 hours ago");
|
|
||||||
expect(strip(formatHours(23))).toBe("1 day ago");
|
|
||||||
expect(strip(formatDays(4.85))).toBe("4 days ago");
|
|
||||||
|
|
||||||
leaveAgo = false;
|
|
||||||
expect(strip(formatMins(0))).toBe("just now");
|
|
||||||
expect(strip(formatMins(1.4))).toBe("1 minute");
|
|
||||||
expect(strip(formatMins(2))).toBe("2 minutes");
|
|
||||||
expect(strip(formatMins(56))).toBe("56 minutes");
|
|
||||||
expect(strip(formatMins(57))).toBe("1 hour");
|
|
||||||
expect(strip(formatHours(4))).toBe("4 hours");
|
|
||||||
expect(strip(formatHours(22))).toBe("22 hours");
|
|
||||||
expect(strip(formatHours(23))).toBe("1 day");
|
|
||||||
expect(strip(formatDays(4.85))).toBe("4 days");
|
|
||||||
|
|
||||||
expect(strip(formatDays(6))).toBe(shortDate(6));
|
|
||||||
expect(strip(formatDays(100))).toBe(shortDate(100)); // eg: 23 Jan
|
|
||||||
expect(strip(formatDays(500))).toBe(shortDateYear(500));
|
|
||||||
|
|
||||||
expect($(formatDays(0)).attr("title")).toBe(moment().format('MMMM D, YYYY h:mma'));
|
|
||||||
expect($(formatDays(0)).attr("class")).toBe("date");
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
it("can format dates", function() {
|
|
||||||
format = "tiny";
|
|
||||||
expect(formatMins(0)).toBe("< 1m");
|
|
||||||
expect(formatMins(2)).toBe("2m");
|
|
||||||
expect(formatMins(60)).toBe("1h");
|
|
||||||
expect(formatHours(4)).toBe("4h");
|
|
||||||
expect(formatDays(1)).toBe("1d");
|
|
||||||
expect(formatDays(20)).toBe("20d");
|
|
||||||
expect(formatMonths(3)).toBe("3mon");
|
|
||||||
expect(formatMonths(23)).toBe("23mon");
|
|
||||||
expect(formatMonths(24)).toBe("> 2y");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("autoUpdatingRelativeAge", function(){
|
|
||||||
it("can format dates", function(){
|
|
||||||
var d = moment().subtract('days',1).toDate();
|
|
||||||
|
|
||||||
var $elem = $(Discourse.Formatter.autoUpdatingRelativeAge(d));
|
|
||||||
expect($elem.data('format')).toBe("tiny");
|
|
||||||
expect($elem.data('time')).toBe(d.getTime());
|
|
||||||
|
|
||||||
$elem = $(Discourse.Formatter.autoUpdatingRelativeAge(d,{format: 'medium', leaveAgo: true}));
|
|
||||||
expect($elem.data('format')).toBe("medium-with-ago");
|
|
||||||
expect($elem.data('time')).toBe(d.getTime());
|
|
||||||
expect($elem.attr('title')).toBe(moment(d).longDate());
|
|
||||||
expect($elem.html()).toBe('1 day ago');
|
|
||||||
|
|
||||||
$elem = $(Discourse.Formatter.autoUpdatingRelativeAge(d,{format: 'medium'}));
|
|
||||||
expect($elem.data('format')).toBe("medium");
|
|
||||||
expect($elem.data('time')).toBe(d.getTime());
|
|
||||||
expect($elem.html()).toBe('1 day');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("updateRelativeAge", function(){
|
|
||||||
it("can update relative dates", function(){
|
|
||||||
|
|
||||||
var d = new Date();
|
|
||||||
var $elem = $(Discourse.Formatter.autoUpdatingRelativeAge(d));
|
|
||||||
$elem.data('time', d.getTime() - 2 * 60 * 1000);
|
|
||||||
|
|
||||||
Discourse.Formatter.updateRelativeAge($elem);
|
|
||||||
|
|
||||||
expect($elem.html()).toBe("2m");
|
|
||||||
|
|
||||||
|
|
||||||
d = new Date();
|
|
||||||
$elem = $(Discourse.Formatter.autoUpdatingRelativeAge(d, {format: 'medium', leaveAgo: true}));
|
|
||||||
$elem.data('time', d.getTime() - 2 * 60 * 1000);
|
|
||||||
|
|
||||||
Discourse.Formatter.updateRelativeAge($elem);
|
|
||||||
|
|
||||||
expect($elem.html()).toBe("2 minutes ago");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -1,24 +0,0 @@
|
||||||
/*global waitsFor:true expect:true describe:true beforeEach:true it:true */
|
|
||||||
|
|
||||||
describe("Discourse.KeyValueStore", function() {
|
|
||||||
|
|
||||||
describe("Setting values", function() {
|
|
||||||
var store = Discourse.KeyValueStore;
|
|
||||||
store.init("test");
|
|
||||||
|
|
||||||
it("is able to get the value back from the store", function() {
|
|
||||||
store.set({ key: "bob", value: "uncle" });
|
|
||||||
expect(store.get("bob")).toBe("uncle");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("is able to nuke the store", function() {
|
|
||||||
store.set({ key: "bob1", value: "uncle" });
|
|
||||||
store.abandonLocal();
|
|
||||||
localStorage.a = 1;
|
|
||||||
expect(store.get("bob1")).toBe(void 0);
|
|
||||||
expect(localStorage.a).toBe("1");
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
|
@ -1,24 +0,0 @@
|
||||||
/*global waitsFor:true expect:true describe:true beforeEach:true it:true spyOn:true */
|
|
||||||
|
|
||||||
describe("Discourse.Onebox", function() {
|
|
||||||
|
|
||||||
var anchor;
|
|
||||||
|
|
||||||
beforeEach(function() {
|
|
||||||
spyOn(Discourse, 'ajax').andCallThrough();
|
|
||||||
anchor = $("<a href='http://bla.com'></a>")[0];
|
|
||||||
});
|
|
||||||
|
|
||||||
it("Stops rapid calls with cache true", function() {
|
|
||||||
Discourse.Onebox.load(anchor, true);
|
|
||||||
Discourse.Onebox.load(anchor, true);
|
|
||||||
expect(Discourse.ajax.calls.length).toBe(1);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("Stops rapid calls with cache false", function() {
|
|
||||||
Discourse.Onebox.load(anchor, false);
|
|
||||||
Discourse.Onebox.load(anchor, false);
|
|
||||||
expect(Discourse.ajax.calls.length).toBe(1);
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
121
test/javascripts/components/formatter_test.js
Normal file
121
test/javascripts/components/formatter_test.js
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
/*global module:true test:true ok:true visit:true equal:true exists:true count:true equal:true present:true md5:true */
|
||||||
|
|
||||||
|
module("Discourse.Formatter");
|
||||||
|
|
||||||
|
var format = "tiny";
|
||||||
|
var leaveAgo = false;
|
||||||
|
var mins_ago = function(mins){
|
||||||
|
return new Date((new Date()) - mins * 60 * 1000);
|
||||||
|
};
|
||||||
|
|
||||||
|
var formatMins = function(mins) {
|
||||||
|
return Discourse.Formatter.relativeAge(mins_ago(mins), {format: format, leaveAgo: leaveAgo});
|
||||||
|
};
|
||||||
|
|
||||||
|
var formatHours = function(hours) {
|
||||||
|
return formatMins(hours * 60);
|
||||||
|
};
|
||||||
|
|
||||||
|
var formatDays = function(days) {
|
||||||
|
return formatHours(days * 24);
|
||||||
|
};
|
||||||
|
|
||||||
|
var formatMonths = function(months) {
|
||||||
|
return formatDays(months * 30);
|
||||||
|
};
|
||||||
|
|
||||||
|
test("formating medium length dates", function() {
|
||||||
|
|
||||||
|
format = "medium";
|
||||||
|
var strip = function(html){
|
||||||
|
return $(html).text();
|
||||||
|
}
|
||||||
|
|
||||||
|
var shortDate = function(days){
|
||||||
|
return moment().subtract('days', days).format('D MMM');
|
||||||
|
}
|
||||||
|
|
||||||
|
var shortDateYear = function(days){
|
||||||
|
return moment().subtract('days', days).format('D MMM, YYYY');
|
||||||
|
}
|
||||||
|
|
||||||
|
leaveAgo = true;
|
||||||
|
equal(strip(formatMins(1.4)), "1 minute ago");
|
||||||
|
equal(strip(formatMins(2)), "2 minutes ago");
|
||||||
|
equal(strip(formatMins(56)), "56 minutes ago");
|
||||||
|
equal(strip(formatMins(57)), "1 hour ago");
|
||||||
|
equal(strip(formatHours(4)), "4 hours ago");
|
||||||
|
equal(strip(formatHours(22)), "22 hours ago");
|
||||||
|
equal(strip(formatHours(23)), "1 day ago");
|
||||||
|
equal(strip(formatDays(4.85)), "4 days ago");
|
||||||
|
|
||||||
|
leaveAgo = false;
|
||||||
|
equal(strip(formatMins(0)), "just now");
|
||||||
|
equal(strip(formatMins(1.4)), "1 minute");
|
||||||
|
equal(strip(formatMins(2)), "2 minutes");
|
||||||
|
equal(strip(formatMins(56)), "56 minutes");
|
||||||
|
equal(strip(formatMins(57)), "1 hour");
|
||||||
|
equal(strip(formatHours(4)), "4 hours");
|
||||||
|
equal(strip(formatHours(22)), "22 hours");
|
||||||
|
equal(strip(formatHours(23)), "1 day");
|
||||||
|
equal(strip(formatDays(4.85)), "4 days");
|
||||||
|
|
||||||
|
equal(strip(formatDays(6)), shortDate(6));
|
||||||
|
equal(strip(formatDays(100)), shortDate(100)); // eg: 23 Jan
|
||||||
|
equal(strip(formatDays(500)), shortDateYear(500));
|
||||||
|
|
||||||
|
equal($(formatDays(0)).attr("title"), moment().format('MMMM D, YYYY h:mma'));
|
||||||
|
equal($(formatDays(0)).attr("class"), "date");
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
test("formating tiny dates", function() {
|
||||||
|
format = "tiny";
|
||||||
|
equal(formatMins(0), "< 1m");
|
||||||
|
equal(formatMins(2), "2m");
|
||||||
|
equal(formatMins(60), "1h");
|
||||||
|
equal(formatHours(4), "4h");
|
||||||
|
equal(formatDays(1), "1d");
|
||||||
|
equal(formatDays(20), "20d");
|
||||||
|
equal(formatMonths(3), "3mon");
|
||||||
|
equal(formatMonths(23), "23mon");
|
||||||
|
equal(formatMonths(24), "> 2y");
|
||||||
|
});
|
||||||
|
|
||||||
|
test("autoUpdatingRelativeAge", function() {
|
||||||
|
var d = moment().subtract('days',1).toDate();
|
||||||
|
|
||||||
|
var $elem = $(Discourse.Formatter.autoUpdatingRelativeAge(d));
|
||||||
|
equal($elem.data('format'), "tiny");
|
||||||
|
equal($elem.data('time'), d.getTime());
|
||||||
|
|
||||||
|
$elem = $(Discourse.Formatter.autoUpdatingRelativeAge(d,{format: 'medium', leaveAgo: true}));
|
||||||
|
equal($elem.data('format'), "medium-with-ago");
|
||||||
|
equal($elem.data('time'), d.getTime());
|
||||||
|
equal($elem.attr('title'), moment(d).longDate());
|
||||||
|
equal($elem.html(), '1 day ago');
|
||||||
|
|
||||||
|
$elem = $(Discourse.Formatter.autoUpdatingRelativeAge(d,{format: 'medium'}));
|
||||||
|
equal($elem.data('format'), "medium");
|
||||||
|
equal($elem.data('time'), d.getTime());
|
||||||
|
equal($elem.html(), '1 day');
|
||||||
|
});
|
||||||
|
|
||||||
|
test("updateRelativeAge", function(){
|
||||||
|
|
||||||
|
var d = new Date();
|
||||||
|
var $elem = $(Discourse.Formatter.autoUpdatingRelativeAge(d));
|
||||||
|
$elem.data('time', d.getTime() - 2 * 60 * 1000);
|
||||||
|
|
||||||
|
Discourse.Formatter.updateRelativeAge($elem);
|
||||||
|
|
||||||
|
equal($elem.html(), "2m");
|
||||||
|
|
||||||
|
d = new Date();
|
||||||
|
$elem = $(Discourse.Formatter.autoUpdatingRelativeAge(d, {format: 'medium', leaveAgo: true}));
|
||||||
|
$elem.data('time', d.getTime() - 2 * 60 * 1000);
|
||||||
|
|
||||||
|
Discourse.Formatter.updateRelativeAge($elem);
|
||||||
|
|
||||||
|
equal($elem.html(), "2 minutes ago");
|
||||||
|
});
|
22
test/javascripts/components/key_value_store_test.js
Normal file
22
test/javascripts/components/key_value_store_test.js
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
/*global module:true test:true ok:true visit:true equal:true exists:true count:true equal:true present:true md5:true */
|
||||||
|
|
||||||
|
var store = Discourse.KeyValueStore;
|
||||||
|
|
||||||
|
module("Discourse.KeyValueStore", {
|
||||||
|
setup: function() {
|
||||||
|
store.init("test");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test("it's able to get the result back from the store", function() {
|
||||||
|
store.set({ key: "bob", value: "uncle" });
|
||||||
|
equal(store.get("bob"), "uncle");
|
||||||
|
});
|
||||||
|
|
||||||
|
test("is able to nuke the store", function() {
|
||||||
|
store.set({ key: "bob1", value: "uncle" });
|
||||||
|
store.abandonLocal();
|
||||||
|
localStorage.a = 1;
|
||||||
|
equal(store.get("bob1"), void 0);
|
||||||
|
equal(localStorage.a, "1");
|
||||||
|
});
|
22
test/javascripts/components/onebox_test.js
Normal file
22
test/javascripts/components/onebox_test.js
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
/*global module:true test:true ok:true visit:true equal:true exists:true count:true equal:true present:true md5:true resolvingPromise:true */
|
||||||
|
|
||||||
|
module("Discourse.Onebox", {
|
||||||
|
setup: function() {
|
||||||
|
this.anchor = $("<a href='http://bla.com'></a>")[0];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test("Stops rapid calls with cache true", function() {
|
||||||
|
this.stub(Discourse, "ajax").returns(resolvingPromise);
|
||||||
|
|
||||||
|
Discourse.Onebox.load(this.anchor, true);
|
||||||
|
Discourse.Onebox.load(this.anchor, true);
|
||||||
|
ok(Discourse.ajax.calledOnce);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("Stops rapid calls with cache false", function() {
|
||||||
|
this.stub(Discourse, "ajax").returns(resolvingPromise);
|
||||||
|
Discourse.Onebox.load(this.anchor, false);
|
||||||
|
Discourse.Onebox.load(this.anchor, false);
|
||||||
|
ok(Discourse.ajax.calledOnce);
|
||||||
|
});
|
|
@ -1,5 +1,5 @@
|
||||||
/*jshint maxlen:250 */
|
/*jshint maxlen:250 */
|
||||||
/*global count:true find:true document:true equal:true */
|
/*global count:true find:true document:true equal:true sinon:true */
|
||||||
|
|
||||||
//= require env
|
//= require env
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
//= require ../../app/assets/javascripts/locales/date_locales.js
|
//= require ../../app/assets/javascripts/locales/date_locales.js
|
||||||
//= require ../../app/assets/javascripts/discourse/helpers/i18n_helpers
|
//= require ../../app/assets/javascripts/discourse/helpers/i18n_helpers
|
||||||
//= require ../../app/assets/javascripts/locales/en
|
//= require ../../app/assets/javascripts/locales/en
|
||||||
//
|
|
||||||
// Pagedown customizations
|
// Pagedown customizations
|
||||||
//= require ../../app/assets/javascripts/pagedown_custom.js
|
//= require ../../app/assets/javascripts/pagedown_custom.js
|
||||||
|
|
||||||
|
@ -32,11 +32,24 @@
|
||||||
//= require_tree ../../app/assets/javascripts/defer
|
//= require_tree ../../app/assets/javascripts/defer
|
||||||
|
|
||||||
//= require main_include
|
//= require main_include
|
||||||
|
|
||||||
|
//= require sinon-1.7.1.js
|
||||||
|
//= require sinon-qunit-1.0.0.js
|
||||||
|
|
||||||
//= require_tree .
|
//= require_tree .
|
||||||
//= require_self
|
//= require_self
|
||||||
|
|
||||||
//= require_tree ./fixtures
|
//= require_tree ./fixtures
|
||||||
|
|
||||||
|
// sinon settings
|
||||||
|
sinon.config = {
|
||||||
|
injectIntoThis: true,
|
||||||
|
injectInto: null,
|
||||||
|
properties: ["spy", "stub", "mock", "clock", "sandbox"],
|
||||||
|
useFakeTimers: false,
|
||||||
|
useFakeServer: false
|
||||||
|
};
|
||||||
|
|
||||||
// Trick JSHint into allow document.write
|
// Trick JSHint into allow document.write
|
||||||
var d = document;
|
var d = document;
|
||||||
d.write('<div id="ember-testing-container"><div id="ember-testing"></div></div>');
|
d.write('<div id="ember-testing-container"><div id="ember-testing"></div></div>');
|
||||||
|
@ -51,6 +64,11 @@ Discourse.Router.map(function() {
|
||||||
return Discourse.routeBuilder.call(this);
|
return Discourse.routeBuilder.call(this);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Test helpers
|
||||||
|
var resolvingPromise = Ember.Deferred.promise(function (p) {
|
||||||
|
p.resolve();
|
||||||
|
})
|
||||||
|
|
||||||
function exists(selector) {
|
function exists(selector) {
|
||||||
return !!count(selector);
|
return !!count(selector);
|
||||||
}
|
}
|
||||||
|
|
4299
vendor/assets/javascripts/sinon-1.7.1.js
vendored
Normal file
4299
vendor/assets/javascripts/sinon-1.7.1.js
vendored
Normal file
File diff suppressed because it is too large
Load diff
61
vendor/assets/javascripts/sinon-qunit-1.0.0.js
vendored
Normal file
61
vendor/assets/javascripts/sinon-qunit-1.0.0.js
vendored
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
/**
|
||||||
|
* sinon-qunit 1.0.0, 2010/12/09
|
||||||
|
*
|
||||||
|
* @author Christian Johansen (christian@cjohansen.no)
|
||||||
|
*
|
||||||
|
* (The BSD License)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2010-2011, Christian Johansen, christian@cjohansen.no
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
* are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* * Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of Christian Johansen nor the names of his contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||||
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
/*global sinon, QUnit, test*/
|
||||||
|
sinon.assert.fail = function (msg) {
|
||||||
|
QUnit.ok(false, msg);
|
||||||
|
};
|
||||||
|
|
||||||
|
sinon.assert.pass = function (assertion) {
|
||||||
|
QUnit.ok(true, assertion);
|
||||||
|
};
|
||||||
|
|
||||||
|
sinon.config = {
|
||||||
|
injectIntoThis: true,
|
||||||
|
injectInto: null,
|
||||||
|
properties: ["spy", "stub", "mock", "clock", "sandbox"],
|
||||||
|
useFakeTimers: true,
|
||||||
|
useFakeServer: false
|
||||||
|
};
|
||||||
|
|
||||||
|
(function (global) {
|
||||||
|
var qTest = QUnit.test;
|
||||||
|
|
||||||
|
QUnit.test = global.test = function (testName, expected, callback, async) {
|
||||||
|
if (arguments.length === 2) {
|
||||||
|
callback = expected;
|
||||||
|
expected = null;
|
||||||
|
}
|
||||||
|
return qTest(testName, expected, sinon.test(callback), async);
|
||||||
|
};
|
||||||
|
}(this));
|
Loading…
Reference in a new issue