From 608f729a774360d92054dbb7fbc3f8cfd66ec4a0 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 24 Mar 2024 11:49:37 -0400 Subject: [PATCH] test: update tests to use frozen string literals so that ruby 3.4 doesn't emit so many warnings. --- Rakefile | 2 +- test/test_mechanize.rb | 3 ++- test/test_mechanize_cookie.rb | 13 ++++++----- test/test_mechanize_cookie_jar.rb | 1 + test/test_mechanize_directory_saver.rb | 1 + test/test_mechanize_download.rb | 1 + .../test_mechanize_element_not_found_error.rb | 1 + test/test_mechanize_file.rb | 1 + test/test_mechanize_file_connection.rb | 3 ++- test/test_mechanize_file_request.rb | 1 + test/test_mechanize_file_response.rb | 1 + test/test_mechanize_file_saver.rb | 1 + test/test_mechanize_form.rb | 1 + test/test_mechanize_form_check_box.rb | 1 + test/test_mechanize_form_encoding.rb | 3 ++- test/test_mechanize_form_field.rb | 1 + test/test_mechanize_form_file_upload.rb | 1 + test/test_mechanize_form_image_button.rb | 1 + test/test_mechanize_form_keygen.rb | 1 + test/test_mechanize_form_multi_select_list.rb | 1 + test/test_mechanize_form_option.rb | 1 + test/test_mechanize_form_radio_button.rb | 1 + test/test_mechanize_form_select_list.rb | 1 + test/test_mechanize_form_textarea.rb | 1 + test/test_mechanize_headers.rb | 1 + test/test_mechanize_history.rb | 1 + test/test_mechanize_http_agent.rb | 7 +++--- test/test_mechanize_http_auth_challenge.rb | 1 + test/test_mechanize_http_auth_realm.rb | 1 + test/test_mechanize_http_auth_store.rb | 1 + ...chanize_http_content_disposition_parser.rb | 1 + ..._mechanize_http_www_authenticate_parser.rb | 1 + test/test_mechanize_image.rb | 1 + test/test_mechanize_link.rb | 1 + test/test_mechanize_page.rb | 1 + test/test_mechanize_page_encoding.rb | 11 +++++---- test/test_mechanize_page_frame.rb | 1 + test/test_mechanize_page_image.rb | 1 + test/test_mechanize_page_link.rb | 23 +++++++++---------- test/test_mechanize_page_meta_refresh.rb | 1 + test/test_mechanize_parser.rb | 1 + test/test_mechanize_pluggable_parser.rb | 1 + ..._mechanize_redirect_limit_reached_error.rb | 1 + ...echanize_redirect_not_get_or_head_error.rb | 1 + test/test_mechanize_response_read_error.rb | 1 + test/test_mechanize_subclass.rb | 1 + test/test_mechanize_util.rb | 7 +++--- test/test_mechanize_xml_file.rb | 1 + test/test_multi_select.rb | 1 + 49 files changed, 79 insertions(+), 33 deletions(-) diff --git a/Rakefile b/Rakefile index 3e2c4d30..37381990 100644 --- a/Rakefile +++ b/Rakefile @@ -49,7 +49,7 @@ namespace "rubocop" do desc "Run rubocop string literals check" task :frozen_string_literals do - sh "rubocop lib --auto-correct-all --only Style/FrozenStringLiteralComment" + sh "rubocop lib test --auto-correct-all --only Style/FrozenStringLiteralComment" end end diff --git a/test/test_mechanize.rb b/test/test_mechanize.rb index 310d7cca..1932e5d3 100644 --- a/test/test_mechanize.rb +++ b/test/test_mechanize.rb @@ -1,4 +1,5 @@ # coding: utf-8 +# frozen_string_literal: true require 'mechanize/test_case' @@ -965,7 +966,7 @@ def test_post_file_upload_nonascii }) assert_match( - "Content-Disposition: form-data; name=\"userfile1\"; filename=\"#{name}\"".force_encoding(Encoding::ASCII_8BIT), + "Content-Disposition: form-data; name=\"userfile1\"; filename=\"#{name}\"".dup.force_encoding(Encoding::ASCII_8BIT), page.body ) assert_match("Content-Type: application/zip", page.body) diff --git a/test/test_mechanize_cookie.rb b/test/test_mechanize_cookie.rb index bb344d35..5b63ad40 100644 --- a/test/test_mechanize_cookie.rb +++ b/test/test_mechanize_cookie.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' module Enumerable @@ -301,7 +302,7 @@ def test_parse_valid_cookie expires = Time.parse('Sun, 27-Sep-2037 00:00:00 GMT') cookie_params.keys.combine.each do |c| - cookie_text = "#{cookie_value}; " + cookie_text = +"#{cookie_value}; " c.each_with_index do |key, idx| if idx == (c.length - 1) cookie_text << "#{cookie_params[key]}" @@ -336,7 +337,7 @@ def test_parse_valid_cookie_empty_value expires = Time.parse('Sun, 27-Sep-2037 00:00:00 GMT') cookie_params.keys.combine.each do |c| - cookie_text = "#{cookie_value}; " + cookie_text = +"#{cookie_value}; " c.each_with_index do |key, idx| if idx == (c.length - 1) cookie_text << "#{cookie_params[key]}" @@ -373,7 +374,7 @@ def test_cookie_using_url_path cookie_params.keys.combine.each do |c| next if c.find { |k| k == 'path' } - cookie_text = "#{cookie_value}; " + cookie_text = +"#{cookie_value}; " c.each_with_index do |key, idx| if idx == (c.length - 1) cookie_text << "#{cookie_params[key]}" @@ -410,7 +411,7 @@ def test_cookie_with_secure cookie_params.keys.combine.each do |c| next unless c.find { |k| k == 'secure' } - cookie_text = "#{cookie_value}; " + cookie_text = +"#{cookie_value}; " c.each_with_index do |key, idx| if idx == (c.length - 1) cookie_text << "#{cookie_params[key]}" @@ -446,7 +447,7 @@ def test_parse_cookie_no_spaces expires = Time.parse('Sun, 27-Sep-2037 00:00:00 GMT') cookie_params.keys.combine.each do |c| - cookie_text = "#{cookie_value};" + cookie_text = +"#{cookie_value};" c.each_with_index do |key, idx| if idx == (c.length - 1) cookie_text << "#{cookie_params[key]}" @@ -530,7 +531,7 @@ def test_cookie_httponly expires = Time.parse('Sun, 27-Sep-2037 00:00:00 GMT') cookie_params.keys.combine.each do |c| - cookie_text = "#{cookie_value}; " + cookie_text = +"#{cookie_value}; " c.each_with_index do |key, idx| if idx == (c.length - 1) cookie_text << "#{cookie_params[key]}" diff --git a/test/test_mechanize_cookie_jar.rb b/test/test_mechanize_cookie_jar.rb index 2af06dfe..8371c55f 100644 --- a/test/test_mechanize_cookie_jar.rb +++ b/test/test_mechanize_cookie_jar.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' require 'fileutils' diff --git a/test/test_mechanize_directory_saver.rb b/test/test_mechanize_directory_saver.rb index f4835bf0..be3d69ce 100644 --- a/test/test_mechanize_directory_saver.rb +++ b/test/test_mechanize_directory_saver.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeDirectorySaver < Mechanize::TestCase diff --git a/test/test_mechanize_download.rb b/test/test_mechanize_download.rb index b9516dfd..5622d283 100644 --- a/test/test_mechanize_download.rb +++ b/test/test_mechanize_download.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeDownload < Mechanize::TestCase diff --git a/test/test_mechanize_element_not_found_error.rb b/test/test_mechanize_element_not_found_error.rb index e527d9d4..fab3e7dc 100644 --- a/test/test_mechanize_element_not_found_error.rb +++ b/test/test_mechanize_element_not_found_error.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeRedirectLimitReachedError < Mechanize::TestCase diff --git a/test/test_mechanize_file.rb b/test/test_mechanize_file.rb index fd22c83d..5c9676fe 100644 --- a/test/test_mechanize_file.rb +++ b/test/test_mechanize_file.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFile < Mechanize::TestCase diff --git a/test/test_mechanize_file_connection.rb b/test/test_mechanize_file_connection.rb index 4306a0ad..ef555516 100644 --- a/test/test_mechanize_file_connection.rb +++ b/test/test_mechanize_file_connection.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFileConnection < Mechanize::TestCase @@ -7,7 +8,7 @@ def test_request uri = URI.parse "file://#{file_path}" conn = Mechanize::FileConnection.new - body = '' + body = +'' conn.request uri, nil do |response| assert_equal(file_path, response.file_path) diff --git a/test/test_mechanize_file_request.rb b/test/test_mechanize_file_request.rb index e5d3e1a3..a072c462 100644 --- a/test/test_mechanize_file_request.rb +++ b/test/test_mechanize_file_request.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFileRequest < Mechanize::TestCase diff --git a/test/test_mechanize_file_response.rb b/test/test_mechanize_file_response.rb index 3aa20741..9a7c6f31 100644 --- a/test/test_mechanize_file_response.rb +++ b/test/test_mechanize_file_response.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFileResponse < Mechanize::TestCase diff --git a/test/test_mechanize_file_saver.rb b/test/test_mechanize_file_saver.rb index 3066822c..e1905cf1 100644 --- a/test/test_mechanize_file_saver.rb +++ b/test/test_mechanize_file_saver.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFileSaver < Mechanize::TestCase diff --git a/test/test_mechanize_form.rb b/test/test_mechanize_form.rb index b6247ddc..a4e4b37d 100644 --- a/test/test_mechanize_form.rb +++ b/test/test_mechanize_form.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeForm < Mechanize::TestCase diff --git a/test/test_mechanize_form_check_box.rb b/test/test_mechanize_form_check_box.rb index f11eb28d..43420f7d 100644 --- a/test/test_mechanize_form_check_box.rb +++ b/test/test_mechanize_form_check_box.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFormCheckBox < Mechanize::TestCase diff --git a/test/test_mechanize_form_encoding.rb b/test/test_mechanize_form_encoding.rb index b8cadc56..d701bebf 100644 --- a/test/test_mechanize_form_encoding.rb +++ b/test/test_mechanize_form_encoding.rb @@ -1,4 +1,5 @@ # coding: utf-8 +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFormEncoding < Mechanize::TestCase @@ -8,7 +9,7 @@ class TestMechanizeFormEncoding < Mechanize::TestCase INPUTTED_VALUE = "テスト" # "test" in Japanese UTF-8 encoding CONTENT_ENCODING = 'Shift_JIS' # one of Japanese encoding - encoded_value = "\x83\x65\x83\x58\x83\x67".force_encoding(::Encoding::SHIFT_JIS) # "test" in Japanese Shift_JIS encoding + encoded_value = "\x83\x65\x83\x58\x83\x67".dup.force_encoding(::Encoding::SHIFT_JIS) # "test" in Japanese Shift_JIS encoding EXPECTED_QUERY = "first_name=#{CGI.escape(encoded_value)}&first_name=&gender=&green%5Beggs%5D=" ENCODING_ERRORS = [EncodingError, Encoding::ConverterNotFoundError] # and so on diff --git a/test/test_mechanize_form_field.rb b/test/test_mechanize_form_field.rb index 8fa17a19..14ece52c 100644 --- a/test/test_mechanize_form_field.rb +++ b/test/test_mechanize_form_field.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFormField < Mechanize::TestCase diff --git a/test/test_mechanize_form_file_upload.rb b/test/test_mechanize_form_file_upload.rb index a244f4fb..3a92c6d5 100644 --- a/test/test_mechanize_form_file_upload.rb +++ b/test/test_mechanize_form_file_upload.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFormFileUpload < Mechanize::TestCase diff --git a/test/test_mechanize_form_image_button.rb b/test/test_mechanize_form_image_button.rb index 679ad270..4d48c3ab 100644 --- a/test/test_mechanize_form_image_button.rb +++ b/test/test_mechanize_form_image_button.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFormImageButton < Mechanize::TestCase diff --git a/test/test_mechanize_form_keygen.rb b/test/test_mechanize_form_keygen.rb index 4eb17f0c..1e1f3024 100644 --- a/test/test_mechanize_form_keygen.rb +++ b/test/test_mechanize_form_keygen.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFormKeygen < Mechanize::TestCase diff --git a/test/test_mechanize_form_multi_select_list.rb b/test/test_mechanize_form_multi_select_list.rb index 27fb8655..c479d63f 100644 --- a/test/test_mechanize_form_multi_select_list.rb +++ b/test/test_mechanize_form_multi_select_list.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFormMultiSelectList < Mechanize::TestCase diff --git a/test/test_mechanize_form_option.rb b/test/test_mechanize_form_option.rb index 75ca6866..bd56a7be 100644 --- a/test/test_mechanize_form_option.rb +++ b/test/test_mechanize_form_option.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFormOption < Mechanize::TestCase diff --git a/test/test_mechanize_form_radio_button.rb b/test/test_mechanize_form_radio_button.rb index 23872535..892a4ebd 100644 --- a/test/test_mechanize_form_radio_button.rb +++ b/test/test_mechanize_form_radio_button.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFormRadioButton < Mechanize::TestCase diff --git a/test/test_mechanize_form_select_list.rb b/test/test_mechanize_form_select_list.rb index 1a61984e..80c17b65 100644 --- a/test/test_mechanize_form_select_list.rb +++ b/test/test_mechanize_form_select_list.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFormSelectList < Mechanize::TestCase diff --git a/test/test_mechanize_form_textarea.rb b/test/test_mechanize_form_textarea.rb index 10599550..0783b02a 100644 --- a/test/test_mechanize_form_textarea.rb +++ b/test/test_mechanize_form_textarea.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeFormTextarea < Mechanize::TestCase diff --git a/test/test_mechanize_headers.rb b/test/test_mechanize_headers.rb index c951b0bd..f08d1211 100644 --- a/test/test_mechanize_headers.rb +++ b/test/test_mechanize_headers.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeHeaders < Mechanize::TestCase diff --git a/test/test_mechanize_history.rb b/test/test_mechanize_history.rb index a98b3f7b..02a8f6a1 100644 --- a/test/test_mechanize_history.rb +++ b/test/test_mechanize_history.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeHistory < Mechanize::TestCase diff --git a/test/test_mechanize_http_agent.rb b/test/test_mechanize_http_agent.rb index 0c327868..643c2369 100644 --- a/test/test_mechanize_http_agent.rb +++ b/test/test_mechanize_http_agent.rb @@ -1,4 +1,5 @@ # coding: utf-8 +# frozen_string_literal: true require 'mechanize/test_case' @@ -1027,7 +1028,7 @@ def test_response_content_encoding_gzip_encoding_bad body = @agent.response_content_encoding @res, body_io - expected = "test\xB2" + expected = +"test\xB2" expected.force_encoding Encoding::BINARY if have_encoding? content = body.read @@ -1432,11 +1433,11 @@ def test_response_read_file io = @agent.response_read res, req, uri - expected = "π\n".force_encoding(Encoding::BINARY) + expected = "π\n".dup.force_encoding(Encoding::BINARY) # Ruby 1.8.7 doesn't let us set the write mode of the tempfile to binary, # so we should expect an inserted carriage return on some platforms - expected_with_carriage_return = "π\r\n".force_encoding(Encoding::BINARY) + expected_with_carriage_return = "π\r\n".dup.force_encoding(Encoding::BINARY) body = io.read assert_match(/^(#{expected}|#{expected_with_carriage_return})$/m, body) diff --git a/test/test_mechanize_http_auth_challenge.rb b/test/test_mechanize_http_auth_challenge.rb index dca7e4c1..3774335e 100644 --- a/test/test_mechanize_http_auth_challenge.rb +++ b/test/test_mechanize_http_auth_challenge.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeHttpAuthChallenge < Mechanize::TestCase diff --git a/test/test_mechanize_http_auth_realm.rb b/test/test_mechanize_http_auth_realm.rb index 97219909..91ce93af 100644 --- a/test/test_mechanize_http_auth_realm.rb +++ b/test/test_mechanize_http_auth_realm.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeHttpAuthRealm < Mechanize::TestCase diff --git a/test/test_mechanize_http_auth_store.rb b/test/test_mechanize_http_auth_store.rb index b7410bf3..66bd8e53 100644 --- a/test/test_mechanize_http_auth_store.rb +++ b/test/test_mechanize_http_auth_store.rb @@ -1,4 +1,5 @@ # coding: utf-8 +# frozen_string_literal: true require 'mechanize/test_case' diff --git a/test/test_mechanize_http_content_disposition_parser.rb b/test/test_mechanize_http_content_disposition_parser.rb index c66a0420..565776d0 100644 --- a/test/test_mechanize_http_content_disposition_parser.rb +++ b/test/test_mechanize_http_content_disposition_parser.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeHttpContentDispositionParser < Mechanize::TestCase diff --git a/test/test_mechanize_http_www_authenticate_parser.rb b/test/test_mechanize_http_www_authenticate_parser.rb index 09d27018..b8e1e046 100644 --- a/test/test_mechanize_http_www_authenticate_parser.rb +++ b/test/test_mechanize_http_www_authenticate_parser.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeHttpWwwAuthenticateParser < Mechanize::TestCase diff --git a/test/test_mechanize_image.rb b/test/test_mechanize_image.rb index d4bc71d0..d7e5edce 100644 --- a/test/test_mechanize_image.rb +++ b/test/test_mechanize_image.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeImage < Mechanize::TestCase diff --git a/test/test_mechanize_link.rb b/test/test_mechanize_link.rb index 1c044ece..5b2e8bae 100644 --- a/test/test_mechanize_link.rb +++ b/test/test_mechanize_link.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizeLink < Mechanize::TestCase diff --git a/test/test_mechanize_page.rb b/test/test_mechanize_page.rb index 014cb50b..1d97bd68 100644 --- a/test/test_mechanize_page.rb +++ b/test/test_mechanize_page.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true require 'mechanize/test_case' class TestMechanizePage < Mechanize::TestCase diff --git a/test/test_mechanize_page_encoding.rb b/test/test_mechanize_page_encoding.rb index 7dc80cf9..e250a2b3 100644 --- a/test/test_mechanize_page_encoding.rb +++ b/test/test_mechanize_page_encoding.rb @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +# frozen_string_literal: true require 'mechanize/test_case' # tests for Page encoding and charset and parsing @@ -12,7 +13,7 @@ def setup @uri = URI('http://localhost/') @response_headers = { 'content-type' => 'text/html' } - @body = 'hi' + @body = +'hi' end def util_page body = @body, headers = @response_headers @@ -118,7 +119,7 @@ def test_page_meta_charset_handles_whitespace end def test_meta_charset - body = '' + body = +'' page = util_page body assert_equal ['META'], page.meta_charset @@ -132,7 +133,7 @@ def test_detected_encoding def test_encodings response = {'content-type' => 'text/html;charset=HEADER'} - body = '' + body = +'' @mech.default_encoding = 'DEFAULT' page = util_page body, response @@ -175,7 +176,7 @@ def test_parser_encoding_equals_overwrites_force_default_encoding def test_parser_encoding_when_searching_elements skip "Encoding not implemented" unless have_encoding? - body = 'hi' + body = +'hi' page = util_page body, 'content-type' => 'text/html,charset=ISO-8859-1' result = page.search('#latin1') @@ -187,7 +188,7 @@ def test_parser_error_message_containing_encoding_errors skip if RUBY_ENGINE == 'jruby' # this is a libxml2-specific condition # https://github.com/sparklemotion/mechanize/issues/553 - body = <<~EOF + body = +<<~EOF