mirror of
https://github.com/zulip/zulip.git
synced 2025-11-11 09:27:43 +00:00
In case of video embeds, the previous logic used
`data-src-fullsize` or `src` as a key to look
for the metadata of video in `lightbox.open()`,
but while parsing, the key used while storing
the metadata was the video ID.
This doesn't make any sense because video's data
could never be accessed from `asset_map` and we
always needed to lookup the DOM for this.
This commit fixes this by using $img.attr('src')
as a key for `asset_map` for both, images and
videos. Since `src` is the link of preview image
in case of video embeds, it will always uniquely
determine the video ID and we won't loose
anything with the change in how videos handle
things.
Part of #14152.
81 lines
1.9 KiB
JavaScript
81 lines
1.9 KiB
JavaScript
zrequire('rows');
|
|
zrequire('lightbox');
|
|
|
|
set_global('message_store', {});
|
|
set_global('Image', class Image {});
|
|
set_global('overlays', {
|
|
close_overlay: () => {},
|
|
close_active: () => {},
|
|
open_overlay: () => {},
|
|
});
|
|
set_global('popovers', {
|
|
hide_all: () => {},
|
|
});
|
|
|
|
rows.is_draft_row = () => false;
|
|
|
|
set_global('$', global.make_zjquery());
|
|
|
|
run_test('pan_and_zoom', () => {
|
|
$.clear_all_elements();
|
|
|
|
const img = $.create('img-stub');
|
|
const link = $.create('link-stub');
|
|
const msg = $.create('msg-stub');
|
|
|
|
$(img).closest = () => [];
|
|
|
|
img.set_parent(link);
|
|
link.closest = () => msg;
|
|
msg.attr("zid", "1234");
|
|
img.attr("src", "example");
|
|
|
|
let fetched_zid;
|
|
|
|
message_store.get = (zid) => {
|
|
fetched_zid = zid;
|
|
return 'message-stub';
|
|
};
|
|
|
|
// Used by render_lightbox_list_images
|
|
$.stub_selector('.focused_table .message_inline_image img', []);
|
|
|
|
lightbox.open(img);
|
|
assert.equal(blueslip.get_test_logs('error').length, 0);
|
|
|
|
assert.equal(fetched_zid, 1234);
|
|
});
|
|
|
|
run_test('youtube', () => {
|
|
$.clear_all_elements();
|
|
|
|
const href = 'https://youtube.com/some-random-clip';
|
|
const img = $.create('img-stub');
|
|
const link = $.create('link-stub');
|
|
const msg = $.create('msg-stub');
|
|
|
|
msg.attr("zid", "4321");
|
|
|
|
$(img).attr('src', href);
|
|
|
|
$(img).closest = (sel) => {
|
|
if (sel === '.youtube-video') {
|
|
// We just need a nonempty array to
|
|
// set is_youtube_video to true.
|
|
return ['whatever'];
|
|
}
|
|
return [];
|
|
};
|
|
|
|
img.set_parent(link);
|
|
link.closest = () => msg;
|
|
link.attr('href', href);
|
|
|
|
// Used by render_lightbox_list_images
|
|
$.stub_selector('.focused_table .message_inline_image img', []);
|
|
|
|
lightbox.open(img);
|
|
assert.equal($('.image-actions .open').attr('href'), href);
|
|
assert.equal(blueslip.get_test_logs('error').length, 0);
|
|
});
|