sparklemotion / mechanize

Mechanize is a ruby library that makes automated web interaction easy.
https://www.rubydoc.info/gems/mechanize/
MIT License
4.39k stars 473 forks source link

explore: mechanize failures when running with libxml2 head #621

Closed flavorjones closed 1 year ago

flavorjones commented 1 year ago

When running with Nokogiri built against libxml2 head (commit 5db5a704), I see the following encoding-related failures:

  1) Failure:
TestMechanizeHttpAgent#test_response_parse_content_type_encoding [/home/flavorjones/code/oss/mechanize/test/test_mechanize_http_agent.rb:1287]:
Expected: "ISO-8859-1"
  Actual: nil

  2) Failure:
TestMechanizeHttpAgent#test_response_parse_content_type_encoding_broken_iso_8859_1 [/home/flavorjones/code/oss/mechanize/test/test_mechanize_http_agent.rb:1300]:
Expected: "ISO_8859-1"
  Actual: nil

  3) Failure:
TestMechanizeHttpAgent#test_response_parse_content_type_encoding_broken_utf_8 [/home/flavorjones/code/oss/mechanize/test/test_mechanize_http_agent.rb:1312]:
Expected: "UTF8"
  Actual: nil

  4) Failure:
TestMechanizeHttpAgent#test_response_parse_content_type_encoding_semicolon [/home/flavorjones/code/oss/mechanize/test/test_mechanize_http_agent.rb:1338]:
Expected: "UTF-8"
  Actual: nil

  5) Failure:
TestMechanizePageEncoding#test_parser_encoding_equals_overwrites_force_default_encoding [/home/flavorjones/code/oss/mechanize/test/test_mechanize_page_encoding.rb:168]:
Expected: "Windows-1252"
  Actual: nil

  6) Failure:
TestMechanizePageLink#test_encoding_charset_after_title_bad [/home/flavorjones/code/oss/mechanize/test/test_mechanize_page_link.rb:124]:
Expected: "Shift_JIS"
  Actual: nil

  7) Failure:
TestMechanizePageLink#test_encoding_equals [/home/flavorjones/code/oss/mechanize/test/test_mechanize_page_link.rb:170]:
Expected: "UTF-8"
  Actual: nil

  8) Failure:
TestMechanizePageLink#test_page_decoded_with_charset [/home/flavorjones/code/oss/mechanize/test/test_mechanize_page_link.rb:355]:
Expected: "EUC-JP"
  Actual: nil

  9) Failure:
TestMechanizePageLink#test_encoding_equals_after_parser [/home/flavorjones/code/oss/mechanize/test/test_mechanize_page_link.rb:242]:
Expected: "ISO-8859-2"
  Actual: "windows-1255"

 10) Failure:
TestMechanizePageLink#test_encoding_charset_bad [/home/flavorjones/code/oss/mechanize/test/test_mechanize_page_link.rb:152]:
Expected: "Shift_JIS"
  Actual: nil

 11) Failure:
TestMechanizePageLink#test_encoding_charset_after_title_double_bad [/home/flavorjones/code/oss/mechanize/test/test_mechanize_page_link.rb:134]:
Expected: "SHIFT_JIS"
  Actual: "UTF-8"

 12) Failure:
TestMechanizePageLink#test_encoding_equals_before_parser [/home/flavorjones/code/oss/mechanize/test/test_mechanize_page_link.rb:224]:
Expected: "ISO-8859-2"
  Actual: "windows-1255"

 13) Failure:
TestMechanizeFormEncoding#test_form_encoding_returns_page_encoding_when_no_accept_charset [/home/flavorjones/code/oss/mechanize/test/test_mechanize_form_encoding.rb:43]:
Expected nil to not be equal to nil.

I'm pretty sure this has to do with the changes discussed in https://gitlab.gnome.org/GNOME/libxml2/-/issues/570

flavorjones commented 1 year ago

Hmm, actually this is more likely to be related to the issues discussed at https://github.com/sparklemotion/nokogiri/issues/2947 and reported upstream at https://gitlab.gnome.org/GNOME/libxml2/-/issues/579

flavorjones commented 1 year ago

Conversation at https://gitlab.gnome.org/GNOME/libxml2/-/issues/579 led to this getting fixed upstream in libxml2 master.