From 7df3edbbc285ba0d68d2b1f6fcce129408869286 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 26 Nov 2025 15:15:09 +0900 Subject: [PATCH 1/3] Strip trailing spaces and add a newline at EOF --- .../org/jruby/ext/cgi/escape/CGIEscape.java | 2 +- test/cgi/test_cgi_new.rb | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ext/java/org/jruby/ext/cgi/escape/CGIEscape.java b/ext/java/org/jruby/ext/cgi/escape/CGIEscape.java index 6412fd7..63c982b 100644 --- a/ext/java/org/jruby/ext/cgi/escape/CGIEscape.java +++ b/ext/java/org/jruby/ext/cgi/escape/CGIEscape.java @@ -339,7 +339,7 @@ static IRubyObject optimized_escape(Ruby runtime, RubyString str, boolean escape int buf = 0; Ruby runtime = context.runtime; - + for (i = 0; i < len; ++i) { int c = cstrBytes[cstr + i] & 0xFF; int clen = 0; diff --git a/test/cgi/test_cgi_new.rb b/test/cgi/test_cgi_new.rb index fffc1c8..22d8b6d 100644 --- a/test/cgi/test_cgi_new.rb +++ b/test/cgi/test_cgi_new.rb @@ -57,7 +57,7 @@ def test_tag_maker_functionality 'html4Fr' => '', 'html5' => '' } - + html_versions.each do |version, expected_doctype| cgi = CGI.new(tag_maker: version) assert_respond_to(cgi, :doctype, "HTML generation methods should be loaded for #{version}") @@ -80,11 +80,11 @@ def test_string_tag_maker_equivalent cgi1 = CGI.new('html5') cgi2 = CGI.new(tag_maker: 'html5') - + # Both should have HTML generation methods loaded assert_respond_to(cgi1, :doctype) assert_respond_to(cgi2, :doctype) - + # Both should produce the same doctype assert_equal(cgi1.doctype, cgi2.doctype) assert_equal('', cgi1.doctype) @@ -96,13 +96,13 @@ def test_offline_mode ENV.delete('QUERY_STRING') ENV.delete('SERVER_SOFTWARE') ENV.delete('SERVER_PROTOCOL') - + # Create test input test_input = "name=value&test=123" $stdin = StringIO.new(test_input) - + cgi = CGI.new - + # In offline mode, it should read from stdin assert_equal("value", cgi['name']) assert_equal("123", cgi['test']) @@ -145,7 +145,7 @@ def test_object_structure ) cgi = CGI.new - + # Test documented instance variables and methods exist assert_kind_of(Hash, cgi.cookies) assert_kind_of(Hash, cgi.params) @@ -182,7 +182,7 @@ def test_encoding_error_block_handling 'REQUEST_METHOD' => 'POST', 'CONTENT_TYPE' => 'application/x-www-form-urlencoded', 'CONTENT_LENGTH' => test_input.length.to_s, - 'SERVER_SOFTWARE' => 'Apache 2.2.0', + 'SERVER_SOFTWARE' => 'Apache 2.2.0', 'SERVER_PROTOCOL' => 'HTTP/1.1', ) @@ -208,7 +208,7 @@ def test_class_vs_instance_charset # Class default should be UTF-8 assert_equal(Encoding::UTF_8, CGI.accept_charset) - + # Instance with no option should use class default internally cgi = CGI.new assert_equal(Encoding::UTF_8, cgi.instance_variable_get(:@accept_charset)) @@ -257,10 +257,10 @@ def test_option_assignment assert_equal('EUC-JP', cgi1.instance_variable_get(:@accept_charset)) assert_equal(512 * 1024, cgi2.instance_variable_get(:@max_multipart_length)) assert_respond_to(cgi3, :doctype) - + assert_equal('ISO-8859-1', cgi4.instance_variable_get(:@accept_charset)) assert_equal(256 * 1024, cgi4.instance_variable_get(:@max_multipart_length)) assert_respond_to(cgi4, :doctype) assert_equal('', cgi4.doctype) end -end \ No newline at end of file +end From 028a5df6c7df2acc21cc685cd2ff0ac7dc538a17 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 26 Nov 2025 15:18:05 +0900 Subject: [PATCH 2/3] Use the synonym and globals instead of constants --- lib/cgi/core.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/cgi/core.rb b/lib/cgi/core.rb index 2d9b757..6a74486 100644 --- a/lib/cgi/core.rb +++ b/lib/cgi/core.rb @@ -629,8 +629,8 @@ def read_from_cmdline string = unless ARGV.empty? ARGV.join(' ') else - if STDIN.tty? - STDERR.print( + if stdinput.tty? + $stderr.print( %|(offline mode: enter name=value pairs on standard input)\n| ) end From 7b5a13952b871166b23bfc4c80581f448a84b43c Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 26 Nov 2025 15:33:56 +0900 Subject: [PATCH 3/3] Skip unless `CGI::EscapeExt` methods are implemented --- test/cgi/test_cgi_escape.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/cgi/test_cgi_escape.rb b/test/cgi/test_cgi_escape.rb index f6ca658..73d99e8 100644 --- a/test/cgi/test_cgi_escape.rb +++ b/test/cgi/test_cgi_escape.rb @@ -300,7 +300,7 @@ def setup remove_method :escapeHTML alias _unescapeHTML unescapeHTML remove_method :unescapeHTML - end if defined?(CGI::EscapeExt) + end if defined?(CGI::EscapeExt) and CGI::EscapeExt.method_defined?(:escapeHTML) end def teardown @@ -309,7 +309,7 @@ def teardown remove_method :_escapeHTML alias unescapeHTML _unescapeHTML remove_method :_unescapeHTML - end if defined?(CGI::EscapeExt) + end if defined?(CGI::EscapeExt) and CGI::EscapeExt.method_defined?(:_escapeHTML) end include CGIEscapeTest::UnescapeHTMLTests