mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
29 lines
1.1 KiB
Ruby
29 lines
1.1 KiB
Ruby
require_relative '../environment.rb'
|
|
|
|
describe ScreenshotWorker do
|
|
|
|
it 'saves a screenshot for a root html file' do
|
|
['index.html', 'derpie/derp/index.html'].each do |path|
|
|
uri = Addressable::URI.parse $config['screenshot_urls'].sample
|
|
site = Fabricate :site
|
|
|
|
base_host = "#{uri.scheme}://#{uri.host}"
|
|
if uri.port != 80 && uri.port != 443
|
|
base_host += ":#{uri.port}"
|
|
end
|
|
|
|
stub_request(:get, "#{base_host}/?url=#{site.uri}/#{path}&wait_time=#{ScreenshotWorker::PAGE_WAIT_TIME}").
|
|
with(basic_auth: [uri.user, uri.password]).
|
|
to_return(status: 200, headers: {}, body: File.read('tests/files/img/screenshot.png'))
|
|
|
|
ScreenshotWorker.new.perform site.username, path
|
|
|
|
Site::SCREENSHOT_RESOLUTIONS.each do |r|
|
|
_(File.exists?(File.join(Site::SCREENSHOTS_ROOT, Site.sharding_dir(site.username), site.username, "#{path}.#{r}.webp"))).must_equal true
|
|
_(site.screenshot_url(path, r)).must_equal(
|
|
File.join(Site::SCREENSHOTS_URL_ROOT, Site.sharding_dir(site.username), site.username, "#{path}.#{r}.webp")
|
|
)
|
|
end
|
|
end
|
|
end
|
|
end
|