Allow testing remove metadata from PDF

In order to test that we remove metadata from PDF we need add
"pdf-reader" gem.

With this gem we can check the info from the PDF and ensure that
this info is removed.
This commit is contained in:
taitus
2023-07-12 09:38:40 +02:00
parent 622f351dbf
commit 84b88c0ec3
4 changed files with 40 additions and 0 deletions

View File

@@ -86,6 +86,7 @@ group :test do
gem "capybara", "~> 3.39.2"
gem "capybara-webmock", "~> 0.7.0"
gem "email_spec", "~> 2.2.2"
gem "pdf-reader"
gem "rspec-rails", "~> 5.1.2"
gem "selenium-webdriver", "~> 4.13.1"
gem "simplecov", "~> 0.22.0", require: false

View File

@@ -6,6 +6,7 @@ GEM
GEM
remote: https://rubygems.org/
specs:
Ascii85 (1.1.0)
actioncable (6.1.7.6)
actionpack (= 6.1.7.6)
activesupport (= 6.1.7.6)
@@ -70,6 +71,7 @@ GEM
acts_as_votable (0.14.0)
addressable (2.8.5)
public_suffix (>= 2.0.2, < 6.0)
afm (0.2.2)
ahoy_matey (4.2.1)
activesupport (>= 5.2)
device_detector
@@ -259,6 +261,7 @@ GEM
gyoku (1.4.0)
builder (>= 2.1.2)
rexml (~> 3.0)
hashery (2.1.2)
hashie (5.0.0)
highline (2.0.3)
htmlentities (4.3.4)
@@ -412,6 +415,12 @@ GEM
parser (3.2.2.3)
ast (~> 2.4.1)
racc
pdf-reader (2.11.0)
Ascii85 (~> 1.0)
afm (~> 0.2.1)
hashery (~> 2.0)
ruby-rc4
ttfunk
pg (1.4.3)
pg_search (2.3.6)
activerecord (>= 5.2)
@@ -549,6 +558,7 @@ GEM
rubocop-capybara (~> 2.17)
rubocop-factory_bot (~> 2.22)
ruby-progressbar (1.13.0)
ruby-rc4 (0.1.5)
ruby-vips (2.1.4)
ffi (~> 1.12)
ruby2_keywords (0.0.5)
@@ -630,6 +640,7 @@ GEM
tilt (2.0.10)
timeout (0.4.1)
tomlrb (2.0.3)
ttfunk (1.7.0)
turbolinks (5.2.1)
turbolinks-source (~> 5.2)
turbolinks-source (5.2.0)
@@ -739,6 +750,7 @@ DEPENDENCIES
omniauth-rails_csrf_protection (~> 1.0.1)
omniauth-twitter (~> 1.4.0)
paranoia (~> 2.6.2)
pdf-reader
pg (~> 1.4.3)
pg_search (~> 2.3.6)
pronto (~> 0.11.1)

Binary file not shown.

View File

@@ -0,0 +1,27 @@
require "rails_helper"
describe "Documents" do
describe "Metadata" do
scenario "download document without metadata" do
login_as(create(:user))
visit new_proposal_path
fill_in "Proposal title", with: "debate"
fill_in "Proposal summary", with: "In summary, what we want is..."
fill_in "Full name of the person submitting the proposal", with: "Isabel Garcia"
documentable_attach_new_file(file_fixture("logo_with_metadata.pdf"))
check "I agree to the Privacy Policy and the Terms and conditions of use"
click_button "Create proposal"
io = URI.parse("#{app_host}#{polymorphic_path(Document.last.attachment)}").open
reader = PDF::Reader.new(io)
expect(reader.info[:Keywords]).not_to eq "Test Metadata"
expect(reader.info[:Author]).not_to eq "Test Developer"
expect(reader.info[:Title]).not_to eq "logo_with_metadata.pdf"
expect(reader.info[:Producer]).not_to eq "Test Producer"
expect(reader.info).to eq({})
end
end
end