discourse/test/javascripts/controllers/site-map-test.js.es6

78 lines
2.8 KiB
Text
Raw Normal View History

2014-07-30 18:56:01 -04:00
var oldMobileView;
2013-11-27 15:58:36 -05:00
2014-07-30 18:56:01 -04:00
moduleFor("controller:site-map", "controller:site-map", {
needs: ['controller:application', 'controller:header'],
2013-11-27 15:58:36 -05:00
setup: function() {
oldMobileView = Discourse.Mobile.mobileView;
},
teardown: function() {
Discourse.Mobile.mobileView = oldMobileView;
}
});
test("showAdminLinks", function() {
const currentUser = Ember.Object.create({ staff: true });
const controller = this.subject({ currentUser });
2013-11-27 15:58:36 -05:00
equal(controller.get("showAdminLinks"), true, "is true when current user is a staff member");
currentUser.set("staff", false);
2013-11-27 15:58:36 -05:00
equal(controller.get("showAdminLinks"), false, "is false when current user is not a staff member");
});
test("faqUrl returns faq url configured in site settings if it is set", function() {
Discourse.SiteSettings.faq_url = "faq-url";
2014-07-30 18:56:01 -04:00
var controller = this.subject();
2013-11-27 15:58:36 -05:00
equal(controller.get("faqUrl"), "faq-url");
});
test("faqUrl returns default '/faq' url when there is no corresponding site setting set", function() {
Discourse.SiteSettings.faq_url = null;
2014-07-30 18:56:01 -04:00
var controller = this.subject();
2013-11-27 15:58:36 -05:00
equal(controller.get("faqUrl"), "/faq");
});
test("showMoblieToggle returns true when mobile theme is enabled in site settings", function() {
Discourse.SiteSettings.enable_mobile_theme = true;
2014-07-27 22:05:27 -04:00
Discourse.Mobile.isMobileDevice = true;
2014-07-30 18:56:01 -04:00
var controller = this.subject();
controller.capabilities = { touch: true };
2013-11-27 15:58:36 -05:00
equal(controller.get("showMobileToggle"), true);
});
test("showMoblieToggle returns false when mobile theme is disabled in site settings", function() {
Discourse.SiteSettings.enable_mobile_theme = false;
2014-07-27 22:05:27 -04:00
Discourse.Mobile.isMobileDevice = true;
2014-07-30 18:56:01 -04:00
var controller = this.subject();
2013-11-27 15:58:36 -05:00
equal(controller.get("showMobileToggle"), false);
});
test("mobileViewLinkTextKey returns translation key for a desktop view if the current view is mobile view", function() {
Discourse.Mobile.mobileView = true;
2014-07-30 18:56:01 -04:00
var controller = this.subject();
2013-11-27 15:58:36 -05:00
equal(controller.get("mobileViewLinkTextKey"), "desktop_view");
});
test("mobileViewLinkTextKey returns translation key for a mobile view if the current view is desktop view", function() {
Discourse.Mobile.mobileView = false;
2014-07-30 18:56:01 -04:00
var controller = this.subject();
2013-11-27 15:58:36 -05:00
equal(controller.get("mobileViewLinkTextKey"), "mobile_view");
});
test("categories", function() {
var categoryListStub = ["category1", "category2"];
2014-07-30 18:56:01 -04:00
sandbox.stub(Discourse.Category, "list").returns(categoryListStub);
2013-11-27 15:58:36 -05:00
var controller = this.subject({ siteSettings: Discourse.SiteSettings });
deepEqual(controller.get("categories"), categoryListStub, "returns the list of categories");
2013-11-27 15:58:36 -05:00
});
test("toggleMobleView", function() {
2014-07-30 18:56:01 -04:00
sandbox.stub(Discourse.Mobile, "toggleMobileView");
2013-11-27 15:58:36 -05:00
2014-07-30 18:56:01 -04:00
var controller = this.subject();
2013-11-27 15:58:36 -05:00
controller.send("toggleMobileView");
ok(Discourse.Mobile.toggleMobileView.calledOnce, "switches between desktop and mobile views");
});