Skip to content

Commit

Permalink
Use Regexp.escape instead of escaping dots only
Browse files Browse the repository at this point in the history
  • Loading branch information
ahukkanen committed Apr 17, 2024
1 parent 9272758 commit ac22423
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions decidim-core/spec/uploaders/application_uploader_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,29 +49,29 @@ module Decidim
let(:default_port) { Rails.env.development? ? 3000 : Capybara.server_port }

it "returns a URL containing the port only" do
expect(subject.variant_url(:testing)).to match(%r{^http://#{hostname.gsub(".", "\\.")}:#{default_port}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
expect(subject.variant_url(:testing)).to match(%r{^http://#{Regexp.escape(hostname)}:#{default_port}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
end

context "when force_ssl is enabled" do
include_context "with force_ssl enabled"

it "returns a URL containing the port and protocol" do
expect(subject.variant_url(:testing)).to match(%r{^https://#{hostname.gsub(".", "\\.")}:#{default_port}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
expect(subject.variant_url(:testing)).to match(%r{^https://#{Regexp.escape(hostname)}:#{default_port}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
end

context "and the PORT environment variable is defined as 3001" do
let(:local_port) { 3001 }

it "returns a URL containing the port and protocol" do
expect(subject.variant_url(:testing)).to match(%r{^https://#{hostname.gsub(".", "\\.")}:3001/rails/active_storage/disk/[^/]+/avatar\.jpg$})
expect(subject.variant_url(:testing)).to match(%r{^https://#{Regexp.escape(hostname)}:3001/rails/active_storage/disk/[^/]+/avatar\.jpg$})
end
end

context "and the PORT environment variable is defined as 443" do
let(:local_port) { 443 }

it "returns a URL containing the protocol only" do
expect(subject.variant_url(:testing)).to match(%r{^https://#{hostname.gsub(".", "\\.")}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
expect(subject.variant_url(:testing)).to match(%r{^https://#{Regexp.escape(hostname)}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
end
end
end
Expand All @@ -97,7 +97,7 @@ module Decidim
end

it "returns the original URL" do
expect(subject.variant_url(:testing)).to match(%r{^http://#{hostname.gsub(".", "\\.")}:#{default_port}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
expect(subject.variant_url(:testing)).to match(%r{^http://#{Regexp.escape(hostname)}:#{default_port}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
end
end
end
Expand Down Expand Up @@ -149,37 +149,37 @@ module Decidim
end

it "returns a default URL" do
expect(subject.variant_url(:testing, options)).to match(%r{^http://#{hostname.gsub(".", "\\.")}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
expect(subject.variant_url(:testing, options)).to match(%r{^http://#{Regexp.escape(hostname)}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
end

context "and the PORT environment variable is defined as 443" do
let(:local_port) { 443 }

it "returns a URL containing the protocol only" do
expect(subject.variant_url(:testing, options)).to match(%r{^https://#{hostname.gsub(".", "\\.")}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
expect(subject.variant_url(:testing, options)).to match(%r{^https://#{Regexp.escape(hostname)}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
end
end

context "and the PORT environment variable is defined as 8080" do
let(:local_port) { 8080 }

it "returns a URL containing the port" do
expect(subject.variant_url(:testing, options)).to match(%r{^http://#{hostname.gsub(".", "\\.")}:8080/rails/active_storage/disk/[^/]+/avatar\.jpg$})
expect(subject.variant_url(:testing, options)).to match(%r{^http://#{Regexp.escape(hostname)}:8080/rails/active_storage/disk/[^/]+/avatar\.jpg$})
end
end

context "and force_ssl is enabled" do
include_context "with force_ssl enabled"

it "returns a URL containing the protocol only" do
expect(subject.variant_url(:testing, options)).to match(%r{^https://#{hostname.gsub(".", "\\.")}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
expect(subject.variant_url(:testing, options)).to match(%r{^https://#{Regexp.escape(hostname)}/rails/active_storage/disk/[^/]+/avatar\.jpg$})
end

context "and the PORT environment variable is defined as 8080" do
let(:local_port) { 8080 }

it "returns a URL containing the port and protocol" do
expect(subject.variant_url(:testing, options)).to match(%r{^https://#{hostname.gsub(".", "\\.")}:8080/rails/active_storage/disk/[^/]+/avatar\.jpg$})
expect(subject.variant_url(:testing, options)).to match(%r{^https://#{Regexp.escape(hostname)}:8080/rails/active_storage/disk/[^/]+/avatar\.jpg$})
end
end
end
Expand All @@ -200,7 +200,7 @@ module Decidim
end

it "returns a URL containing the CDN configurations" do
expect(subject.variant_url(:testing)).to match(%r{^#{cdn_host.gsub(".", "\\.")}/rails/active_storage/blobs/redirect/[^/]+/avatar\.jpg$})
expect(subject.variant_url(:testing)).to match(%r{^#{Regexp.escape(cdn_host)}/rails/active_storage/blobs/redirect/[^/]+/avatar\.jpg$})
end
end
end
Expand Down

0 comments on commit ac22423

Please sign in to comment.