fix missing rtl stylesheets

This commit is contained in:
Sam 2015-05-23 15:25:05 +10:00
parent 2f850510d7
commit bcaed90744
3 changed files with 19 additions and 3 deletions

View File

@ -5,7 +5,7 @@ class StylesheetsController < ApplicationController
no_cookies
target,digest = params[:name].split("_")
target,digest = params[:name].split(/_([a-f0-9]{40})/)
cache_time = request.env["HTTP_IF_MODIFIED_SINCE"]
cache_time = Time.rfc2822(cache_time) rescue nil if cache_time

View File

@ -15,6 +15,7 @@ class DiscourseStylesheets
end
def self.stylesheet_link_tag(target = :desktop)
tag = cache[target]
return tag.dup.html_safe if tag

View File

@ -3,21 +3,36 @@ require 'spec_helper'
describe StylesheetsController do
it 'can survive cache miss' do
DiscourseStylesheets.cache.clear
DiscourseStylesheets.stylesheet_link_tag('desktop_rtl')
StylesheetCache.destroy_all
builder = DiscourseStylesheets.new('desktop_rtl')
builder.compile
digest = StylesheetCache.first.digest
StylesheetCache.destroy_all
# digestless
get :show, name: 'desktop_rtl'
expect(response).to be_success
StylesheetCache.destroy_all
get :show, name: "desktop_rtl_#{digest}"
expect(response).to be_success
cached = StylesheetCache.first
expect(cached.target).to eq 'desktop_rtl'
expect(cached.digest).to eq digest
# tmp folder destruction and cached
`rm #{DiscourseStylesheets.cache_fullpath}/*`
get :show, name: 'desktop_rtl'
expect(response).to be_success
get :show, name: "desktop_rtl_#{digest}"
expect(response).to be_success
# there is an edge case which is ... disk and db cache is nuked, very unlikely to happen
end