mirror of
https://github.com/discourse/discourse.git
synced 2024-11-27 06:13:43 +08:00
100 lines
2.7 KiB
JavaScript
100 lines
2.7 KiB
JavaScript
/*jshint maxlen:250 */
|
|
/*global count:true find:true document:true equal:true sinon:true */
|
|
|
|
//= require env
|
|
|
|
//= require ../../app/assets/javascripts/preload_store.js
|
|
|
|
// probe framework first
|
|
//= require ../../app/assets/javascripts/discourse/components/probes.js
|
|
|
|
// Externals we need to load first
|
|
//= require ../../app/assets/javascripts/external/jquery-1.9.1.js
|
|
//= require ../../app/assets/javascripts/external/jquery.ui.widget.js
|
|
//= require ../../app/assets/javascripts/external/handlebars-1.0.rc.4.js
|
|
//= require ../../app/assets/javascripts/external_development/ember.js
|
|
//= require ../../app/assets/javascripts/external_development/group-helper.js
|
|
|
|
//= require ../../app/assets/javascripts/locales/i18n
|
|
//= require ../../app/assets/javascripts/locales/date_locales.js
|
|
//= require ../../app/assets/javascripts/discourse/helpers/i18n_helpers
|
|
//= require ../../app/assets/javascripts/locales/en
|
|
|
|
// Pagedown customizations
|
|
//= require ../../app/assets/javascripts/pagedown_custom.js
|
|
|
|
// The rest of the externals
|
|
//= require_tree ../../app/assets/javascripts/external
|
|
|
|
// Stuff we need to load first
|
|
//= require main_include
|
|
//= require admin
|
|
//= require_tree ../../app/assets/javascripts/defer
|
|
|
|
//= require main_include
|
|
|
|
//= require sinon-1.7.1.js
|
|
//= require sinon-qunit-1.0.0.js
|
|
|
|
//= require_tree .
|
|
//= require_self
|
|
|
|
//= 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
|
|
var d = document;
|
|
d.write('<div id="qunit-scratch" style="display:none"></div>');
|
|
d.write('<div id="ember-testing-container"><div id="ember-testing"></div></div>');
|
|
d.write('<style>#ember-testing-container { position: absolute; background: white; bottom: 0; right: 0; width: 640px; height: 384px; overflow: auto; z-index: 9999; border: 1px solid #ccc; } #ember-testing { zoom: 50%; }</style>');
|
|
|
|
Discourse.rootElement = '#ember-testing';
|
|
Discourse.setupForTesting();
|
|
Discourse.injectTestHelpers();
|
|
|
|
|
|
Discourse.Router.map(function() {
|
|
return Discourse.routeBuilder.call(this);
|
|
});
|
|
|
|
// Test helpers
|
|
var resolvingPromise = Ember.Deferred.promise(function (p) {
|
|
p.resolve();
|
|
})
|
|
|
|
function exists(selector) {
|
|
return !!count(selector);
|
|
}
|
|
|
|
function count(selector) {
|
|
return find(selector).length;
|
|
}
|
|
|
|
function objBlank(obj) {
|
|
if (obj === undefined) return true;
|
|
|
|
switch (typeof obj) {
|
|
case "string":
|
|
return obj.trim().length === 0;
|
|
case "object":
|
|
return $.isEmptyObject(obj);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function present(obj, text) {
|
|
equal(objBlank(obj), false, text);
|
|
}
|
|
|
|
function blank(obj, text) {
|
|
equal(objBlank(obj), true, text);
|
|
}
|