mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
ES and TypeScript modules are strict by default and don’t need this directive. ESLint will remind us to add it to new CommonJS files and remove it from ES and TypeScript modules. Signed-off-by: Anders Kaseorg <anders@zulip.com>
140 lines
3.8 KiB
JavaScript
140 lines
3.8 KiB
JavaScript
"use strict";
|
|
|
|
const noop = () => {};
|
|
|
|
set_global("$", global.make_zjquery());
|
|
const input = $.create("input");
|
|
set_global("document", {
|
|
createElement: () => input,
|
|
execCommand: noop,
|
|
});
|
|
|
|
$("body").append = noop;
|
|
$(input).val = (arg) => {
|
|
assert.equal(arg, "iago@zulip.com");
|
|
return {
|
|
trigger: noop,
|
|
};
|
|
};
|
|
|
|
zrequire("common");
|
|
|
|
function get_key_stub_html(key_text, expected_key, obj_name) {
|
|
const key_stub = $.create(obj_name);
|
|
key_stub.text(key_text);
|
|
key_stub.expected_key = function () {
|
|
return expected_key;
|
|
};
|
|
return key_stub;
|
|
}
|
|
|
|
run_test("basics", () => {
|
|
common.autofocus("#home");
|
|
assert($("#home").is_focused());
|
|
});
|
|
|
|
run_test("phrase_match", () => {
|
|
assert(common.phrase_match("tes", "test"));
|
|
assert(common.phrase_match("Tes", "test"));
|
|
assert(common.phrase_match("Tes", "Test"));
|
|
assert(common.phrase_match("tes", "Stream Test"));
|
|
|
|
assert(!common.phrase_match("tests", "test"));
|
|
assert(!common.phrase_match("tes", "hostess"));
|
|
});
|
|
|
|
run_test("copy_data_attribute_value", () => {
|
|
const elem = $.create(".envelope-link");
|
|
elem.data = (key) => {
|
|
if (key === "admin-emails") {
|
|
return "iago@zulip.com";
|
|
}
|
|
return "";
|
|
};
|
|
elem.fadeOut = (val) => {
|
|
assert.equal(val, 250);
|
|
};
|
|
elem.fadeIn = (val) => {
|
|
assert.equal(val, 1000);
|
|
};
|
|
common.copy_data_attribute_value(elem, "admin-emails");
|
|
});
|
|
|
|
run_test("adjust_mac_shortcuts", () => {
|
|
const keys_to_test_mac = new Map([
|
|
["Backspace", "Delete"],
|
|
["Enter", "Return"],
|
|
["Home", "Fn + ←"],
|
|
["End", "Fn + →"],
|
|
["PgUp", "Fn + ↑"],
|
|
["PgDn", "Fn + ↓"],
|
|
["X + Shift", "X + Shift"],
|
|
["⌘ + Return", "⌘ + Return"],
|
|
["Enter or Backspace", "Return or Delete"],
|
|
["Ctrl", "⌘"],
|
|
["Ctrl + Shift", "⌘ + Shift"],
|
|
["Ctrl + Backspace + End", "⌘ + Delete + Fn + →"],
|
|
]);
|
|
const keys_to_test_non_mac = new Map([
|
|
["Backspace", "Backspace"],
|
|
["Enter", "Enter"],
|
|
["Home", "Home"],
|
|
["End", "End"],
|
|
["PgUp", "PgUp"],
|
|
["PgDn", "PgDn"],
|
|
["X + Shift", "X + Shift"],
|
|
["⌘ + Return", "⌘ + Return"],
|
|
["Ctrl + Shift", "Ctrl + Shift"],
|
|
["Ctrl + Backspace + End", "Ctrl + Backspace + End"],
|
|
]);
|
|
|
|
let key_no;
|
|
let keys_elem_list = [];
|
|
|
|
common.has_mac_keyboard = function () {
|
|
return false;
|
|
};
|
|
key_no = 1;
|
|
keys_to_test_non_mac.forEach((value, key) => {
|
|
keys_elem_list.push(get_key_stub_html(key, value, "hotkey_non_mac_" + key_no));
|
|
key_no += 1;
|
|
});
|
|
|
|
common.adjust_mac_shortcuts(".markdown_content");
|
|
keys_elem_list.forEach((key_elem) => {
|
|
assert(key_elem.text(), key_elem.expected_key());
|
|
});
|
|
|
|
keys_elem_list = [];
|
|
key_no = 1;
|
|
common.has_mac_keyboard = function () {
|
|
return true;
|
|
};
|
|
keys_to_test_mac.forEach((value, key) => {
|
|
keys_elem_list.push(get_key_stub_html(key, value, "hotkey_" + key_no));
|
|
key_no += 1;
|
|
});
|
|
|
|
$(".markdown_content").each = (f) => {
|
|
for (let key_id = 0; key_id < keys_elem_list.length; key_id += 1) {
|
|
f.call(keys_elem_list[key_id]);
|
|
}
|
|
};
|
|
common.adjust_mac_shortcuts(".markdown_content");
|
|
keys_elem_list.forEach((key_elem) => {
|
|
assert.equal(key_elem.text(), key_elem.expected_key());
|
|
});
|
|
|
|
const markdown_hotkey_1 = get_key_stub_html(
|
|
"Ctrl + Backspace",
|
|
"⌘ + Delete",
|
|
"markdown_hotkey_1",
|
|
);
|
|
$(".markdown_content").each = (f) => {
|
|
f.call(markdown_hotkey_1);
|
|
};
|
|
common.adjust_mac_shortcuts(".markdown_content", true);
|
|
assert.equal(markdown_hotkey_1.text(), markdown_hotkey_1.expected_key());
|
|
assert.equal(markdown_hotkey_1.hasClass("mac-cmd-key"), true);
|
|
});
|