summaryrefslogtreecommitdiff
path: root/spec/ruby/library/cgi
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/library/cgi')
-rw-r--r--spec/ruby/library/cgi/cookie/domain_spec.rb4
-rw-r--r--spec/ruby/library/cgi/cookie/expires_spec.rb4
-rw-r--r--spec/ruby/library/cgi/cookie/initialize_spec.rb16
-rw-r--r--spec/ruby/library/cgi/cookie/name_spec.rb2
-rw-r--r--spec/ruby/library/cgi/cookie/parse_spec.rb2
-rw-r--r--spec/ruby/library/cgi/cookie/path_spec.rb2
-rw-r--r--spec/ruby/library/cgi/cookie/secure_spec.rb22
-rw-r--r--spec/ruby/library/cgi/cookie/to_s_spec.rb2
-rw-r--r--spec/ruby/library/cgi/cookie/value_spec.rb4
-rw-r--r--spec/ruby/library/cgi/escapeElement_spec.rb4
-rw-r--r--spec/ruby/library/cgi/escapeURIComponent_spec.rb59
-rw-r--r--spec/ruby/library/cgi/htmlextension/a_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/base_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/blockquote_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/br_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/caption_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/checkbox_group_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/checkbox_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/doctype_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/file_field_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/form_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/frame_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/frameset_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/hidden_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/html_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/image_button_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/img_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/multipart_form_spec.rb4
-rw-r--r--spec/ruby/library/cgi/htmlextension/password_field_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/popup_menu_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/radio_button_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/radio_group_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/reset_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/scrolling_list_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/submit_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/text_field_spec.rb2
-rw-r--r--spec/ruby/library/cgi/htmlextension/textarea_spec.rb2
-rw-r--r--spec/ruby/library/cgi/http_header_spec.rb2
-rw-r--r--spec/ruby/library/cgi/initialize_spec.rb68
-rw-r--r--spec/ruby/library/cgi/out_spec.rb4
-rw-r--r--spec/ruby/library/cgi/parse_spec.rb2
-rw-r--r--spec/ruby/library/cgi/pretty_spec.rb2
-rw-r--r--spec/ruby/library/cgi/print_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/accept_charset_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/accept_encoding_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/accept_language_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/accept_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/auth_type_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/cache_control_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/content_length_spec.rb6
-rw-r--r--spec/ruby/library/cgi/queryextension/content_type_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/cookies_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/element_reference_spec.rb4
-rw-r--r--spec/ruby/library/cgi/queryextension/from_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/gateway_interface_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/has_key_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/host_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/include_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/key_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/keys_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/multipart_spec.rb4
-rw-r--r--spec/ruby/library/cgi/queryextension/negotiate_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/params_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/path_info_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/path_translated_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/pragma_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/query_string_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/raw_cookie2_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/raw_cookie_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/referer_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/remote_addr_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/remote_host_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/remote_ident_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/remote_user_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/request_method_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/script_name_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/server_name_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/server_port_spec.rb6
-rw-r--r--spec/ruby/library/cgi/queryextension/server_protocol_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/server_software_spec.rb2
-rw-r--r--spec/ruby/library/cgi/queryextension/shared/has_key.rb6
-rw-r--r--spec/ruby/library/cgi/queryextension/user_agent_spec.rb2
-rw-r--r--spec/ruby/library/cgi/rfc1123_date_spec.rb2
-rw-r--r--spec/ruby/library/cgi/shared/http_header.rb10
-rw-r--r--spec/ruby/library/cgi/unescapeElement_spec.rb4
-rw-r--r--spec/ruby/library/cgi/unescapeURIComponent_spec.rb128
-rw-r--r--spec/ruby/library/cgi/unescape_spec.rb4
87 files changed, 322 insertions, 175 deletions
diff --git a/spec/ruby/library/cgi/cookie/domain_spec.rb b/spec/ruby/library/cgi/cookie/domain_spec.rb
index 622549039f..c118ef6383 100644
--- a/spec/ruby/library/cgi/cookie/domain_spec.rb
+++ b/spec/ruby/library/cgi/cookie/domain_spec.rb
@@ -1,12 +1,12 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::Cookie#domain" do
it "returns self's domain" do
cookie = CGI::Cookie.new("test-cookie")
- cookie.domain.should be_nil
+ cookie.domain.should == nil
cookie = CGI::Cookie.new("name" => "test-cookie", "domain" => "example.com")
cookie.domain.should == "example.com"
diff --git a/spec/ruby/library/cgi/cookie/expires_spec.rb b/spec/ruby/library/cgi/cookie/expires_spec.rb
index df52a6f41e..b9cc7d5b65 100644
--- a/spec/ruby/library/cgi/cookie/expires_spec.rb
+++ b/spec/ruby/library/cgi/cookie/expires_spec.rb
@@ -1,12 +1,12 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::Cookie#expires" do
it "returns self's expiration date" do
cookie = CGI::Cookie.new("test-cookie")
- cookie.expires.should be_nil
+ cookie.expires.should == nil
cookie = CGI::Cookie.new("name" => "test-cookie", "expires" => Time.at(1196524602))
cookie.expires.should == Time.at(1196524602)
diff --git a/spec/ruby/library/cgi/cookie/initialize_spec.rb b/spec/ruby/library/cgi/cookie/initialize_spec.rb
index ac99d5e4fd..80bc2c2196 100644
--- a/spec/ruby/library/cgi/cookie/initialize_spec.rb
+++ b/spec/ruby/library/cgi/cookie/initialize_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::Cookie#initialize when passed String" do
@@ -20,7 +20,7 @@ ruby_version_is ""..."3.5" do
it "sets self to a non-secure cookie" do
@cookie.send(:initialize, "test")
- @cookie.secure.should be_false
+ @cookie.secure.should == false
end
it "does set self's path to an empty String when ENV[\"SCRIPT_NAME\"] is not set" do
@@ -49,11 +49,11 @@ ruby_version_is ""..."3.5" do
end
it "does not set self's expiration date" do
- @cookie.expires.should be_nil
+ @cookie.expires.should == nil
end
it "does not set self's domain" do
- @cookie.domain.should be_nil
+ @cookie.domain.should == nil
end
end
@@ -76,7 +76,7 @@ ruby_version_is ""..."3.5" do
@cookie.path.should == "some/path/"
@cookie.domain.should == "example.com"
@cookie.expires.should == Time.at(1196524602)
- @cookie.secure.should be_true
+ @cookie.secure.should == true
end
it "does set self's path based on ENV[\"SCRIPT_NAME\"] when the Hash has no 'path' entry" do
@@ -122,8 +122,8 @@ ruby_version_is ""..."3.5" do
end
it "raises a ArgumentError when the passed Hash has no 'name' entry" do
- -> { @cookie.send(:initialize, {}) }.should raise_error(ArgumentError)
- -> { @cookie.send(:initialize, "value" => "test") }.should raise_error(ArgumentError)
+ -> { @cookie.send(:initialize, {}) }.should.raise(ArgumentError)
+ -> { @cookie.send(:initialize, "value" => "test") }.should.raise(ArgumentError)
end
end
@@ -144,7 +144,7 @@ ruby_version_is ""..."3.5" do
it "sets self to a non-secure cookie" do
@cookie.send(:initialize, "test", "one", "two", "three")
- @cookie.secure.should be_false
+ @cookie.secure.should == false
end
end
end
diff --git a/spec/ruby/library/cgi/cookie/name_spec.rb b/spec/ruby/library/cgi/cookie/name_spec.rb
index 712628180b..4908204e8a 100644
--- a/spec/ruby/library/cgi/cookie/name_spec.rb
+++ b/spec/ruby/library/cgi/cookie/name_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::Cookie#name" do
diff --git a/spec/ruby/library/cgi/cookie/parse_spec.rb b/spec/ruby/library/cgi/cookie/parse_spec.rb
index ecc78d77dc..bc505c37ba 100644
--- a/spec/ruby/library/cgi/cookie/parse_spec.rb
+++ b/spec/ruby/library/cgi/cookie/parse_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::Cookie.parse" do
diff --git a/spec/ruby/library/cgi/cookie/path_spec.rb b/spec/ruby/library/cgi/cookie/path_spec.rb
index 010e87a6b8..13ee5d726b 100644
--- a/spec/ruby/library/cgi/cookie/path_spec.rb
+++ b/spec/ruby/library/cgi/cookie/path_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::Cookie#path" do
diff --git a/spec/ruby/library/cgi/cookie/secure_spec.rb b/spec/ruby/library/cgi/cookie/secure_spec.rb
index b526897250..233881b173 100644
--- a/spec/ruby/library/cgi/cookie/secure_spec.rb
+++ b/spec/ruby/library/cgi/cookie/secure_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::Cookie#secure" do
@@ -10,10 +10,10 @@ ruby_version_is ""..."3.5" do
it "returns whether self is a secure cookie or not" do
@cookie.secure = true
- @cookie.secure.should be_true
+ @cookie.secure.should == true
@cookie.secure = false
- @cookie.secure.should be_false
+ @cookie.secure.should == false
end
end
@@ -23,12 +23,12 @@ ruby_version_is ""..."3.5" do
end
it "returns true" do
- (@cookie.secure = true).should be_true
+ (@cookie.secure = true).should == true
end
it "sets self to a secure cookie" do
@cookie.secure = true
- @cookie.secure.should be_true
+ @cookie.secure.should == true
end
end
@@ -38,12 +38,12 @@ ruby_version_is ""..."3.5" do
end
it "returns false" do
- (@cookie.secure = false).should be_false
+ (@cookie.secure = false).should == false
end
it "sets self to a non-secure cookie" do
@cookie.secure = false
- @cookie.secure.should be_false
+ @cookie.secure.should == false
end
end
@@ -56,18 +56,18 @@ ruby_version_is ""..."3.5" do
@cookie.secure = false
@cookie.secure = Object.new
- @cookie.secure.should be_false
+ @cookie.secure.should == false
@cookie.secure = "Test"
- @cookie.secure.should be_false
+ @cookie.secure.should == false
@cookie.secure = true
@cookie.secure = Object.new
- @cookie.secure.should be_true
+ @cookie.secure.should == true
@cookie.secure = "Test"
- @cookie.secure.should be_true
+ @cookie.secure.should == true
end
end
end
diff --git a/spec/ruby/library/cgi/cookie/to_s_spec.rb b/spec/ruby/library/cgi/cookie/to_s_spec.rb
index 34326f672b..20d2579f8d 100644
--- a/spec/ruby/library/cgi/cookie/to_s_spec.rb
+++ b/spec/ruby/library/cgi/cookie/to_s_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::Cookie#to_s" do
diff --git a/spec/ruby/library/cgi/cookie/value_spec.rb b/spec/ruby/library/cgi/cookie/value_spec.rb
index e7c91b55b9..45032edcbf 100644
--- a/spec/ruby/library/cgi/cookie/value_spec.rb
+++ b/spec/ruby/library/cgi/cookie/value_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::Cookie#value" do
@@ -37,7 +37,7 @@ ruby_version_is ""..."3.5" do
cookie2.value.send(method, *args)
fail << method unless cookie1.value == cookie2.value
end
- fail.should be_empty
+ fail.should.empty?
end
end
diff --git a/spec/ruby/library/cgi/escapeElement_spec.rb b/spec/ruby/library/cgi/escapeElement_spec.rb
index 7bfa3f4feb..72c38d6028 100644
--- a/spec/ruby/library/cgi/escapeElement_spec.rb
+++ b/spec/ruby/library/cgi/escapeElement_spec.rb
@@ -1,9 +1,9 @@
require_relative '../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
end
-ruby_version_is "3.5" do
+ruby_version_is "4.0" do
require 'cgi/escape'
end
diff --git a/spec/ruby/library/cgi/escapeURIComponent_spec.rb b/spec/ruby/library/cgi/escapeURIComponent_spec.rb
index 02921ab8bf..98efa2e67e 100644
--- a/spec/ruby/library/cgi/escapeURIComponent_spec.rb
+++ b/spec/ruby/library/cgi/escapeURIComponent_spec.rb
@@ -6,48 +6,67 @@ rescue LoadError
end
describe "CGI.escapeURIComponent" do
- it "escapes whitespace" do
- string = "&<>\" \xE3\x82\x86\xE3\x82\x93\xE3\x82\x86\xE3\x82\x93"
- CGI.escapeURIComponent(string).should == '%26%3C%3E%22%20%E3%82%86%E3%82%93%E3%82%86%E3%82%93'
+ it "percent-encodes characters reserved according to RFC 3986" do
+ # https://www.rfc-editor.org/rfc/rfc3986#section-2.2
+ string = ":/?#[]@!$&'()*+,;="
+ CGI.escapeURIComponent(string).should == "%3A%2F%3F%23%5B%5D%40%21%24%26%27%28%29%2A%2B%2C%3B%3D"
end
- it "does not escape with unreserved characters" do
+ it "does not percent-encode unreserved characters according to RFC 3986" do
string = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~"
CGI.escapeURIComponent(string).should == "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~"
end
- it "supports String with invalid encoding" do
- string = "\xC0\<\<".dup.force_encoding("UTF-8")
- CGI.escapeURIComponent(string).should == "%C0%3C%3C"
+ it "encodes % character as %25" do
+ CGI.escapeURIComponent("%").should == "%25"
end
- it "processes String bytes one by one, not characters" do
- CGI.escapeURIComponent("β").should == "%CE%B2" # "β" bytes representation is CE B2
+ # Compare to .escape which uses "+".
+ it "percent-encodes single whitespace" do
+ CGI.escapeURIComponent(" ").should == "%20"
end
- it "raises a TypeError with nil" do
- -> {
- CGI.escapeURIComponent(nil)
- }.should raise_error(TypeError, 'no implicit conversion of nil into String')
+ it "percent-encodes all non-reserved and non-unreserved ASCII characters" do
+ special_set = ":/?#[]@!$&'()*+,;=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~"
+ all_other = (0x00..0x7F).filter_map { |i| i.chr unless special_set.include?(i.chr) }.join
+ encoded = CGI.escapeURIComponent(all_other)
+ encoded.should.match?(/\A(?:%[0-9A-F]{2}){#{all_other.length}}\z/)
end
- it "encodes empty string" do
- CGI.escapeURIComponent("").should == ""
+ it "percent-encodes non-ASCII bytes" do
+ bytes = (0x80..0xFF).map(&:chr).join
+ encoded = CGI.escapeURIComponent(bytes)
+ encoded.should.match?(/\A(?:%[0-9A-F]{2}){#{bytes.length}}\z/)
end
- it "encodes single whitespace" do
- CGI.escapeURIComponent(" ").should == "%20"
+ it "processes multi-byte characters as separate bytes, percent-encoding each one" do
+ CGI.escapeURIComponent("β").should == "%CE%B2" # "β" bytes representation is CE B2
end
- it "encodes double whitespace" do
- CGI.escapeURIComponent(" ").should == "%20%20"
+ it "produces a copy of an empty string" do
+ string = "".encode(Encoding::BINARY)
+ encoded = CGI.escapeURIComponent(string)
+ encoded.should == ""
+ encoded.encoding.should == Encoding::BINARY
+ string.should_not.equal?(encoded)
end
- it "preserves encoding" do
+ it "preserves string's encoding" do
string = "whatever".encode("ASCII-8BIT")
CGI.escapeURIComponent(string).encoding.should == Encoding::ASCII_8BIT
end
+ it "processes even strings with invalid encoding, percent-encoding octets as-is" do
+ string = "\xC0<<".dup.force_encoding("UTF-8")
+ CGI.escapeURIComponent(string).should == "%C0%3C%3C"
+ end
+
+ it "raises a TypeError with nil" do
+ -> {
+ CGI.escapeURIComponent(nil)
+ }.should.raise(TypeError, "no implicit conversion of nil into String")
+ end
+
it "uses implicit type conversion to String" do
object = Object.new
def object.to_str
diff --git a/spec/ruby/library/cgi/htmlextension/a_spec.rb b/spec/ruby/library/cgi/htmlextension/a_spec.rb
index 16a0552bac..78d3dec8fa 100644
--- a/spec/ruby/library/cgi/htmlextension/a_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/a_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/base_spec.rb b/spec/ruby/library/cgi/htmlextension/base_spec.rb
index a4c4a61614..1eedfdea54 100644
--- a/spec/ruby/library/cgi/htmlextension/base_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/base_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/blockquote_spec.rb b/spec/ruby/library/cgi/htmlextension/blockquote_spec.rb
index f8d4ca310e..883e36f78b 100644
--- a/spec/ruby/library/cgi/htmlextension/blockquote_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/blockquote_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/br_spec.rb b/spec/ruby/library/cgi/htmlextension/br_spec.rb
index 45909a2db7..23c2cb4a48 100644
--- a/spec/ruby/library/cgi/htmlextension/br_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/br_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/caption_spec.rb b/spec/ruby/library/cgi/htmlextension/caption_spec.rb
index 74f0a098f4..3d3e21ecaa 100644
--- a/spec/ruby/library/cgi/htmlextension/caption_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/caption_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/checkbox_group_spec.rb b/spec/ruby/library/cgi/htmlextension/checkbox_group_spec.rb
index 1acfe62fda..07163c010e 100644
--- a/spec/ruby/library/cgi/htmlextension/checkbox_group_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/checkbox_group_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/checkbox_spec.rb b/spec/ruby/library/cgi/htmlextension/checkbox_spec.rb
index ba410f31de..ad87b78061 100644
--- a/spec/ruby/library/cgi/htmlextension/checkbox_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/checkbox_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/doctype_spec.rb b/spec/ruby/library/cgi/htmlextension/doctype_spec.rb
index 49501ac8f7..02af831855 100644
--- a/spec/ruby/library/cgi/htmlextension/doctype_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/doctype_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/file_field_spec.rb b/spec/ruby/library/cgi/htmlextension/file_field_spec.rb
index b8ef0b2045..eff077b9a2 100644
--- a/spec/ruby/library/cgi/htmlextension/file_field_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/file_field_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/form_spec.rb b/spec/ruby/library/cgi/htmlextension/form_spec.rb
index 510ce27b77..55ac63152b 100644
--- a/spec/ruby/library/cgi/htmlextension/form_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/form_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/frame_spec.rb b/spec/ruby/library/cgi/htmlextension/frame_spec.rb
index 0dc30e94f7..fef40849eb 100644
--- a/spec/ruby/library/cgi/htmlextension/frame_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/frame_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require_relative 'fixtures/common'
require 'cgi'
diff --git a/spec/ruby/library/cgi/htmlextension/frameset_spec.rb b/spec/ruby/library/cgi/htmlextension/frameset_spec.rb
index a37b5f537d..3ad0a9c4d2 100644
--- a/spec/ruby/library/cgi/htmlextension/frameset_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/frameset_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require_relative 'fixtures/common'
require 'cgi'
diff --git a/spec/ruby/library/cgi/htmlextension/hidden_spec.rb b/spec/ruby/library/cgi/htmlextension/hidden_spec.rb
index 5771058fa3..b2323775f6 100644
--- a/spec/ruby/library/cgi/htmlextension/hidden_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/hidden_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/html_spec.rb b/spec/ruby/library/cgi/htmlextension/html_spec.rb
index 0e4052dcc4..60a10fb6b4 100644
--- a/spec/ruby/library/cgi/htmlextension/html_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/html_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/image_button_spec.rb b/spec/ruby/library/cgi/htmlextension/image_button_spec.rb
index cd7f1ae4f7..f8770119d4 100644
--- a/spec/ruby/library/cgi/htmlextension/image_button_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/image_button_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/img_spec.rb b/spec/ruby/library/cgi/htmlextension/img_spec.rb
index 193d3dca26..a05cfdea48 100644
--- a/spec/ruby/library/cgi/htmlextension/img_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/img_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/multipart_form_spec.rb b/spec/ruby/library/cgi/htmlextension/multipart_form_spec.rb
index e5c16f2475..4b56a7abfe 100644
--- a/spec/ruby/library/cgi/htmlextension/multipart_form_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/multipart_form_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
@@ -11,7 +11,7 @@ ruby_version_is ""..."3.5" do
end
describe "when passed no arguments" do
- it "returns a 'form'-element with it's enctype set to multipart" do
+ it "returns a 'form'-element with its enctype set to multipart" do
output = @html.multipart_form
output.should equal_element("FORM", { "ENCTYPE" => "multipart/form-data", "METHOD" => "post" }, "")
end
diff --git a/spec/ruby/library/cgi/htmlextension/password_field_spec.rb b/spec/ruby/library/cgi/htmlextension/password_field_spec.rb
index a462bea015..0fefdd5c45 100644
--- a/spec/ruby/library/cgi/htmlextension/password_field_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/password_field_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/popup_menu_spec.rb b/spec/ruby/library/cgi/htmlextension/popup_menu_spec.rb
index 0ec85e96df..7452d15317 100644
--- a/spec/ruby/library/cgi/htmlextension/popup_menu_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/popup_menu_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
require_relative 'shared/popup_menu'
diff --git a/spec/ruby/library/cgi/htmlextension/radio_button_spec.rb b/spec/ruby/library/cgi/htmlextension/radio_button_spec.rb
index 865c16d232..8458685cdc 100644
--- a/spec/ruby/library/cgi/htmlextension/radio_button_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/radio_button_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/radio_group_spec.rb b/spec/ruby/library/cgi/htmlextension/radio_group_spec.rb
index 7381e7183b..fd925a5165 100644
--- a/spec/ruby/library/cgi/htmlextension/radio_group_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/radio_group_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/reset_spec.rb b/spec/ruby/library/cgi/htmlextension/reset_spec.rb
index d3a5c801fa..80e4441b16 100644
--- a/spec/ruby/library/cgi/htmlextension/reset_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/reset_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/scrolling_list_spec.rb b/spec/ruby/library/cgi/htmlextension/scrolling_list_spec.rb
index aab52d7409..b565444679 100644
--- a/spec/ruby/library/cgi/htmlextension/scrolling_list_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/scrolling_list_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require_relative 'fixtures/common'
require 'cgi'
require_relative 'shared/popup_menu'
diff --git a/spec/ruby/library/cgi/htmlextension/submit_spec.rb b/spec/ruby/library/cgi/htmlextension/submit_spec.rb
index 3401b10356..bb6e079c4e 100644
--- a/spec/ruby/library/cgi/htmlextension/submit_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/submit_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/text_field_spec.rb b/spec/ruby/library/cgi/htmlextension/text_field_spec.rb
index 4f63dbce59..37e13e3746 100644
--- a/spec/ruby/library/cgi/htmlextension/text_field_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/text_field_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/htmlextension/textarea_spec.rb b/spec/ruby/library/cgi/htmlextension/textarea_spec.rb
index a3881796fd..99c6d3dd2d 100644
--- a/spec/ruby/library/cgi/htmlextension/textarea_spec.rb
+++ b/spec/ruby/library/cgi/htmlextension/textarea_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'fixtures/common'
diff --git a/spec/ruby/library/cgi/http_header_spec.rb b/spec/ruby/library/cgi/http_header_spec.rb
index 173055718b..8d9f3fe9b8 100644
--- a/spec/ruby/library/cgi/http_header_spec.rb
+++ b/spec/ruby/library/cgi/http_header_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'shared/http_header'
diff --git a/spec/ruby/library/cgi/initialize_spec.rb b/spec/ruby/library/cgi/initialize_spec.rb
index d46b5a3564..6135522c54 100644
--- a/spec/ruby/library/cgi/initialize_spec.rb
+++ b/spec/ruby/library/cgi/initialize_spec.rb
@@ -1,11 +1,11 @@
require_relative '../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI#initialize" do
it "is private" do
- CGI.should have_private_instance_method(:initialize)
+ CGI.private_instance_methods(false).should.include?(:initialize)
end
end
@@ -21,21 +21,21 @@ ruby_version_is ""..."3.5" do
it "extends self with CGI::QueryExtension" do
@cgi.send(:initialize)
- @cgi.should be_kind_of(CGI::QueryExtension)
+ @cgi.should.is_a?(CGI::QueryExtension)
end
it "does not extend self with CGI::HtmlExtension" do
@cgi.send(:initialize)
- @cgi.should_not be_kind_of(CGI::HtmlExtension)
+ @cgi.should_not.is_a?(CGI::HtmlExtension)
end
it "does not extend self with any of the other HTML modules" do
@cgi.send(:initialize)
- @cgi.should_not be_kind_of(CGI::HtmlExtension)
- @cgi.should_not be_kind_of(CGI::Html3)
- @cgi.should_not be_kind_of(CGI::Html4)
- @cgi.should_not be_kind_of(CGI::Html4Tr)
- @cgi.should_not be_kind_of(CGI::Html4Fr)
+ @cgi.should_not.is_a?(CGI::HtmlExtension)
+ @cgi.should_not.is_a?(CGI::Html3)
+ @cgi.should_not.is_a?(CGI::Html4)
+ @cgi.should_not.is_a?(CGI::Html4Tr)
+ @cgi.should_not.is_a?(CGI::Html4Fr)
end
it "sets #cookies based on ENV['HTTP_COOKIE']" do
@@ -86,51 +86,51 @@ ruby_version_is ""..."3.5" do
it "extends self with CGI::QueryExtension" do
@cgi.send(:initialize, "test")
- @cgi.should be_kind_of(CGI::QueryExtension)
+ @cgi.should.is_a?(CGI::QueryExtension)
end
it "extends self with CGI::QueryExtension, CGI::Html3 and CGI::HtmlExtension when the passed type is 'html3'" do
@cgi.send(:initialize, "html3")
- @cgi.should be_kind_of(CGI::Html3)
- @cgi.should be_kind_of(CGI::HtmlExtension)
- @cgi.should be_kind_of(CGI::QueryExtension)
+ @cgi.should.is_a?(CGI::Html3)
+ @cgi.should.is_a?(CGI::HtmlExtension)
+ @cgi.should.is_a?(CGI::QueryExtension)
- @cgi.should_not be_kind_of(CGI::Html4)
- @cgi.should_not be_kind_of(CGI::Html4Tr)
- @cgi.should_not be_kind_of(CGI::Html4Fr)
+ @cgi.should_not.is_a?(CGI::Html4)
+ @cgi.should_not.is_a?(CGI::Html4Tr)
+ @cgi.should_not.is_a?(CGI::Html4Fr)
end
it "extends self with CGI::QueryExtension, CGI::Html4 and CGI::HtmlExtension when the passed type is 'html4'" do
@cgi.send(:initialize, "html4")
- @cgi.should be_kind_of(CGI::Html4)
- @cgi.should be_kind_of(CGI::HtmlExtension)
- @cgi.should be_kind_of(CGI::QueryExtension)
+ @cgi.should.is_a?(CGI::Html4)
+ @cgi.should.is_a?(CGI::HtmlExtension)
+ @cgi.should.is_a?(CGI::QueryExtension)
- @cgi.should_not be_kind_of(CGI::Html3)
- @cgi.should_not be_kind_of(CGI::Html4Tr)
- @cgi.should_not be_kind_of(CGI::Html4Fr)
+ @cgi.should_not.is_a?(CGI::Html3)
+ @cgi.should_not.is_a?(CGI::Html4Tr)
+ @cgi.should_not.is_a?(CGI::Html4Fr)
end
it "extends self with CGI::QueryExtension, CGI::Html4Tr and CGI::HtmlExtension when the passed type is 'html4Tr'" do
@cgi.send(:initialize, "html4Tr")
- @cgi.should be_kind_of(CGI::Html4Tr)
- @cgi.should be_kind_of(CGI::HtmlExtension)
- @cgi.should be_kind_of(CGI::QueryExtension)
+ @cgi.should.is_a?(CGI::Html4Tr)
+ @cgi.should.is_a?(CGI::HtmlExtension)
+ @cgi.should.is_a?(CGI::QueryExtension)
- @cgi.should_not be_kind_of(CGI::Html3)
- @cgi.should_not be_kind_of(CGI::Html4)
- @cgi.should_not be_kind_of(CGI::Html4Fr)
+ @cgi.should_not.is_a?(CGI::Html3)
+ @cgi.should_not.is_a?(CGI::Html4)
+ @cgi.should_not.is_a?(CGI::Html4Fr)
end
it "extends self with CGI::QueryExtension, CGI::Html4Tr, CGI::Html4Fr and CGI::HtmlExtension when the passed type is 'html4Fr'" do
@cgi.send(:initialize, "html4Fr")
- @cgi.should be_kind_of(CGI::Html4Tr)
- @cgi.should be_kind_of(CGI::Html4Fr)
- @cgi.should be_kind_of(CGI::HtmlExtension)
- @cgi.should be_kind_of(CGI::QueryExtension)
+ @cgi.should.is_a?(CGI::Html4Tr)
+ @cgi.should.is_a?(CGI::Html4Fr)
+ @cgi.should.is_a?(CGI::HtmlExtension)
+ @cgi.should.is_a?(CGI::QueryExtension)
- @cgi.should_not be_kind_of(CGI::Html3)
- @cgi.should_not be_kind_of(CGI::Html4)
+ @cgi.should_not.is_a?(CGI::Html3)
+ @cgi.should_not.is_a?(CGI::Html4)
end
end
end
diff --git a/spec/ruby/library/cgi/out_spec.rb b/spec/ruby/library/cgi/out_spec.rb
index c79d000284..e9eaf5e151 100644
--- a/spec/ruby/library/cgi/out_spec.rb
+++ b/spec/ruby/library/cgi/out_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI#out" do
@@ -48,7 +48,7 @@ ruby_version_is ""..."3.5" do
end
it "raises a LocalJumpError" do
- -> { @cgi.out }.should raise_error(LocalJumpError)
+ -> { @cgi.out }.should.raise(LocalJumpError)
end
end
end
diff --git a/spec/ruby/library/cgi/parse_spec.rb b/spec/ruby/library/cgi/parse_spec.rb
index d35d0d3365..f09270c195 100644
--- a/spec/ruby/library/cgi/parse_spec.rb
+++ b/spec/ruby/library/cgi/parse_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI.parse when passed String" do
diff --git a/spec/ruby/library/cgi/pretty_spec.rb b/spec/ruby/library/cgi/pretty_spec.rb
index 1fed3bbd2e..9df1611037 100644
--- a/spec/ruby/library/cgi/pretty_spec.rb
+++ b/spec/ruby/library/cgi/pretty_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI.pretty when passed html" do
diff --git a/spec/ruby/library/cgi/print_spec.rb b/spec/ruby/library/cgi/print_spec.rb
index 5057c280a0..f4f461c5c0 100644
--- a/spec/ruby/library/cgi/print_spec.rb
+++ b/spec/ruby/library/cgi/print_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI#print" do
diff --git a/spec/ruby/library/cgi/queryextension/accept_charset_spec.rb b/spec/ruby/library/cgi/queryextension/accept_charset_spec.rb
index 9bfc833a3b..be05f0c175 100644
--- a/spec/ruby/library/cgi/queryextension/accept_charset_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/accept_charset_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#accept_charset" do
diff --git a/spec/ruby/library/cgi/queryextension/accept_encoding_spec.rb b/spec/ruby/library/cgi/queryextension/accept_encoding_spec.rb
index f0d7f2058a..42eb4a49b5 100644
--- a/spec/ruby/library/cgi/queryextension/accept_encoding_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/accept_encoding_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#accept_encoding" do
diff --git a/spec/ruby/library/cgi/queryextension/accept_language_spec.rb b/spec/ruby/library/cgi/queryextension/accept_language_spec.rb
index e3dfcd0324..19f29c6345 100644
--- a/spec/ruby/library/cgi/queryextension/accept_language_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/accept_language_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#accept_language" do
diff --git a/spec/ruby/library/cgi/queryextension/accept_spec.rb b/spec/ruby/library/cgi/queryextension/accept_spec.rb
index 9370a885a4..dcae39a736 100644
--- a/spec/ruby/library/cgi/queryextension/accept_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/accept_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#accept" do
diff --git a/spec/ruby/library/cgi/queryextension/auth_type_spec.rb b/spec/ruby/library/cgi/queryextension/auth_type_spec.rb
index c858436037..75e9cdb27a 100644
--- a/spec/ruby/library/cgi/queryextension/auth_type_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/auth_type_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#auth_type" do
diff --git a/spec/ruby/library/cgi/queryextension/cache_control_spec.rb b/spec/ruby/library/cgi/queryextension/cache_control_spec.rb
index d42421126c..c4b727e671 100644
--- a/spec/ruby/library/cgi/queryextension/cache_control_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/cache_control_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#cache_control" do
diff --git a/spec/ruby/library/cgi/queryextension/content_length_spec.rb b/spec/ruby/library/cgi/queryextension/content_length_spec.rb
index 2e3dca6f58..bd02f3d8da 100644
--- a/spec/ruby/library/cgi/queryextension/content_length_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/content_length_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#content_length" do
@@ -17,10 +17,10 @@ ruby_version_is ""..."3.5" do
old_value = ENV['CONTENT_LENGTH']
begin
ENV['CONTENT_LENGTH'] = nil
- @cgi.content_length.should be_nil
+ @cgi.content_length.should == nil
ENV['CONTENT_LENGTH'] = "100"
- @cgi.content_length.should eql(100)
+ @cgi.content_length.should.eql?(100)
ensure
ENV['CONTENT_LENGTH'] = old_value
end
diff --git a/spec/ruby/library/cgi/queryextension/content_type_spec.rb b/spec/ruby/library/cgi/queryextension/content_type_spec.rb
index ce1be28571..d3cbdf0b14 100644
--- a/spec/ruby/library/cgi/queryextension/content_type_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/content_type_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#content_type" do
diff --git a/spec/ruby/library/cgi/queryextension/cookies_spec.rb b/spec/ruby/library/cgi/queryextension/cookies_spec.rb
index 029ad5991a..266fe0c721 100644
--- a/spec/ruby/library/cgi/queryextension/cookies_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/cookies_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#cookies" do
diff --git a/spec/ruby/library/cgi/queryextension/element_reference_spec.rb b/spec/ruby/library/cgi/queryextension/element_reference_spec.rb
index df1c372ab7..c835f385f0 100644
--- a/spec/ruby/library/cgi/queryextension/element_reference_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/element_reference_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#[]" do
@@ -24,7 +24,7 @@ ruby_version_is ""..."3.5" do
end
it "returns a String" do
- @cgi["one"].should be_kind_of(String)
+ @cgi["one"].should.is_a?(String)
end
end
end
diff --git a/spec/ruby/library/cgi/queryextension/from_spec.rb b/spec/ruby/library/cgi/queryextension/from_spec.rb
index 8d278f5318..b341e0be10 100644
--- a/spec/ruby/library/cgi/queryextension/from_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/from_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#from" do
diff --git a/spec/ruby/library/cgi/queryextension/gateway_interface_spec.rb b/spec/ruby/library/cgi/queryextension/gateway_interface_spec.rb
index d519b80e32..c82522326b 100644
--- a/spec/ruby/library/cgi/queryextension/gateway_interface_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/gateway_interface_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#gateway_interface" do
diff --git a/spec/ruby/library/cgi/queryextension/has_key_spec.rb b/spec/ruby/library/cgi/queryextension/has_key_spec.rb
index 5892ecaf77..43f7aae1b2 100644
--- a/spec/ruby/library/cgi/queryextension/has_key_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/has_key_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'shared/has_key'
diff --git a/spec/ruby/library/cgi/queryextension/host_spec.rb b/spec/ruby/library/cgi/queryextension/host_spec.rb
index 2eaf1330c0..e1047c942b 100644
--- a/spec/ruby/library/cgi/queryextension/host_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/host_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#host" do
diff --git a/spec/ruby/library/cgi/queryextension/include_spec.rb b/spec/ruby/library/cgi/queryextension/include_spec.rb
index 18520c4aaf..7275c309f9 100644
--- a/spec/ruby/library/cgi/queryextension/include_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/include_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'shared/has_key'
diff --git a/spec/ruby/library/cgi/queryextension/key_spec.rb b/spec/ruby/library/cgi/queryextension/key_spec.rb
index c8c5870eba..dc2f52fbe0 100644
--- a/spec/ruby/library/cgi/queryextension/key_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/key_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require_relative 'shared/has_key'
diff --git a/spec/ruby/library/cgi/queryextension/keys_spec.rb b/spec/ruby/library/cgi/queryextension/keys_spec.rb
index 0c35404103..bb16914065 100644
--- a/spec/ruby/library/cgi/queryextension/keys_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/keys_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#keys" do
diff --git a/spec/ruby/library/cgi/queryextension/multipart_spec.rb b/spec/ruby/library/cgi/queryextension/multipart_spec.rb
index 72c8073a5a..1fa771ca1c 100644
--- a/spec/ruby/library/cgi/queryextension/multipart_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/multipart_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
require "stringio"
@@ -37,7 +37,7 @@ EOS
end
it "returns true if the current Request is a multipart request" do
- @cgi.multipart?.should be_true
+ @cgi.multipart?.should == true
end
end
end
diff --git a/spec/ruby/library/cgi/queryextension/negotiate_spec.rb b/spec/ruby/library/cgi/queryextension/negotiate_spec.rb
index c159c6cfe2..4083e6a8cd 100644
--- a/spec/ruby/library/cgi/queryextension/negotiate_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/negotiate_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#negotiate" do
diff --git a/spec/ruby/library/cgi/queryextension/params_spec.rb b/spec/ruby/library/cgi/queryextension/params_spec.rb
index e8b447f227..938028ea14 100644
--- a/spec/ruby/library/cgi/queryextension/params_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/params_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#params" do
diff --git a/spec/ruby/library/cgi/queryextension/path_info_spec.rb b/spec/ruby/library/cgi/queryextension/path_info_spec.rb
index 9054f1cfd3..9b7834c514 100644
--- a/spec/ruby/library/cgi/queryextension/path_info_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/path_info_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#path_info" do
diff --git a/spec/ruby/library/cgi/queryextension/path_translated_spec.rb b/spec/ruby/library/cgi/queryextension/path_translated_spec.rb
index 4b17f6c01b..a773aaafdb 100644
--- a/spec/ruby/library/cgi/queryextension/path_translated_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/path_translated_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#path_translated" do
diff --git a/spec/ruby/library/cgi/queryextension/pragma_spec.rb b/spec/ruby/library/cgi/queryextension/pragma_spec.rb
index c6a9c5b973..be384182a5 100644
--- a/spec/ruby/library/cgi/queryextension/pragma_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/pragma_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#pragma" do
diff --git a/spec/ruby/library/cgi/queryextension/query_string_spec.rb b/spec/ruby/library/cgi/queryextension/query_string_spec.rb
index ef3cb9c8fb..64fbeaea10 100644
--- a/spec/ruby/library/cgi/queryextension/query_string_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/query_string_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#query_string" do
diff --git a/spec/ruby/library/cgi/queryextension/raw_cookie2_spec.rb b/spec/ruby/library/cgi/queryextension/raw_cookie2_spec.rb
index 07ef00e8c5..30d314aca1 100644
--- a/spec/ruby/library/cgi/queryextension/raw_cookie2_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/raw_cookie2_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#raw_cookie2" do
diff --git a/spec/ruby/library/cgi/queryextension/raw_cookie_spec.rb b/spec/ruby/library/cgi/queryextension/raw_cookie_spec.rb
index f1ebb8ad82..affa504b39 100644
--- a/spec/ruby/library/cgi/queryextension/raw_cookie_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/raw_cookie_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#raw_cookie" do
diff --git a/spec/ruby/library/cgi/queryextension/referer_spec.rb b/spec/ruby/library/cgi/queryextension/referer_spec.rb
index 737253eac9..53fc19ddd0 100644
--- a/spec/ruby/library/cgi/queryextension/referer_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/referer_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#referer" do
diff --git a/spec/ruby/library/cgi/queryextension/remote_addr_spec.rb b/spec/ruby/library/cgi/queryextension/remote_addr_spec.rb
index e2cc696ae2..7b5addc2d5 100644
--- a/spec/ruby/library/cgi/queryextension/remote_addr_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/remote_addr_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#remote_addr" do
diff --git a/spec/ruby/library/cgi/queryextension/remote_host_spec.rb b/spec/ruby/library/cgi/queryextension/remote_host_spec.rb
index c4db9e4ffe..2dfe59ca38 100644
--- a/spec/ruby/library/cgi/queryextension/remote_host_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/remote_host_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#remote_host" do
diff --git a/spec/ruby/library/cgi/queryextension/remote_ident_spec.rb b/spec/ruby/library/cgi/queryextension/remote_ident_spec.rb
index d507b7d7be..bb05fc7942 100644
--- a/spec/ruby/library/cgi/queryextension/remote_ident_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/remote_ident_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#remote_ident" do
diff --git a/spec/ruby/library/cgi/queryextension/remote_user_spec.rb b/spec/ruby/library/cgi/queryextension/remote_user_spec.rb
index ceee410797..29856302ab 100644
--- a/spec/ruby/library/cgi/queryextension/remote_user_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/remote_user_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#remote_user" do
diff --git a/spec/ruby/library/cgi/queryextension/request_method_spec.rb b/spec/ruby/library/cgi/queryextension/request_method_spec.rb
index b540280261..7331b134d2 100644
--- a/spec/ruby/library/cgi/queryextension/request_method_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/request_method_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#request_method" do
diff --git a/spec/ruby/library/cgi/queryextension/script_name_spec.rb b/spec/ruby/library/cgi/queryextension/script_name_spec.rb
index 49a7847eff..4b359a545f 100644
--- a/spec/ruby/library/cgi/queryextension/script_name_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/script_name_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#script_name" do
diff --git a/spec/ruby/library/cgi/queryextension/server_name_spec.rb b/spec/ruby/library/cgi/queryextension/server_name_spec.rb
index ee5d754ad3..c1f7fb4c54 100644
--- a/spec/ruby/library/cgi/queryextension/server_name_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/server_name_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#server_name" do
diff --git a/spec/ruby/library/cgi/queryextension/server_port_spec.rb b/spec/ruby/library/cgi/queryextension/server_port_spec.rb
index c4f8df78cf..1c88d3225d 100644
--- a/spec/ruby/library/cgi/queryextension/server_port_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/server_port_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#server_port" do
@@ -17,10 +17,10 @@ ruby_version_is ""..."3.5" do
old_value = ENV['SERVER_PORT']
begin
ENV['SERVER_PORT'] = nil
- @cgi.server_port.should be_nil
+ @cgi.server_port.should == nil
ENV['SERVER_PORT'] = "3000"
- @cgi.server_port.should eql(3000)
+ @cgi.server_port.should.eql?(3000)
ensure
ENV['SERVER_PORT'] = old_value
end
diff --git a/spec/ruby/library/cgi/queryextension/server_protocol_spec.rb b/spec/ruby/library/cgi/queryextension/server_protocol_spec.rb
index 35d3b8add1..fdbcc2108f 100644
--- a/spec/ruby/library/cgi/queryextension/server_protocol_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/server_protocol_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#server_protocol" do
diff --git a/spec/ruby/library/cgi/queryextension/server_software_spec.rb b/spec/ruby/library/cgi/queryextension/server_software_spec.rb
index d4fcceb379..c5811a2268 100644
--- a/spec/ruby/library/cgi/queryextension/server_software_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/server_software_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#server_software" do
diff --git a/spec/ruby/library/cgi/queryextension/shared/has_key.rb b/spec/ruby/library/cgi/queryextension/shared/has_key.rb
index cfac5865fa..6231cb548e 100644
--- a/spec/ruby/library/cgi/queryextension/shared/has_key.rb
+++ b/spec/ruby/library/cgi/queryextension/shared/has_key.rb
@@ -12,8 +12,8 @@ describe :cgi_query_extension_has_key_p, shared: true do
end
it "returns true when the passed key exists in the HTTP Query" do
- @cgi.send(@method, "one").should be_true
- @cgi.send(@method, "two").should be_true
- @cgi.send(@method, "three").should be_false
+ @cgi.send(@method, "one").should == true
+ @cgi.send(@method, "two").should == true
+ @cgi.send(@method, "three").should == false
end
end
diff --git a/spec/ruby/library/cgi/queryextension/user_agent_spec.rb b/spec/ruby/library/cgi/queryextension/user_agent_spec.rb
index 070a779123..3240352ef6 100644
--- a/spec/ruby/library/cgi/queryextension/user_agent_spec.rb
+++ b/spec/ruby/library/cgi/queryextension/user_agent_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI::QueryExtension#user_agent" do
diff --git a/spec/ruby/library/cgi/rfc1123_date_spec.rb b/spec/ruby/library/cgi/rfc1123_date_spec.rb
index 2641b40e94..636185f22c 100644
--- a/spec/ruby/library/cgi/rfc1123_date_spec.rb
+++ b/spec/ruby/library/cgi/rfc1123_date_spec.rb
@@ -1,6 +1,6 @@
require_relative '../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
describe "CGI.rfc1123_date when passed Time" do
diff --git a/spec/ruby/library/cgi/shared/http_header.rb b/spec/ruby/library/cgi/shared/http_header.rb
index b225b5925e..e739fed538 100644
--- a/spec/ruby/library/cgi/shared/http_header.rb
+++ b/spec/ruby/library/cgi/shared/http_header.rb
@@ -63,11 +63,11 @@ describe :cgi_http_header, shared: true do
header.should == "Content-Type: text/plain; charset=UTF-8\r\n\r\n"
header = @cgi.send(@method, "nph" => true)
- header.should include("HTTP/1.0 200 OK\r\n")
- header.should include("Date: ")
- header.should include("Server: ")
- header.should include("Connection: close\r\n")
- header.should include("Content-Type: text/html\r\n")
+ header.should.include?("HTTP/1.0 200 OK\r\n")
+ header.should.include?("Date: ")
+ header.should.include?("Server: ")
+ header.should.include?("Connection: close\r\n")
+ header.should.include?("Content-Type: text/html\r\n")
header = @cgi.send(@method, "status" => "OK")
header.should == "Status: 200 OK\r\nContent-Type: text/html\r\n\r\n"
diff --git a/spec/ruby/library/cgi/unescapeElement_spec.rb b/spec/ruby/library/cgi/unescapeElement_spec.rb
index af2fa8a47d..db83f0d2fb 100644
--- a/spec/ruby/library/cgi/unescapeElement_spec.rb
+++ b/spec/ruby/library/cgi/unescapeElement_spec.rb
@@ -1,9 +1,9 @@
require_relative '../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
end
-ruby_version_is "3.5" do
+ruby_version_is "4.0" do
require 'cgi/escape'
end
diff --git a/spec/ruby/library/cgi/unescapeURIComponent_spec.rb b/spec/ruby/library/cgi/unescapeURIComponent_spec.rb
new file mode 100644
index 0000000000..e0bf4b70e0
--- /dev/null
+++ b/spec/ruby/library/cgi/unescapeURIComponent_spec.rb
@@ -0,0 +1,128 @@
+require_relative '../../spec_helper'
+
+ruby_version_is ""..."4.0" do
+ require 'cgi'
+end
+ruby_version_is "4.0" do
+ require 'cgi/escape'
+end
+
+describe "CGI.unescapeURIComponent" do
+ it "decodes any percent-encoded octets to their corresponding bytes according to RFC 3986" do
+ string = (0x00..0xff).map { |i| "%%%02x" % i }.join
+ expected = (0x00..0xff).map { |i| i.chr }.join.force_encoding(Encoding::UTF_8)
+ CGI.unescapeURIComponent(string).should == expected
+ end
+
+ it "disregards case of characters in a percent-encoding triplet" do
+ CGI.unescapeURIComponent("%CE%B2abc").should == "βabc"
+ CGI.unescapeURIComponent("%ce%b2ABC").should == "βABC"
+ end
+
+ it "leaves any non-percent-encoded characters as-is" do
+ string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ:/?#[]@!$&'()*+,;=\t\x0D\xFFβᛉ▒90%"
+ decoded = CGI.unescapeURIComponent(string)
+ decoded.should == string
+ string.should_not.equal?(decoded)
+ end
+
+ it "leaves sequences which can't be a percent-encoded octet as-is" do
+ string = "%AZ%B"
+ decoded = CGI.unescapeURIComponent(string)
+ decoded.should == string
+ string.should_not.equal?(decoded)
+ end
+
+ it "creates a String with the specified target Encoding" do
+ string = CGI.unescapeURIComponent("%D2%3C%3CABC", Encoding::ISO_8859_1)
+ string.encoding.should == Encoding::ISO_8859_1
+ string.should == "Ò<<ABC".encode("ISO-8859-1")
+ end
+
+ it "accepts a string name of an Encoding" do
+ CGI.unescapeURIComponent("%D2%3C%3CABC", "ISO-8859-1").should == "Ò<<ABC".encode("ISO-8859-1")
+ end
+
+ it "raises ArgumentError if specified encoding is unknown" do
+ -> { CGI.unescapeURIComponent("ABC", "ISO-JOKE-1") }.should.raise(ArgumentError, "unknown encoding name - ISO-JOKE-1")
+ end
+
+ ruby_version_is ""..."4.0" do
+ it "uses CGI.accept_charset as the default target encoding" do
+ original_charset = CGI.accept_charset
+ CGI.accept_charset = "ISO-8859-1"
+ decoded = CGI.unescapeURIComponent("%D2%3C%3CABC")
+ decoded.should == "Ò<<ABC".encode("ISO-8859-1")
+ decoded.encoding.should == Encoding::ISO_8859_1
+ ensure
+ CGI.accept_charset = original_charset
+ end
+
+ it "has CGI.accept_charset as UTF-8 by default" do
+ decoded = CGI.unescapeURIComponent("%CE%B2ABC")
+ decoded.should == "βABC"
+ decoded.encoding.should == Encoding::UTF_8
+ end
+ end
+
+ ruby_version_is "4.0" do
+ # "cgi/escape" does not have methods to access @@accept_charset.
+ # Full "cgi" gem provides them, allowing to possibly change it.
+ it "uses CGI's @@accept_charset as the default target encoding" do
+ original_charset = CGI.class_variable_get(:@@accept_charset)
+ CGI.class_variable_set(:@@accept_charset, "ISO-8859-1")
+ decoded = CGI.unescapeURIComponent("%D2%3C%3CABC")
+ decoded.should == "Ò<<ABC".encode("ISO-8859-1")
+ decoded.encoding.should == Encoding::ISO_8859_1
+ ensure
+ CGI.class_variable_set(:@@accept_charset, original_charset)
+ end
+
+ it "has CGI's @@accept_charset as UTF-8 by default" do
+ decoded = CGI.unescapeURIComponent("%CE%B2ABC")
+ decoded.should == "βABC"
+ decoded.encoding.should == Encoding::UTF_8
+ end
+ end
+
+ context "when source string specifies octets invalid in target encoding" do
+ it "uses source string's encoding" do
+ string = "%A2%A6%A3".encode(Encoding::SHIFT_JIS)
+ decoded = CGI.unescapeURIComponent(string, Encoding::US_ASCII)
+ decoded.encoding.should == Encoding::SHIFT_JIS
+ decoded.should == "「ヲ」".encode(Encoding::SHIFT_JIS)
+ decoded.valid_encoding?.should == true
+ end
+
+ it "uses source string's encoding even if it's also invalid" do
+ string = "%FF".encode(Encoding::US_ASCII)
+ decoded = CGI.unescapeURIComponent(string, Encoding::SHIFT_JIS)
+ decoded.encoding.should == Encoding::US_ASCII
+ decoded.should == "\xFF".dup.force_encoding(Encoding::US_ASCII)
+ decoded.valid_encoding?.should == false
+ end
+ end
+
+ it "decodes an empty string as an empty string with target encoding" do
+ string = "".encode(Encoding::BINARY)
+ decoded = CGI.unescapeURIComponent(string, "UTF-8")
+ decoded.should == ""
+ decoded.encoding.should == Encoding::UTF_8
+ string.should_not.equal?(decoded)
+ end
+
+ it "raises a TypeError with nil" do
+ -> {
+ CGI.unescapeURIComponent(nil)
+ }.should.raise(TypeError, "no implicit conversion of nil into String")
+ end
+
+ it "uses implicit type conversion to String" do
+ object = Object.new
+ def object.to_str
+ "a%20b"
+ end
+
+ CGI.unescapeURIComponent(object).should == "a b"
+ end
+end
diff --git a/spec/ruby/library/cgi/unescape_spec.rb b/spec/ruby/library/cgi/unescape_spec.rb
index e750c72921..aa731b9367 100644
--- a/spec/ruby/library/cgi/unescape_spec.rb
+++ b/spec/ruby/library/cgi/unescape_spec.rb
@@ -1,10 +1,10 @@
# -*- encoding: utf-8 -*-
require_relative '../../spec_helper'
-ruby_version_is ""..."3.5" do
+ruby_version_is ""..."4.0" do
require 'cgi'
end
-ruby_version_is "3.5" do
+ruby_version_is "4.0" do
require 'cgi/escape'
end