mirror of
https://github.com/zulip/zulip.git
synced 2025-11-15 19:31:58 +00:00
This commit changes the behavior of how we show animated emojis in the buddy list. We now show still image of animated emoji and when hovered show the animated emoji. Fixes #19521
126 lines
3.5 KiB
JavaScript
126 lines
3.5 KiB
JavaScript
"use strict";
|
|
|
|
const {strict: assert} = require("assert");
|
|
|
|
const {zrequire} = require("../zjsunit/namespace");
|
|
const {run_test} = require("../zjsunit/test");
|
|
|
|
const emoji_codes = zrequire("../generated/emoji/emoji_codes.json");
|
|
|
|
const events = require("./lib/events");
|
|
|
|
const emoji = zrequire("../shared/js/emoji");
|
|
|
|
const realm_emoji = events.test_realm_emojis;
|
|
|
|
emoji.initialize({realm_emoji, emoji_codes});
|
|
|
|
run_test("sanity check", () => {
|
|
assert.equal(emoji.get_server_realm_emoji_data(), realm_emoji);
|
|
});
|
|
|
|
run_test("get_canonical_name", () => {
|
|
let canonical_name = emoji.get_canonical_name("green_tick");
|
|
assert.equal(canonical_name, "green_tick");
|
|
|
|
canonical_name = emoji.get_canonical_name("thumbs_up");
|
|
assert.equal(canonical_name, "+1");
|
|
|
|
canonical_name = emoji.get_canonical_name("+1");
|
|
assert.equal(canonical_name, "+1");
|
|
|
|
canonical_name = emoji.get_canonical_name("airplane");
|
|
assert.equal(canonical_name, "airplane");
|
|
|
|
canonical_name = emoji.get_canonical_name("non_existent");
|
|
assert.equal(canonical_name, undefined);
|
|
});
|
|
|
|
run_test("get_emoji_* API", () => {
|
|
assert.equal(emoji.get_emoji_name("1f384"), "holiday_tree");
|
|
assert.equal(emoji.get_emoji_name("1f951"), "avocado");
|
|
assert.equal(emoji.get_emoji_name("bogus"), undefined);
|
|
|
|
assert.equal(emoji.get_emoji_codepoint("avocado"), "1f951");
|
|
assert.equal(emoji.get_emoji_codepoint("holiday_tree"), "1f384");
|
|
assert.equal(emoji.get_emoji_codepoint("bogus"), undefined);
|
|
|
|
assert.equal(emoji.get_realm_emoji_url("spain"), "/some/path/to/spain.gif");
|
|
});
|
|
|
|
run_test("get_emoji_details_by_name", () => {
|
|
let emoji_name = "smile";
|
|
|
|
let result = emoji.get_emoji_details_by_name(emoji_name);
|
|
assert.deepEqual(result, {
|
|
emoji_name: "smile",
|
|
emoji_code: "1f642",
|
|
reaction_type: "unicode_emoji",
|
|
});
|
|
|
|
// Test adding an unicode_emoji.
|
|
emoji_name = "smile";
|
|
|
|
result = emoji.get_emoji_details_by_name(emoji_name);
|
|
assert.deepEqual(result, {
|
|
emoji_name: "smile",
|
|
reaction_type: "unicode_emoji",
|
|
emoji_code: "1f642",
|
|
});
|
|
|
|
// Test adding zulip emoji.
|
|
emoji_name = "zulip";
|
|
|
|
result = emoji.get_emoji_details_by_name(emoji_name);
|
|
assert.deepEqual(result, {
|
|
emoji_name: "zulip",
|
|
reaction_type: "zulip_extra_emoji",
|
|
emoji_code: "zulip",
|
|
url: "/static/generated/emoji/images/emoji/unicode/zulip.png",
|
|
});
|
|
|
|
// Test adding realm emoji.
|
|
emoji_name = "spain";
|
|
|
|
emoji_name = emoji.get_emoji_details_by_name(emoji_name);
|
|
assert.deepEqual(emoji_name, {
|
|
emoji_name: "spain",
|
|
reaction_type: "realm_emoji",
|
|
emoji_code: "101",
|
|
url: "/some/path/to/spain.gif",
|
|
still_url: "/some/path/to/spain.png",
|
|
});
|
|
|
|
emoji_name = "green_tick";
|
|
emoji_name = emoji.get_emoji_details_by_name(emoji_name);
|
|
assert.deepEqual(emoji_name, {
|
|
emoji_name: "green_tick",
|
|
reaction_type: "realm_emoji",
|
|
emoji_code: "102",
|
|
url: "/some/path/to/emoji",
|
|
});
|
|
|
|
// Test sending without emoji name.
|
|
assert.throws(
|
|
() => {
|
|
emoji.get_emoji_details_by_name();
|
|
},
|
|
{
|
|
name: "Error",
|
|
message: "Emoji name must be passed.",
|
|
},
|
|
);
|
|
|
|
// Test sending an unknown emoji.
|
|
emoji_name = "unknown-emoji";
|
|
assert.throws(
|
|
() => {
|
|
emoji.get_emoji_details_by_name(emoji_name);
|
|
},
|
|
{
|
|
name: "Error",
|
|
message: "Bad emoji name: unknown-emoji",
|
|
},
|
|
);
|
|
});
|