2014-07-31 14:51:10 -04:00
/*global document, sinon, QUnit, Logster */
2013-06-12 11:56:59 -04:00
//= require env
2014-07-31 14:51:10 -04:00
//= require ../../app/assets/javascripts/preload_store
2015-08-10 17:11:27 -04:00
//= require probes
2015-04-29 14:57:08 -04:00
//= require jquery.debug
2014-07-31 14:51:10 -04:00
//= require jquery.ui.widget
//= require handlebars
2015-08-11 17:34:02 -04:00
//= require ember.debug
2015-11-25 13:57:10 +11:00
//= require ember-template-compiler
2014-07-31 14:51:10 -04:00
//= require message-bus
//= require ember-qunit
//= require fake_xml_http_request
//= require route-recognizer
//= require pretender
2013-06-12 11:56:59 -04:00
//= require ../../app/assets/javascripts/locales/i18n
//= require ../../app/assets/javascripts/locales/en
2013-06-18 16:27:40 -04:00
2013-12-23 10:41:10 +11:00
//= require vendor
2014-07-09 16:27:47 +02:00
2013-10-25 15:23:29 -04:00
//= require htmlparser.js
2013-06-12 11:56:59 -04:00
// Stuff we need to load first
//= require main_include
//= require admin
//= require_tree ../../app/assets/javascripts/defer
2013-06-21 14:06:20 -04:00
//= require sinon-1.7.1
//= require sinon-qunit-1.0.0
2013-06-18 16:27:40 -04:00
2014-09-26 14:48:34 -04:00
//= require helpers/qunit-helpers
2013-06-20 13:58:54 -04:00
//= require helpers/assertions
2013-06-20 14:29:59 -04:00
2014-07-30 17:53:14 -04:00
//= require helpers/init-ember-qunit
2013-06-20 13:58:54 -04:00
//= require_tree ./fixtures
2013-10-24 12:36:46 -04:00
//= require_tree ./lib
2013-06-12 11:56:59 -04:00
//= require_tree .
2015-08-27 16:59:36 -04:00
//= require plugin_tests
2013-06-12 11:56:59 -04:00
//= require_self
2015-03-13 17:45:55 +11:00
//
//= require ../../public/javascripts/jquery.magnific-popup-min.js
2013-06-12 11:56:59 -04:00
2015-04-01 14:18:46 -04:00
window . assetPath = function ( url ) {
if ( url . indexOf ( 'defer' ) === 0 ) {
return "/assets/" + url ;
}
} ;
2013-06-20 15:02:02 -04:00
2013-11-25 18:01:03 +11:00
// Stop the message bus so we don't get ajax calls
2015-03-12 12:12:23 -04:00
window . MessageBus . stop ( ) ;
2013-11-25 18:01:03 +11:00
2013-06-13 15:08:42 -04: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 11:56:59 -04:00
Discourse . rootElement = '#ember-testing' ;
Discourse . setupForTesting ( ) ;
Discourse . injectTestHelpers ( ) ;
2014-01-14 12:48:57 -05:00
Discourse . start ( ) ;
2013-07-05 11:53:09 -04:00
2014-07-28 13:41:45 -07:00
// disable logster error reporting
if ( window . Logster ) {
Logster . enabled = false ;
} else {
window . Logster = { enabled : false } ;
}
2014-07-31 14:51:10 -04:00
var origDebounce = Ember . run . debounce ,
createPretendServer = require ( 'helpers/create-pretender' , null , null , false ) . default ,
2015-08-25 12:50:19 -04:00
fixtures = require ( 'fixtures/site-fixtures' , null , null , false ) . default ,
2015-04-08 14:44:44 -04:00
flushMap = require ( 'discourse/models/store' , null , null , false ) . flushMap ,
2015-08-07 15:08:27 -04:00
ScrollingDOMMethods = require ( 'discourse/mixins/scrolling' , null , null , false ) . ScrollingDOMMethods ,
2015-08-10 17:11:27 -04:00
_DiscourseURL = require ( 'discourse/lib/url' , null , null , false ) . default ,
2014-07-31 14:51:10 -04:00
server ;
2015-07-03 14:57:07 -04:00
function dup ( obj ) {
return jQuery . extend ( true , { } , obj ) ;
}
2014-07-30 18:56:01 -04:00
QUnit . testStart ( function ( ctx ) {
2014-07-31 14:51:10 -04:00
server = createPretendServer ( ) ;
2013-07-05 11:53:09 -04:00
// Allow our tests to change site settings and have them reset before the next test
2015-07-03 14:57:07 -04:00
Discourse . SiteSettings = dup ( Discourse . SiteSettingsOriginal ) ;
2015-09-06 20:20:59 -07:00
Discourse . BaseUri = "" ;
2015-04-16 10:15:06 +02:00
Discourse . BaseUrl = "localhost" ;
2015-08-07 15:08:27 -04:00
Discourse . Session . resetCurrent ( ) ;
2014-07-31 13:24:07 -04:00
Discourse . User . resetCurrent ( ) ;
2015-07-03 14:57:07 -04:00
Discourse . Site . resetCurrent ( Discourse . Site . create ( dup ( fixtures [ 'site.json' ] . site ) ) ) ;
2015-07-02 12:06:24 -04:00
2015-08-10 17:11:27 -04:00
_DiscourseURL . redirectedTo = null ;
_DiscourseURL . redirectTo = function ( url ) {
_DiscourseURL . redirectedTo = url ;
2015-07-02 12:06:24 -04:00
} ;
2014-07-31 13:24:07 -04:00
PreloadStore . reset ( ) ;
2014-07-30 17:53:14 -04:00
2014-07-30 18:56:01 -04:00
window . sandbox = sinon . sandbox . create ( ) ;
2015-09-09 16:20:08 -04:00
window . sandbox . stub ( ScrollingDOMMethods , "screenNotFull" ) ;
2015-08-07 15:08:27 -04:00
window . sandbox . stub ( ScrollingDOMMethods , "bindOnScroll" ) ;
window . sandbox . stub ( ScrollingDOMMethods , "unbindOnScroll" ) ;
2014-07-30 18:56:01 -04:00
2015-09-28 14:01:16 -04:00
// Unless we ever need to test this, let's leave it off.
$ . fn . autocomplete = Ember . K ;
2014-07-30 18:56:01 -04:00
// Don't debounce in test unless we're testing debouncing
if ( ctx . module . indexOf ( 'debounce' ) === - 1 ) {
Ember . run . debounce = Ember . run ;
}
2013-07-25 12:06:02 +10:00
} ) ;
2013-07-05 11:53:09 -04:00
2015-04-16 11:47:18 -04:00
// Don't cloak in testing
Ember . CloakedCollectionView = Ember . CollectionView ;
2014-07-30 17:53:14 -04:00
QUnit . testDone ( function ( ) {
2014-07-30 18:56:01 -04:00
Ember . run . debounce = origDebounce ;
window . sandbox . restore ( ) ;
2014-07-31 14:17:18 -04:00
// Destroy any modals
$ ( '.modal-backdrop' ) . remove ( ) ;
2015-04-08 14:44:44 -04:00
flushMap ( ) ;
2014-07-31 14:51:10 -04:00
server . shutdown ( ) ;
2014-07-30 17:53:14 -04:00
} ) ;
2014-07-31 12:05:47 -04:00
// Load ES6 tests
2014-09-26 14:48:34 -04: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 ;
2014-07-31 12:05:47 -04:00
Ember . keys ( requirejs . entries ) . forEach ( function ( entry ) {
if ( ( /\-test/ ) . test ( entry ) ) {
require ( entry , null , null , true ) ;
}
} ) ;