Ignore referer on /report-abuse if it's SW.js (#6295) [deploy]

This commit is contained in:
Mac Siri 2020-02-26 10:18:22 -05:00 committed by GitHub
parent d8f247661c
commit 6d4925a17d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 1 deletions

View file

@ -44,7 +44,8 @@ class PagesController < ApplicationController
end
def report_abuse
reported_url = params[:reported_url] || params[:url] || request.referer
referer = URI(request.referer || "").path == "/serviceworker.js" ? nil : request.referer
reported_url = params[:reported_url] || params[:url] || referer
@feedback_message = FeedbackMessage.new(
reported_url: reported_url&.chomp("?i=i"),
)

View file

@ -121,4 +121,28 @@ RSpec.describe "Pages", type: :request do
expect(response.body).to include("Sitemap: https://#{ApplicationConfig['AWS_BUCKET_NAME']}.s3.amazonaws.com/sitemaps/sitemap.xml.gz")
end
end
describe "GET /report-abuse" do
context "when provided the referer" do
it "prefills with the provided url" do
url = Faker::Internet.url
get "/report-abuse", headers: { referer: url }
expect(response.body).to include(url)
end
it "does not prefill if the provide url is /serviceworker.js" do
url = "https://dev.to/serviceworker.js"
get "/report-abuse", headers: { referer: url }
expect(response.body).not_to include(url)
end
end
context "when provided the params" do
it "prefills with the provided param url" do
url = "https://dev.to/serviceworker.js"
get "/report-abuse", params: { url: url }
expect(response.body).to include(url)
end
end
end
end