2014-07-31 06:56:01 +08:00
|
|
|
/* global asyncTest */
|
2014-09-27 02:48:34 +08:00
|
|
|
|
|
|
|
import siteFixtures from 'fixtures/site_fixtures';
|
|
|
|
|
2015-02-07 02:25:48 +08:00
|
|
|
function integration(name, options) {
|
2013-07-05 04:19:59 +08:00
|
|
|
module("Integration: " + name, {
|
2013-06-21 01:58:54 +08:00
|
|
|
setup: function() {
|
|
|
|
Ember.run(Discourse, Discourse.advanceReadiness);
|
2014-09-27 02:48:34 +08:00
|
|
|
|
|
|
|
var siteJson = siteFixtures['site.json'].site;
|
2014-08-01 05:59:52 +08:00
|
|
|
if (options) {
|
|
|
|
if (options.setup) {
|
|
|
|
options.setup.call(this);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (options.user) {
|
|
|
|
Discourse.User.resetCurrent(Discourse.User.create(options.user));
|
|
|
|
}
|
2014-08-01 01:24:07 +08:00
|
|
|
|
2014-08-01 05:59:52 +08:00
|
|
|
if (options.settings) {
|
|
|
|
Discourse.SiteSettings = jQuery.extend(true, Discourse.SiteSettings, options.settings);
|
|
|
|
}
|
2014-09-27 02:48:34 +08:00
|
|
|
|
|
|
|
if (options.site) {
|
|
|
|
Discourse.Site.resetCurrent(Discourse.Site.create(jQuery.extend(true, {}, siteJson, options.site)));
|
|
|
|
}
|
2014-08-01 01:24:07 +08:00
|
|
|
}
|
2014-09-27 02:48:34 +08:00
|
|
|
|
2014-07-31 06:56:01 +08:00
|
|
|
Discourse.reset();
|
2013-06-21 01:58:54 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
teardown: function() {
|
2014-08-01 05:59:52 +08:00
|
|
|
if (options && options.teardown) {
|
|
|
|
options.teardown.call(this);
|
2013-11-06 00:42:37 +08:00
|
|
|
}
|
|
|
|
|
2013-06-21 01:58:54 +08:00
|
|
|
Discourse.reset();
|
|
|
|
}
|
|
|
|
});
|
2013-06-21 05:20:08 +08:00
|
|
|
}
|
|
|
|
|
2015-02-07 02:25:48 +08:00
|
|
|
function controllerFor(controller, model) {
|
2014-03-11 14:30:49 +08:00
|
|
|
controller = Discourse.__container__.lookup('controller:' + controller);
|
2013-06-21 05:20:08 +08:00
|
|
|
if (model) { controller.set('model', model ); }
|
|
|
|
return controller;
|
2013-07-16 07:47:13 +08:00
|
|
|
}
|
|
|
|
|
2015-02-07 02:25:48 +08:00
|
|
|
function asyncTestDiscourse(text, func) {
|
2013-07-16 07:47:13 +08:00
|
|
|
asyncTest(text, function () {
|
2013-10-07 23:36:20 +08:00
|
|
|
var self = this;
|
2013-07-16 07:47:13 +08:00
|
|
|
Ember.run(function () {
|
2013-10-07 23:36:20 +08:00
|
|
|
func.call(self);
|
2013-07-16 07:47:13 +08:00
|
|
|
});
|
|
|
|
});
|
2013-11-08 02:46:38 +08:00
|
|
|
}
|
|
|
|
|
2015-02-07 02:25:48 +08:00
|
|
|
function fixture(selector) {
|
2013-11-08 02:46:38 +08:00
|
|
|
if (selector) {
|
|
|
|
return $("#qunit-fixture").find(selector);
|
|
|
|
}
|
|
|
|
return $("#qunit-fixture");
|
|
|
|
}
|
2015-02-07 02:25:48 +08:00
|
|
|
|
|
|
|
export { integration, controllerFor, asyncTestDiscourse, fixture };
|