FIX: embedded comments not working when theme is missing

This commit is contained in:
Sam 2017-04-20 10:31:23 -04:00
parent b4b864047c
commit e119c6e01e
2 changed files with 19 additions and 3 deletions

View File

@ -41,10 +41,14 @@ class Stylesheet::Manager
@lock.synchronize do
builder = self.new(target, theme_key)
builder.compile unless File.exists?(builder.stylesheet_fullpath)
tag = %[<link href="#{builder.stylesheet_path}" media="#{media}" rel="stylesheet" data-target="#{target}"/>]
cache[cache_key] = tag
if builder.is_theme? && !builder.theme
tag = ""
else
builder.compile unless File.exists?(builder.stylesheet_fullpath)
tag = %[<link href="#{builder.stylesheet_path}" media="#{media}" rel="stylesheet" data-target="#{target}"/>]
end
cache[cache_key] = tag
tag.dup.html_safe
end
end

View File

@ -2,6 +2,18 @@ require 'rails_helper'
require 'stylesheet/compiler'
describe Stylesheet::Manager do
it 'does not crash for missing theme' do
link = Stylesheet::Manager.stylesheet_link_tag(:embedded_theme)
expect(link).to eq("")
theme = Theme.create(name: "embedded", user_id: -1)
SiteSetting.default_theme_key = theme.key
link = Stylesheet::Manager.stylesheet_link_tag(:embedded_theme)
expect(link).not_to eq("")
end
it 'can correctly compile theme css' do
theme = Theme.new(
name: 'parent',