require 'rails_helper' require 'jobs/regular/pull_hotlinked_images' describe Jobs::PullHotlinkedImages do describe '#execute' do let(:image_url) { "http://wiki.mozilla.org/images/2/2e/Longcat1.png" } let(:png) { Base64.decode64("R0lGODlhAQABALMAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwICAgP8AAAD/AP//AAAA//8A/wD//wBiZCH5BAEAAA8ALAAAAAABAAEAAAQC8EUAOw==") } before do stub_request(:get, image_url).to_return(body: png, headers: { "Content-Type" => "image/png" }) stub_request(:head, image_url) SiteSetting.download_remote_images_to_local = true FastImage.expects(:size).returns([100, 100]).at_least_once end it 'replaces images' do post = Fabricate(:post, raw: "") Jobs::PullHotlinkedImages.new.execute(post_id: post.id) post.reload expect(post.raw).to match(/^") Jobs::PullHotlinkedImages.new.execute(post_id: post.id) post.reload expect(post.raw).to match(/^ "image/png" }) stub_request(:head, extensionless_url) post = Fabricate(:post, raw: "") Jobs::PullHotlinkedImages.new.execute(post_id: post.id) post.reload expect(post.raw).to match(/^