From a8c2c122af38bb075a237b3d716d115f9c2b2cc8 Mon Sep 17 00:00:00 2001 From: ulferts Date: Tue, 17 Feb 2026 18:27:50 +0100 Subject: [PATCH] adapt specs for pdf content type Chrome has been migrating its built-in PDF viewer from GuestView (separate WebContents with an element) to OOPIF (Out-of-Process Iframe). Chrome 145 appears to be where this became the default. --- modules/reporting/spec/features/export_timesheet_spec.rb | 4 +++- spec/features/projects/export_spec.rb | 4 +++- spec/support/work_packages/pdf_export.rb | 6 ++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/reporting/spec/features/export_timesheet_spec.rb b/modules/reporting/spec/features/export_timesheet_spec.rb index 6eba30a009b..5434e372802 100644 --- a/modules/reporting/spec/features/export_timesheet_spec.rb +++ b/modules/reporting/spec/features/export_timesheet_spec.rb @@ -30,6 +30,8 @@ require_relative "../spec_helper" require_relative "support/pages/cost_report_page" RSpec.describe "Timesheet PDF export", :js do + include PDFExportSpecUtils + shared_let(:project) { create(:project) } shared_let(:user) { create(:admin) } shared_let(:cost_type) { create(:cost_type, name: "Post-war", unit: "cap", unit_plural: "caps") } @@ -55,7 +57,7 @@ RSpec.describe "Timesheet PDF export", :js do # Switching to that tab and checking that the content is a PDF within_window new_window do - expect(page.source).to have_css("[type='application/pdf']") + expect_current_url_to_be_pdf end end end diff --git a/spec/features/projects/export_spec.rb b/spec/features/projects/export_spec.rb index 1103c29bf22..c70daea54b2 100644 --- a/spec/features/projects/export_spec.rb +++ b/spec/features/projects/export_spec.rb @@ -31,6 +31,8 @@ require "spec_helper" RSpec.describe "project export", :js do + include PDFExportSpecUtils + shared_let(:important_project) { create(:project, name: "Important schedule plan", description: "Important description") } shared_let(:party_project) { create(:project, name: "Christmas party", description: "Christmas description") } shared_let(:user) do @@ -193,7 +195,7 @@ RSpec.describe "project export", :js do end within_window new_window do - expect(page.source).to have_css("[type='application/pdf']") + expect_current_url_to_be_pdf end end end diff --git a/spec/support/work_packages/pdf_export.rb b/spec/support/work_packages/pdf_export.rb index d2316a9ad76..e211eb3a252 100644 --- a/spec/support/work_packages/pdf_export.rb +++ b/spec/support/work_packages/pdf_export.rb @@ -15,4 +15,10 @@ module PDFExportSpecUtils end WorkPackage.human_attribute_name(column_name) end + + def expect_current_url_to_be_pdf + uri = URI.parse(page.current_url) + response = Net::HTTP.get_response(uri) + expect(response["Content-Type"]).to include("application/pdf") + end end