rubysl-cgi 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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