2013-06-14 03:15:53 +08:00
|
|
|
/*jshint maxlen:250 */
|
2014-08-01 02:51:10 +08:00
|
|
|
/*global document, sinon, QUnit, Logster */
|
2013-06-12 23:56:59 +08:00
|
|
|
|
|
|
|
//= require env
|
|
|
|
|
2014-08-01 02:51:10 +08:00
|
|
|
//= require ../../app/assets/javascripts/preload_store
|
2013-06-12 23:56:59 +08:00
|
|
|
|
|
|
|
// probe framework first
|
2014-08-01 02:51:10 +08:00
|
|
|
//= require ../../app/assets/javascripts/discourse/lib/probes
|
2013-06-12 23:56:59 +08:00
|
|
|
|
|
|
|
// Externals we need to load first
|
2014-08-01 02:51:10 +08:00
|
|
|
//= require development/jquery-2.1.1
|
|
|
|
//= require jquery.ui.widget
|
|
|
|
//= require handlebars
|
|
|
|
//= require development/ember
|
|
|
|
//= require message-bus
|
|
|
|
//= require ember-qunit
|
|
|
|
//= require fake_xml_http_request
|
|
|
|
//= require route-recognizer
|
|
|
|
//= require pretender
|
2013-06-12 23:56:59 +08:00
|
|
|
|
|
|
|
//= require ../../app/assets/javascripts/locales/i18n
|
|
|
|
//= require ../../app/assets/javascripts/discourse/helpers/i18n_helpers
|
|
|
|
//= require ../../app/assets/javascripts/locales/en
|
2013-06-19 04:27:40 +08:00
|
|
|
|
2013-06-12 23:56:59 +08:00
|
|
|
// Pagedown customizations
|
|
|
|
//= require ../../app/assets/javascripts/pagedown_custom.js
|
2014-07-09 22:27:47 +08:00
|
|
|
|
|
|
|
//= require ../../public/javascripts/highlight.pack.js
|
|
|
|
|
2013-12-23 07:41:10 +08:00
|
|
|
//= require vendor
|
2014-07-09 22:27:47 +08:00
|
|
|
|
2013-10-26 03:23:29 +08:00
|
|
|
//= require htmlparser.js
|
2013-06-12 23:56:59 +08:00
|
|
|
|
|
|
|
// Stuff we need to load first
|
|
|
|
//= require main_include
|
|
|
|
//= require admin
|
|
|
|
//= require_tree ../../app/assets/javascripts/defer
|
|
|
|
|
2013-06-19 04:27:40 +08:00
|
|
|
|
2013-06-22 02:06:20 +08:00
|
|
|
//= require sinon-1.7.1
|
|
|
|
//= require sinon-qunit-1.0.0
|
|
|
|
//= require jshint
|
2013-06-19 04:27:40 +08:00
|
|
|
|
2014-09-27 02:48:34 +08:00
|
|
|
//= require helpers/qunit-helpers
|
2013-06-21 01:58:54 +08:00
|
|
|
//= require helpers/assertions
|
2013-06-21 02:29:59 +08:00
|
|
|
|
2014-07-31 05:53:14 +08:00
|
|
|
//= require helpers/init-ember-qunit
|
2013-06-21 01:58:54 +08:00
|
|
|
//= require_tree ./fixtures
|
2013-10-25 00:36:46 +08:00
|
|
|
//= require_tree ./lib
|
2013-06-12 23:56:59 +08:00
|
|
|
//= require_tree .
|
|
|
|
//= require_self
|
|
|
|
|
2013-06-19 04:27:40 +08:00
|
|
|
// sinon settings
|
|
|
|
sinon.config = {
|
2013-07-16 23:46:31 +08:00
|
|
|
injectIntoThis: true,
|
|
|
|
injectInto: null,
|
|
|
|
properties: ["spy", "stub", "mock", "clock", "sandbox"],
|
|
|
|
useFakeTimers: false,
|
|
|
|
useFakeServer: false
|
2013-06-19 04:27:40 +08:00
|
|
|
};
|
|
|
|
|
2013-07-25 10:06:02 +08:00
|
|
|
window.assetPath = function() { return null; };
|
2013-06-21 03:02:02 +08:00
|
|
|
|
2013-11-25 15:01:03 +08:00
|
|
|
// Stop the message bus so we don't get ajax calls
|
|
|
|
Discourse.MessageBus.stop();
|
|
|
|
|
2013-06-14 03:08:42 +08:00
|
|
|
// Trick JSHint into allow document.write
|
|
|
|
var d = document;
|
|
|
|
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>');
|
2013-06-12 23:56:59 +08:00
|
|
|
|
|
|
|
Discourse.rootElement = '#ember-testing';
|
|
|
|
Discourse.setupForTesting();
|
|
|
|
Discourse.injectTestHelpers();
|
2013-12-04 03:22:32 +08:00
|
|
|
Discourse.runInitializers();
|
2014-01-15 01:48:57 +08:00
|
|
|
Discourse.start();
|
2014-04-30 03:17:40 +08:00
|
|
|
Discourse.Route.mapRoutes();
|
2013-07-05 23:53:09 +08:00
|
|
|
|
2014-07-29 04:41:45 +08:00
|
|
|
// disable logster error reporting
|
|
|
|
if (window.Logster) {
|
|
|
|
Logster.enabled = false;
|
|
|
|
} else {
|
|
|
|
window.Logster = { enabled: false };
|
|
|
|
}
|
|
|
|
|
2014-08-01 02:51:10 +08:00
|
|
|
var origDebounce = Ember.run.debounce,
|
|
|
|
createPretendServer = require('helpers/create-pretender', null, null, false).default,
|
2014-09-27 02:48:34 +08:00
|
|
|
fixtures = require('fixtures/site_fixtures', null, null, false).default,
|
2014-08-01 02:51:10 +08:00
|
|
|
server;
|
|
|
|
|
2014-07-31 06:56:01 +08:00
|
|
|
QUnit.testStart(function(ctx) {
|
2014-08-01 02:51:10 +08:00
|
|
|
server = createPretendServer();
|
|
|
|
|
2013-07-05 23:53:09 +08:00
|
|
|
// Allow our tests to change site settings and have them reset before the next test
|
|
|
|
Discourse.SiteSettings = jQuery.extend(true, {}, Discourse.SiteSettingsOriginal);
|
2013-07-12 07:35:52 +08:00
|
|
|
Discourse.BaseUri = "/";
|
2013-07-19 00:03:09 +08:00
|
|
|
Discourse.BaseUrl = "";
|
2014-08-01 01:24:07 +08:00
|
|
|
Discourse.User.resetCurrent();
|
2014-09-27 02:48:34 +08:00
|
|
|
Discourse.Site.resetCurrent(Discourse.Site.create(fixtures['site.json'].site));
|
2014-08-01 01:24:07 +08:00
|
|
|
PreloadStore.reset();
|
2014-07-31 05:53:14 +08:00
|
|
|
|
2014-07-31 06:56:01 +08:00
|
|
|
window.sandbox = sinon.sandbox.create();
|
|
|
|
|
|
|
|
window.sandbox.stub(Discourse.ScrollingDOMMethods, "bindOnScroll");
|
|
|
|
window.sandbox.stub(Discourse.ScrollingDOMMethods, "unbindOnScroll");
|
|
|
|
|
|
|
|
// Don't debounce in test unless we're testing debouncing
|
|
|
|
if (ctx.module.indexOf('debounce') === -1) {
|
|
|
|
Ember.run.debounce = Ember.run;
|
|
|
|
}
|
2013-07-25 10:06:02 +08:00
|
|
|
});
|
2013-07-05 23:53:09 +08:00
|
|
|
|
2014-07-31 05:53:14 +08:00
|
|
|
QUnit.testDone(function() {
|
2014-07-31 06:56:01 +08:00
|
|
|
Ember.run.debounce = origDebounce;
|
|
|
|
window.sandbox.restore();
|
2014-08-01 02:17:18 +08:00
|
|
|
|
|
|
|
// Destroy any modals
|
|
|
|
$('.modal-backdrop').remove();
|
2014-08-01 02:51:10 +08:00
|
|
|
|
|
|
|
server.shutdown();
|
2014-07-31 05:53:14 +08:00
|
|
|
});
|
2014-08-01 00:05:47 +08:00
|
|
|
|
|
|
|
// Load ES6 tests
|
2014-09-27 02:48:34 +08:00
|
|
|
var helpers = require("helpers/qunit-helpers");
|
|
|
|
|
|
|
|
// TODO: Replace with proper imports rather than globals
|
|
|
|
window.asyncTestDiscourse = helpers.asyncTestDiscourse;
|
|
|
|
window.controllerFor = helpers.controllerFor;
|
|
|
|
window.fixture = helpers.fixture;
|
|
|
|
window.integration = helpers.integration;
|
|
|
|
|
|
|
|
|
2014-08-01 00:05:47 +08:00
|
|
|
Ember.keys(requirejs.entries).forEach(function(entry) {
|
|
|
|
if ((/\-test/).test(entry)) {
|
|
|
|
require(entry, null, null, true);
|
|
|
|
}
|
|
|
|
});
|