mirror of
https://github.com/discourse/discourse.git
synced 2024-12-01 10:44:50 +08:00
102 lines
2.7 KiB
JavaScript
102 lines
2.7 KiB
JavaScript
import { logIn, updateCurrentUser } from "helpers/qunit-helpers";
|
|
|
|
QUnit.module("lib:discourse");
|
|
|
|
QUnit.test("getURL on subfolder install", assert => {
|
|
Discourse.BaseUri = "/forum";
|
|
assert.equal(Discourse.getURL("/"), "/forum/", "root url has subfolder");
|
|
assert.equal(
|
|
Discourse.getURL("/u/neil"),
|
|
"/forum/u/neil",
|
|
"relative url has subfolder"
|
|
);
|
|
|
|
assert.equal(
|
|
Discourse.getURL("/svg-sprite/forum.example.com/svg-sprite.js"),
|
|
"/forum/svg-sprite/forum.example.com/svg-sprite.js",
|
|
"works when the url has the prefix in the middle"
|
|
);
|
|
|
|
assert.equal(
|
|
Discourse.getURL("/forum/t/123"),
|
|
"/forum/t/123",
|
|
"does not prefix if the URL is already prefixed"
|
|
);
|
|
});
|
|
|
|
QUnit.test("getURLWithCDN on subfolder install with S3", assert => {
|
|
Discourse.BaseUri = "/forum";
|
|
|
|
Discourse.S3CDN = "https://awesome.cdn/site";
|
|
Discourse.S3BaseUrl = "//test.s3-us-west-1.amazonaws.com/site";
|
|
|
|
let url = "//test.s3-us-west-1.amazonaws.com/site/forum/awesome.png";
|
|
let expected = "https://awesome.cdn/site/forum/awesome.png";
|
|
|
|
assert.equal(Discourse.getURLWithCDN(url), expected, "at correct path");
|
|
|
|
Discourse.S3CDN = null;
|
|
Discourse.S3BaseUrl = null;
|
|
});
|
|
|
|
QUnit.test("title counts are updated correctly", assert => {
|
|
Discourse.set("hasFocus", true);
|
|
Discourse.set("contextCount", 0);
|
|
Discourse.set("notificationCount", 0);
|
|
|
|
Discourse.set("_docTitle", "Test Title");
|
|
|
|
assert.equal(document.title, "Test Title", "title is correct");
|
|
|
|
Discourse.updateNotificationCount(5);
|
|
assert.equal(document.title, "Test Title", "title doesn't change with focus");
|
|
|
|
Discourse.incrementBackgroundContextCount();
|
|
assert.equal(document.title, "Test Title", "title doesn't change with focus");
|
|
|
|
Discourse.set("hasFocus", false);
|
|
|
|
Discourse.updateNotificationCount(5);
|
|
assert.equal(
|
|
document.title,
|
|
"Test Title",
|
|
"notification count ignored for anon"
|
|
);
|
|
|
|
Discourse.incrementBackgroundContextCount();
|
|
assert.equal(
|
|
document.title,
|
|
"(1) Test Title",
|
|
"title changes when incremented for anon"
|
|
);
|
|
|
|
logIn();
|
|
updateCurrentUser({ dynamic_favicon: false });
|
|
|
|
Discourse.set("hasFocus", true);
|
|
Discourse.set("hasFocus", false);
|
|
|
|
Discourse.incrementBackgroundContextCount();
|
|
assert.equal(
|
|
document.title,
|
|
"Test Title",
|
|
"title doesn't change when incremented for logged in"
|
|
);
|
|
|
|
Discourse.updateNotificationCount(3);
|
|
assert.equal(
|
|
document.title,
|
|
"(3) Test Title",
|
|
"title includes notification count for logged in user"
|
|
);
|
|
|
|
Discourse.set("hasFocus", false);
|
|
Discourse.set("hasFocus", true);
|
|
|
|
assert.equal(
|
|
document.title,
|
|
"Test Title",
|
|
"counter dissappears after focus, and doesn't reappear until another notification arrives"
|
|
);
|
|
});
|