rubysl-cgi 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.travis.yml +8 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE +25 -0
  6. data/README.md +29 -0
  7. data/Rakefile +2 -0
  8. data/lib/cgi.rb +1 -0
  9. data/lib/rubysl/cgi.rb +2 -0
  10. data/lib/rubysl/cgi/cgi.rb +2333 -0
  11. data/lib/rubysl/cgi/version.rb +5 -0
  12. data/rubysl-cgi.gemspec +23 -0
  13. data/spec/cookie/domain_spec.rb +22 -0
  14. data/spec/cookie/expires_spec.rb +22 -0
  15. data/spec/cookie/initialize_spec.rb +146 -0
  16. data/spec/cookie/name_spec.rb +22 -0
  17. data/spec/cookie/parse_spec.rb +17 -0
  18. data/spec/cookie/path_spec.rb +22 -0
  19. data/spec/cookie/secure_spec.rb +69 -0
  20. data/spec/cookie/to_s_spec.rb +28 -0
  21. data/spec/cookie/value_spec.rb +79 -0
  22. data/spec/escapeElement_spec.rb +19 -0
  23. data/spec/escapeHTML_spec.rb +25 -0
  24. data/spec/escape_spec.rb +13 -0
  25. data/spec/header_spec.rb +7 -0
  26. data/spec/htmlextension/a_spec.rb +48 -0
  27. data/spec/htmlextension/base_spec.rb +32 -0
  28. data/spec/htmlextension/blockquote_spec.rb +32 -0
  29. data/spec/htmlextension/br_spec.rb +21 -0
  30. data/spec/htmlextension/caption_spec.rb +32 -0
  31. data/spec/htmlextension/checkbox_group_spec.rb +77 -0
  32. data/spec/htmlextension/checkbox_spec.rb +76 -0
  33. data/spec/htmlextension/doctype_spec.rb +26 -0
  34. data/spec/htmlextension/file_field_spec.rb +73 -0
  35. data/spec/htmlextension/fixtures/common.rb +16 -0
  36. data/spec/htmlextension/form_spec.rb +57 -0
  37. data/spec/htmlextension/frame_spec.rb +13 -0
  38. data/spec/htmlextension/frameset_spec.rb +13 -0
  39. data/spec/htmlextension/hidden_spec.rb +58 -0
  40. data/spec/htmlextension/html_spec.rb +65 -0
  41. data/spec/htmlextension/image_button_spec.rb +68 -0
  42. data/spec/htmlextension/img_spec.rb +84 -0
  43. data/spec/htmlextension/multipart_form_spec.rb +63 -0
  44. data/spec/htmlextension/password_field_spec.rb +83 -0
  45. data/spec/htmlextension/popup_menu_spec.rb +7 -0
  46. data/spec/htmlextension/radio_button_spec.rb +76 -0
  47. data/spec/htmlextension/radio_group_spec.rb +78 -0
  48. data/spec/htmlextension/reset_spec.rb +56 -0
  49. data/spec/htmlextension/scrolling_list_spec.rb +7 -0
  50. data/spec/htmlextension/shared/popup_menu.rb +94 -0
  51. data/spec/htmlextension/submit_spec.rb +56 -0
  52. data/spec/htmlextension/text_field_spec.rb +83 -0
  53. data/spec/htmlextension/textarea_spec.rb +72 -0
  54. data/spec/http_header_spec.rb +9 -0
  55. data/spec/initialize_spec.rb +171 -0
  56. data/spec/out_spec.rb +50 -0
  57. data/spec/parse_spec.rb +23 -0
  58. data/spec/pretty_spec.rb +23 -0
  59. data/spec/print_spec.rb +25 -0
  60. data/spec/queryextension/accept_charset_spec.rb +21 -0
  61. data/spec/queryextension/accept_encoding_spec.rb +21 -0
  62. data/spec/queryextension/accept_language_spec.rb +21 -0
  63. data/spec/queryextension/accept_spec.rb +21 -0
  64. data/spec/queryextension/auth_type_spec.rb +21 -0
  65. data/spec/queryextension/cache_control_spec.rb +21 -0
  66. data/spec/queryextension/content_length_spec.rb +25 -0
  67. data/spec/queryextension/content_type_spec.rb +21 -0
  68. data/spec/queryextension/cookies_spec.rb +9 -0
  69. data/spec/queryextension/element_reference_spec.rb +33 -0
  70. data/spec/queryextension/from_spec.rb +21 -0
  71. data/spec/queryextension/gateway_interface_spec.rb +21 -0
  72. data/spec/queryextension/has_key_spec.rb +6 -0
  73. data/spec/queryextension/host_spec.rb +21 -0
  74. data/spec/queryextension/include_spec.rb +6 -0
  75. data/spec/queryextension/key_spec.rb +6 -0
  76. data/spec/queryextension/keys_spec.rb +19 -0
  77. data/spec/queryextension/multipart_spec.rb +39 -0
  78. data/spec/queryextension/negotiate_spec.rb +21 -0
  79. data/spec/queryextension/params_spec.rb +44 -0
  80. data/spec/queryextension/path_info_spec.rb +21 -0
  81. data/spec/queryextension/path_translated_spec.rb +21 -0
  82. data/spec/queryextension/pragma_spec.rb +21 -0
  83. data/spec/queryextension/query_string_spec.rb +21 -0
  84. data/spec/queryextension/raw_cookie2_spec.rb +21 -0
  85. data/spec/queryextension/raw_cookie_spec.rb +21 -0
  86. data/spec/queryextension/referer_spec.rb +21 -0
  87. data/spec/queryextension/remote_addr_spec.rb +21 -0
  88. data/spec/queryextension/remote_host_spec.rb +21 -0
  89. data/spec/queryextension/remote_ident_spec.rb +21 -0
  90. data/spec/queryextension/remote_user_spec.rb +21 -0
  91. data/spec/queryextension/request_method_spec.rb +21 -0
  92. data/spec/queryextension/script_name_spec.rb +21 -0
  93. data/spec/queryextension/server_name_spec.rb +21 -0
  94. data/spec/queryextension/server_port_spec.rb +25 -0
  95. data/spec/queryextension/server_protocol_spec.rb +21 -0
  96. data/spec/queryextension/server_software_spec.rb +21 -0
  97. data/spec/queryextension/shared/has_key.rb +19 -0
  98. data/spec/queryextension/user_agent_spec.rb +21 -0
  99. data/spec/rfc1123_date_spec.rb +9 -0
  100. data/spec/shared/http_header.rb +111 -0
  101. data/spec/unescapeElement_spec.rb +19 -0
  102. data/spec/unescapeHTML_spec.rb +33 -0
  103. data/spec/unescape_spec.rb +14 -0
  104. metadata +293 -0
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#path_info" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['PATH_INFO']" do
14
+ old_value, ENV['PATH_INFO'] = ENV['PATH_INFO'], "/test/path"
15
+ begin
16
+ @cgi.path_info.should == "/test/path"
17
+ ensure
18
+ ENV['PATH_INFO'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#path_translated" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['PATH_TRANSLATED']" do
14
+ old_value, ENV['PATH_TRANSLATED'] = ENV['PATH_TRANSLATED'], "/full/path/to/dir"
15
+ begin
16
+ @cgi.path_translated.should == "/full/path/to/dir"
17
+ ensure
18
+ ENV['PATH_TRANSLATED'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#pragma" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['HTTP_PRAGMA']" do
14
+ old_value, ENV['HTTP_PRAGMA'] = ENV['HTTP_PRAGMA'], "no-cache"
15
+ begin
16
+ @cgi.pragma.should == "no-cache"
17
+ ensure
18
+ ENV['HTTP_PRAGMA'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#query_string" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['QUERY_STRING']" do
14
+ old_value, ENV['QUERY_STRING'] = ENV['QUERY_STRING'], "one=a&two=b"
15
+ begin
16
+ @cgi.query_string.should == "one=a&two=b"
17
+ ensure
18
+ ENV['QUERY_STRING'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#raw_cookie2" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['HTTP_COOKIE2']" do
14
+ old_value, ENV['HTTP_COOKIE2'] = ENV['HTTP_COOKIE2'], "some_cookie=data"
15
+ begin
16
+ @cgi.raw_cookie2.should == "some_cookie=data"
17
+ ensure
18
+ ENV['HTTP_COOKIE2'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#raw_cookie" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['HTTP_COOKIE']" do
14
+ old_value, ENV['HTTP_COOKIE'] = ENV['HTTP_COOKIE'], "some_cookie=data"
15
+ begin
16
+ @cgi.raw_cookie.should == "some_cookie=data"
17
+ ensure
18
+ ENV['HTTP_COOKIE'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#referer" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['HTTP_REFERER']" do
14
+ old_value, ENV['HTTP_REFERER'] = ENV['HTTP_REFERER'], "example.com"
15
+ begin
16
+ @cgi.referer.should == "example.com"
17
+ ensure
18
+ ENV['HTTP_REFERER'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#remote_addr" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['REMOTE_ADDR']" do
14
+ old_value, ENV['REMOTE_ADDR'] = ENV['REMOTE_ADDR'], "127.0.0.1"
15
+ begin
16
+ @cgi.remote_addr.should == "127.0.0.1"
17
+ ensure
18
+ ENV['REMOTE_ADDR'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#remote_host" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['REMOTE_HOST']" do
14
+ old_value, ENV['REMOTE_HOST'] = ENV['REMOTE_HOST'], "test.host"
15
+ begin
16
+ @cgi.remote_host.should == "test.host"
17
+ ensure
18
+ ENV['REMOTE_HOST'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#remote_ident" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['REMOTE_IDENT']" do
14
+ old_value, ENV['REMOTE_IDENT'] = ENV['REMOTE_IDENT'], "no-idea-what-this-is-for"
15
+ begin
16
+ @cgi.remote_ident.should == "no-idea-what-this-is-for"
17
+ ensure
18
+ ENV['REMOTE_IDENT'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#remote_user" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['REMOTE_USER']" do
14
+ old_value, ENV['REMOTE_USER'] = ENV['REMOTE_USER'], "username"
15
+ begin
16
+ @cgi.remote_user.should == "username"
17
+ ensure
18
+ ENV['REMOTE_USER'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#request_method" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['REQUEST_METHOD']" do
14
+ old_value, ENV['REQUEST_METHOD'] = ENV['REQUEST_METHOD'], "GET"
15
+ begin
16
+ @cgi.request_method.should == "GET"
17
+ ensure
18
+ ENV['REQUEST_METHOD'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#script_name" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['SCRIPT_NAME']" do
14
+ old_value, ENV['SCRIPT_NAME'] = ENV['SCRIPT_NAME'], "/path/to/script.rb"
15
+ begin
16
+ @cgi.script_name.should == "/path/to/script.rb"
17
+ ensure
18
+ ENV['SCRIPT_NAME'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#server_name" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['SERVER_NAME']" do
14
+ old_value, ENV['SERVER_NAME'] = ENV['SERVER_NAME'], "localhost"
15
+ begin
16
+ @cgi.server_name.should == "localhost"
17
+ ensure
18
+ ENV['SERVER_NAME'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,25 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#server_port" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['SERVER_PORT'] as Integer" do
14
+ old_value = ENV['SERVER_PORT']
15
+ begin
16
+ ENV['SERVER_PORT'] = nil
17
+ @cgi.server_port.should be_nil
18
+
19
+ ENV['SERVER_PORT'] = "3000"
20
+ @cgi.server_port.should eql(3000)
21
+ ensure
22
+ ENV['SERVER_PORT'] = old_value
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#server_protocol" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['SERVER_PROTOCOL']" do
14
+ old_value, ENV['SERVER_PROTOCOL'] = ENV['SERVER_PROTOCOL'], "HTTP/1.1"
15
+ begin
16
+ @cgi.server_protocol.should == "HTTP/1.1"
17
+ ensure
18
+ ENV['SERVER_PROTOCOL'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#server_software" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['SERVER_SOFTWARE']" do
14
+ old_value, ENV['SERVER_SOFTWARE'] = ENV['SERVER_SOFTWARE'], "Server/1.0.0"
15
+ begin
16
+ @cgi.server_software.should == "Server/1.0.0"
17
+ ensure
18
+ ENV['SERVER_SOFTWARE'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,19 @@
1
+ describe :cgi_query_extension_has_key_p, :shared => true do
2
+ before(:each) do
3
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
4
+ ENV['QUERY_STRING'], @old_query_string = "one=a&two=b", ENV['QUERY_STRING']
5
+
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ ENV['QUERY_STRING'] = @old_query_string
12
+ end
13
+
14
+ it "returns true when the passed key exists in the HTTP Query" do
15
+ @cgi.send(@method, "one").should be_true
16
+ @cgi.send(@method, "two").should be_true
17
+ @cgi.send(@method, "three").should be_false
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI::QueryExtension#user_agent" do
4
+ before(:each) do
5
+ ENV['REQUEST_METHOD'], @old_request_method = "GET", ENV['REQUEST_METHOD']
6
+ @cgi = CGI.new
7
+ end
8
+
9
+ after(:each) do
10
+ ENV['REQUEST_METHOD'] = @old_request_method
11
+ end
12
+
13
+ it "returns ENV['HTTP_USER_AGENT']" do
14
+ old_value, ENV['HTTP_USER_AGENT'] = ENV['HTTP_USER_AGENT'], "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_2; de-de) AppleWebKit/527+ (KHTML, like Gecko) Version/3.1 Safari/525.13"
15
+ begin
16
+ @cgi.user_agent.should == "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_2; de-de) AppleWebKit/527+ (KHTML, like Gecko) Version/3.1 Safari/525.13"
17
+ ensure
18
+ ENV['HTTP_USER_AGENT'] = old_value
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,9 @@
1
+ require 'cgi'
2
+
3
+ describe "CGI.rfc1123_date when passsed Time" do
4
+ it "returns the passed Time formatted in RFC1123 ('Sat, 01 Dec 2007 15:56:42 GMT')" do
5
+ input = Time.at(1196524602)
6
+ expected = 'Sat, 01 Dec 2007 15:56:42 GMT'
7
+ CGI.rfc1123_date(input).should == expected
8
+ end
9
+ end