2019-05-03 06:17:27 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-05-01 21:44:45 +08:00
|
|
|
require 'rails_helper'
|
|
|
|
|
|
|
|
class GlobalPathInstance
|
|
|
|
extend GlobalPath
|
|
|
|
end
|
|
|
|
|
|
|
|
describe SiteIconManager do
|
|
|
|
before do
|
|
|
|
SiteIconManager.enable
|
|
|
|
end
|
|
|
|
|
|
|
|
let(:upload) do
|
|
|
|
UploadCreator.new(file_from_fixtures("smallest.png"), 'logo.png').create_for(Discourse.system_user.id)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "works correctly" do
|
|
|
|
SiteSetting.logo = nil
|
|
|
|
SiteSetting.logo_small = nil
|
|
|
|
|
|
|
|
# Falls back to sketch for some icons
|
|
|
|
expect(SiteIconManager.favicon.upload_id).to eq(SiteIconManager::SKETCH_LOGO_ID)
|
|
|
|
expect(SiteIconManager.mobile_logo).to eq(nil)
|
|
|
|
|
|
|
|
SiteSetting.logo_small = upload
|
|
|
|
|
|
|
|
# Always resizes to 512x512
|
|
|
|
manifest = SiteIconManager.manifest_icon
|
|
|
|
expect(manifest.upload_id).to eq(upload.id)
|
|
|
|
expect(manifest.width).to eq(512)
|
|
|
|
expect(manifest.height).to eq(512)
|
|
|
|
|
|
|
|
# Always resizes to 32x32
|
|
|
|
favicon = SiteIconManager.favicon
|
|
|
|
expect(favicon.upload_id).to eq(upload.id)
|
|
|
|
expect(favicon.width).to eq(32)
|
|
|
|
expect(favicon.height).to eq(32)
|
|
|
|
|
|
|
|
# Don't resize
|
|
|
|
opengraph = SiteIconManager.opengraph_image
|
|
|
|
expect(opengraph).to eq(upload)
|
|
|
|
|
|
|
|
# Site Setting integration
|
|
|
|
expect(SiteSetting.manifest_icon).to eq(nil)
|
|
|
|
expect(SiteSetting.site_manifest_icon_url).to eq(GlobalPathInstance.full_cdn_url(manifest.url))
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|