mirror of
https://github.com/discourse/discourse.git
synced 2025-05-30 15:28:37 +08:00
FEATURE: move migrate_to_new_scheme into a background job
- new hidden site setting 'migrate_to_new_scheme' (defaults to false) - new rake tasks to toggle migration to new scheme - FIX: migrate_to_new_scheme also works with CDN - PERF: improve perf of the DbHelper.remap method - REFACTOR: UrlHelper is now a class
This commit is contained in:
@ -3,33 +3,27 @@ require_dependency 'url_helper'
|
||||
|
||||
describe UrlHelper do
|
||||
|
||||
class DummyClass
|
||||
include UrlHelper
|
||||
end
|
||||
|
||||
let(:helper) { DummyClass.new }
|
||||
|
||||
describe "#is_local" do
|
||||
|
||||
it "is true when the file has been uploaded" do
|
||||
store = stub
|
||||
store.expects(:has_been_uploaded?).returns(true)
|
||||
Discourse.stubs(:store).returns(store)
|
||||
expect(helper.is_local("http://discuss.site.com/path/to/file.png")).to eq(true)
|
||||
expect(UrlHelper.is_local("http://discuss.site.com/path/to/file.png")).to eq(true)
|
||||
end
|
||||
|
||||
it "is true for relative assets" do
|
||||
store = stub
|
||||
store.expects(:has_been_uploaded?).returns(false)
|
||||
Discourse.stubs(:store).returns(store)
|
||||
expect(helper.is_local("/assets/javascripts/all.js")).to eq(true)
|
||||
expect(UrlHelper.is_local("/assets/javascripts/all.js")).to eq(true)
|
||||
end
|
||||
|
||||
it "is true for plugin assets" do
|
||||
store = stub
|
||||
store.expects(:has_been_uploaded?).returns(false)
|
||||
Discourse.stubs(:store).returns(store)
|
||||
expect(helper.is_local("/plugins/all.js")).to eq(true)
|
||||
expect(UrlHelper.is_local("/plugins/all.js")).to eq(true)
|
||||
end
|
||||
|
||||
end
|
||||
@ -37,16 +31,16 @@ describe UrlHelper do
|
||||
describe "#absolute" do
|
||||
|
||||
it "does not change non-relative url" do
|
||||
expect(helper.absolute("http://www.discourse.org")).to eq("http://www.discourse.org")
|
||||
expect(UrlHelper.absolute("http://www.discourse.org")).to eq("http://www.discourse.org")
|
||||
end
|
||||
|
||||
it "changes a relative url to an absolute one using base url by default" do
|
||||
expect(helper.absolute("/path/to/file")).to eq("http://test.localhost/path/to/file")
|
||||
expect(UrlHelper.absolute("/path/to/file")).to eq("http://test.localhost/path/to/file")
|
||||
end
|
||||
|
||||
it "changes a relative url to an absolute one using the cdn when enabled" do
|
||||
Rails.configuration.action_controller.stubs(:asset_host).returns("http://my.cdn.com")
|
||||
expect(helper.absolute("/path/to/file")).to eq("http://my.cdn.com/path/to/file")
|
||||
expect(UrlHelper.absolute("/path/to/file")).to eq("http://my.cdn.com/path/to/file")
|
||||
end
|
||||
|
||||
end
|
||||
@ -55,7 +49,7 @@ describe UrlHelper do
|
||||
|
||||
it "changes a relative url to an absolute one using base url even when cdn is enabled" do
|
||||
Rails.configuration.action_controller.stubs(:asset_host).returns("http://my.cdn.com")
|
||||
expect(helper.absolute_without_cdn("/path/to/file")).to eq("http://test.localhost/path/to/file")
|
||||
expect(UrlHelper.absolute_without_cdn("/path/to/file")).to eq("http://test.localhost/path/to/file")
|
||||
end
|
||||
|
||||
end
|
||||
@ -63,9 +57,9 @@ describe UrlHelper do
|
||||
describe "#schemaless" do
|
||||
|
||||
it "removes http or https schemas only" do
|
||||
expect(helper.schemaless("http://www.discourse.org")).to eq("//www.discourse.org")
|
||||
expect(helper.schemaless("https://secure.discourse.org")).to eq("//secure.discourse.org")
|
||||
expect(helper.schemaless("ftp://ftp.discourse.org")).to eq("ftp://ftp.discourse.org")
|
||||
expect(UrlHelper.schemaless("http://www.discourse.org")).to eq("//www.discourse.org")
|
||||
expect(UrlHelper.schemaless("https://secure.discourse.org")).to eq("//secure.discourse.org")
|
||||
expect(UrlHelper.schemaless("ftp://ftp.discourse.org")).to eq("ftp://ftp.discourse.org")
|
||||
end
|
||||
|
||||
end
|
||||
|
Reference in New Issue
Block a user