/*jshint maxlen:250 */ /*global document, sinon, console, QUnit, Logster */ //= require env //= require ../../app/assets/javascripts/preload_store.js // probe framework first //= require ../../app/assets/javascripts/discourse/lib/probes.js // Externals we need to load first //= require development/jquery-2.1.1.js //= require jquery.ui.widget.js //= require handlebars.js //= require development/ember.js //= require message-bus.js //= require ember-qunit.js //= require ../../app/assets/javascripts/locales/i18n //= require ../../app/assets/javascripts/discourse/helpers/i18n_helpers //= require ../../app/assets/javascripts/locales/en // Pagedown customizations //= require ../../app/assets/javascripts/pagedown_custom.js //= require ../../public/javascripts/highlight.pack.js //= require vendor //= require htmlparser.js // Stuff we need to load first //= require main_include //= require admin //= require_tree ../../app/assets/javascripts/defer //= require sinon-1.7.1 //= require sinon-qunit-1.0.0 //= require jshint //= require helpers/qunit_helpers //= require helpers/assertions //= require helpers/init-ember-qunit //= require_tree ./fixtures //= require_tree ./lib //= require_tree . //= require_self //= require jshint_all // sinon settings sinon.config = { injectIntoThis: true, injectInto: null, properties: ["spy", "stub", "mock", "clock", "sandbox"], useFakeTimers: false, useFakeServer: false }; window.assetPath = function() { return null; }; var oldAjax = $.ajax; $.ajax = function() { try { this.undef(); } catch(e) { console.error("Discourse.Ajax called in test environment (" + arguments[0] + ")\n caller: " + e.stack.split("\n").slice(2).join("\n")); } return oldAjax.apply(this, arguments); }; // Stop the message bus so we don't get ajax calls Discourse.MessageBus.stop(); // Trick JSHint into allow document.write var d = document; d.write('
'); d.write(''); Discourse.rootElement = '#ember-testing'; Discourse.setupForTesting(); Discourse.injectTestHelpers(); Discourse.runInitializers(); Discourse.start(); Discourse.Route.mapRoutes(); // disable logster error reporting if (window.Logster) { Logster.enabled = false; } else { window.Logster = { enabled: false }; } var origDebounce = Ember.run.debounce; QUnit.testStart(function(ctx) { // Allow our tests to change site settings and have them reset before the next test Discourse.SiteSettings = jQuery.extend(true, {}, Discourse.SiteSettingsOriginal); Discourse.BaseUri = "/"; Discourse.BaseUrl = ""; 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; } }); QUnit.testDone(function() { Ember.run.debounce = origDebounce; window.sandbox.restore(); }); // Load ES6 tests Ember.keys(requirejs.entries).forEach(function(entry) { if ((/\-test/).test(entry)) { require(entry, null, null, true); } });