set_global("$", global.make_zjquery()); set_global("page_params", { emojiset: "google", realm_emoji: {}, }); set_global("upload_widget", {}); zrequire("emoji"); zrequire("settings_emoji"); run_test("build_emoji_upload_widget", () => { let build_widget_stub = false; upload_widget.build_widget = function ( get_file_input, file_name_field, input_error, clear_button, upload_button, ) { assert.deepEqual(get_file_input(), $("#emoji_file_input")); assert.deepEqual(file_name_field, $("#emoji-file-name")); assert.deepEqual(input_error, $("#emoji_file_input_error")); assert.deepEqual(clear_button, $("#emoji_image_clear_button")); assert.deepEqual(upload_button, $("#emoji_upload_button")); build_widget_stub = true; }; settings_emoji.build_emoji_upload_widget(); assert(build_widget_stub); }); run_test("get_canonical_name", () => { emoji.active_realm_emojis = new Map( Object.entries({ realm_emoji: "TBD", }), ); let canonical_name = emoji.get_canonical_name("realm_emoji"); assert.equal(canonical_name, "realm_emoji"); 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"); blueslip.expect("error", "Invalid emoji name: non_existent"); emoji.get_canonical_name("non_existent"); }); function set_up_spain_realm_emoji_for_test() { const realm_emojis = { 101: { id: 101, name: "spain", source_url: "/some/path/to/spain.png", deactivated: false, }, }; emoji.update_emojis(realm_emojis); } 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"), undefined); set_up_spain_realm_emoji_for_test(); assert.equal(emoji.get_realm_emoji_url("spain"), "/some/path/to/spain.png"); });