mirror of
https://github.com/discourse/discourse.git
synced 2025-04-26 09:34:30 +08:00
FIX: best effort at returning correct mime types in manifest.json
This commit is contained in:
parent
53f8f6095d
commit
41ffafb65e
@ -30,7 +30,7 @@ class MetadataController < ApplicationController
|
||||
{
|
||||
src: logo,
|
||||
sizes: "512x512",
|
||||
type: "image/png"
|
||||
type: guess_mime(logo)
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -49,4 +49,11 @@ class MetadataController < ApplicationController
|
||||
|
||||
manifest
|
||||
end
|
||||
|
||||
def guess_mime(filename)
|
||||
extension = filename.split(".").last
|
||||
valid_image_mimes = { png: "image/png", jpg: "image/jpeg", jpeg: "image/jpeg", gif: "image/gif", ico: "image/x-icon" }
|
||||
valid_image_mimes[extension.to_sym] || "image/png"
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -15,6 +15,20 @@ RSpec.describe MetadataController do
|
||||
expect(manifest["name"]).to eq(title)
|
||||
expect(manifest["icons"].first["src"]).to eq("http://big.square/png")
|
||||
end
|
||||
|
||||
it 'can guess mime types' do
|
||||
SiteSetting.large_icon_url = "http://big.square/ico.ico"
|
||||
get :manifest
|
||||
manifest = JSON.parse(response.body)
|
||||
expect(manifest["icons"].first["type"]).to eq("image/x-icon")
|
||||
end
|
||||
|
||||
it 'defaults to png' do
|
||||
SiteSetting.large_icon_url = "http://big.square/noidea.bogus"
|
||||
get :manifest
|
||||
manifest = JSON.parse(response.body)
|
||||
expect(manifest["icons"].first["type"]).to eq("image/png")
|
||||
end
|
||||
end
|
||||
|
||||
describe 'opensearch.xml' do
|
||||
|
Loading…
x
Reference in New Issue
Block a user