Include cdn path in the stylesheet digest.

This commit is contained in:
Guo Xiang Tan 2016-06-15 18:40:13 +08:00
parent fd91a8eee6
commit 169d17edc3
No known key found for this signature in database
GPG key ID: 19C321C8952B0F72
2 changed files with 22 additions and 4 deletions

View file

@ -59,7 +59,7 @@ class DiscourseStylesheets
def self.max_file_mtime def self.max_file_mtime
globs = ["#{Rails.root}/app/assets/stylesheets/**/*.*css"] globs = ["#{Rails.root}/app/assets/stylesheets/**/*.*css"]
for path in (Discourse.plugins || []).map { |plugin| File.dirname(plugin.path) } Discourse.plugins.map { |plugin| File.dirname(plugin.path) }.each do |path|
globs += [ globs += [
"#{path}/plugin.rb", "#{path}/plugin.rb",
"#{path}/**/*.*css", "#{path}/**/*.*css",
@ -71,8 +71,6 @@ class DiscourseStylesheets
end.compact.max.to_i end.compact.max.to_i
end end
def initialize(target = :desktop) def initialize(target = :desktop)
@target = target @target = target
end end
@ -167,7 +165,13 @@ class DiscourseStylesheets
if theme || category_updated > 0 if theme || category_updated > 0
Digest::SHA1.hexdigest "#{RailsMultisite::ConnectionManagement.current_db}-#{theme}-#{DiscourseStylesheets.last_file_updated}-#{category_updated}" Digest::SHA1.hexdigest "#{RailsMultisite::ConnectionManagement.current_db}-#{theme}-#{DiscourseStylesheets.last_file_updated}-#{category_updated}"
else else
Digest::SHA1.hexdigest "defaults-#{DiscourseStylesheets.last_file_updated}" digest_string = "defaults-#{DiscourseStylesheets.last_file_updated}"
if cdn_url = GlobalSetting.cdn_url
digest_string = "#{digest_string}-#{cdn_url}"
end
Digest::SHA1.hexdigest digest_string
end end
end end
end end

View file

@ -29,4 +29,18 @@ describe DiscourseStylesheets do
end end
end end
describe "#digest" do
before do
described_class.expects(:max_file_mtime).returns(Time.new(2016, 06, 05, 12, 30, 0, 0))
end
it "should return a digest" do
expect(described_class.new.digest).to eq('0e6c2e957cfc92ed60661c90ec3345198ccef887')
end
it "should include the cdn url when generating the digest" do
GlobalSetting.expects(:cdn_url).returns('https://fastly.maxcdn.org')
expect(described_class.new.digest).to eq('4995163b1232c54c8ed3b44200d803a90bc47613')
end
end
end end