mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	We stub out jquery elements rather than giving the illusion of having real DOM. Also, we make it so that the message_store interaction has an assertion attached to it.
		
			
				
	
	
		
			77 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
zrequire('lightbox');
 | 
						|
 | 
						|
set_global('blueslip', global.make_zblueslip());
 | 
						|
 | 
						|
set_global('message_store', {});
 | 
						|
set_global('Image', class Image {});
 | 
						|
set_global('overlays', {
 | 
						|
    close_overlay: () => {},
 | 
						|
    close_active: () => {},
 | 
						|
    open_overlay: () => {},
 | 
						|
});
 | 
						|
set_global('popovers', {
 | 
						|
    hide_all: () => {},
 | 
						|
});
 | 
						|
 | 
						|
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");
 | 
						|
 | 
						|
    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');
 | 
						|
 | 
						|
    $(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);
 | 
						|
});
 |