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.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/.travis.yml +8 -0
- data/Gemfile +4 -0
- data/LICENSE +25 -0
- data/README.md +29 -0
- data/Rakefile +2 -0
- data/lib/cgi.rb +1 -0
- data/lib/rubysl/cgi.rb +2 -0
- data/lib/rubysl/cgi/cgi.rb +2333 -0
- data/lib/rubysl/cgi/version.rb +5 -0
- data/rubysl-cgi.gemspec +23 -0
- data/spec/cookie/domain_spec.rb +22 -0
- data/spec/cookie/expires_spec.rb +22 -0
- data/spec/cookie/initialize_spec.rb +146 -0
- data/spec/cookie/name_spec.rb +22 -0
- data/spec/cookie/parse_spec.rb +17 -0
- data/spec/cookie/path_spec.rb +22 -0
- data/spec/cookie/secure_spec.rb +69 -0
- data/spec/cookie/to_s_spec.rb +28 -0
- data/spec/cookie/value_spec.rb +79 -0
- data/spec/escapeElement_spec.rb +19 -0
- data/spec/escapeHTML_spec.rb +25 -0
- data/spec/escape_spec.rb +13 -0
- data/spec/header_spec.rb +7 -0
- data/spec/htmlextension/a_spec.rb +48 -0
- data/spec/htmlextension/base_spec.rb +32 -0
- data/spec/htmlextension/blockquote_spec.rb +32 -0
- data/spec/htmlextension/br_spec.rb +21 -0
- data/spec/htmlextension/caption_spec.rb +32 -0
- data/spec/htmlextension/checkbox_group_spec.rb +77 -0
- data/spec/htmlextension/checkbox_spec.rb +76 -0
- data/spec/htmlextension/doctype_spec.rb +26 -0
- data/spec/htmlextension/file_field_spec.rb +73 -0
- data/spec/htmlextension/fixtures/common.rb +16 -0
- data/spec/htmlextension/form_spec.rb +57 -0
- data/spec/htmlextension/frame_spec.rb +13 -0
- data/spec/htmlextension/frameset_spec.rb +13 -0
- data/spec/htmlextension/hidden_spec.rb +58 -0
- data/spec/htmlextension/html_spec.rb +65 -0
- data/spec/htmlextension/image_button_spec.rb +68 -0
- data/spec/htmlextension/img_spec.rb +84 -0
- data/spec/htmlextension/multipart_form_spec.rb +63 -0
- data/spec/htmlextension/password_field_spec.rb +83 -0
- data/spec/htmlextension/popup_menu_spec.rb +7 -0
- data/spec/htmlextension/radio_button_spec.rb +76 -0
- data/spec/htmlextension/radio_group_spec.rb +78 -0
- data/spec/htmlextension/reset_spec.rb +56 -0
- data/spec/htmlextension/scrolling_list_spec.rb +7 -0
- data/spec/htmlextension/shared/popup_menu.rb +94 -0
- data/spec/htmlextension/submit_spec.rb +56 -0
- data/spec/htmlextension/text_field_spec.rb +83 -0
- data/spec/htmlextension/textarea_spec.rb +72 -0
- data/spec/http_header_spec.rb +9 -0
- data/spec/initialize_spec.rb +171 -0
- data/spec/out_spec.rb +50 -0
- data/spec/parse_spec.rb +23 -0
- data/spec/pretty_spec.rb +23 -0
- data/spec/print_spec.rb +25 -0
- data/spec/queryextension/accept_charset_spec.rb +21 -0
- data/spec/queryextension/accept_encoding_spec.rb +21 -0
- data/spec/queryextension/accept_language_spec.rb +21 -0
- data/spec/queryextension/accept_spec.rb +21 -0
- data/spec/queryextension/auth_type_spec.rb +21 -0
- data/spec/queryextension/cache_control_spec.rb +21 -0
- data/spec/queryextension/content_length_spec.rb +25 -0
- data/spec/queryextension/content_type_spec.rb +21 -0
- data/spec/queryextension/cookies_spec.rb +9 -0
- data/spec/queryextension/element_reference_spec.rb +33 -0
- data/spec/queryextension/from_spec.rb +21 -0
- data/spec/queryextension/gateway_interface_spec.rb +21 -0
- data/spec/queryextension/has_key_spec.rb +6 -0
- data/spec/queryextension/host_spec.rb +21 -0
- data/spec/queryextension/include_spec.rb +6 -0
- data/spec/queryextension/key_spec.rb +6 -0
- data/spec/queryextension/keys_spec.rb +19 -0
- data/spec/queryextension/multipart_spec.rb +39 -0
- data/spec/queryextension/negotiate_spec.rb +21 -0
- data/spec/queryextension/params_spec.rb +44 -0
- data/spec/queryextension/path_info_spec.rb +21 -0
- data/spec/queryextension/path_translated_spec.rb +21 -0
- data/spec/queryextension/pragma_spec.rb +21 -0
- data/spec/queryextension/query_string_spec.rb +21 -0
- data/spec/queryextension/raw_cookie2_spec.rb +21 -0
- data/spec/queryextension/raw_cookie_spec.rb +21 -0
- data/spec/queryextension/referer_spec.rb +21 -0
- data/spec/queryextension/remote_addr_spec.rb +21 -0
- data/spec/queryextension/remote_host_spec.rb +21 -0
- data/spec/queryextension/remote_ident_spec.rb +21 -0
- data/spec/queryextension/remote_user_spec.rb +21 -0
- data/spec/queryextension/request_method_spec.rb +21 -0
- data/spec/queryextension/script_name_spec.rb +21 -0
- data/spec/queryextension/server_name_spec.rb +21 -0
- data/spec/queryextension/server_port_spec.rb +25 -0
- data/spec/queryextension/server_protocol_spec.rb +21 -0
- data/spec/queryextension/server_software_spec.rb +21 -0
- data/spec/queryextension/shared/has_key.rb +19 -0
- data/spec/queryextension/user_agent_spec.rb +21 -0
- data/spec/rfc1123_date_spec.rb +9 -0
- data/spec/shared/http_header.rb +111 -0
- data/spec/unescapeElement_spec.rb +19 -0
- data/spec/unescapeHTML_spec.rb +33 -0
- data/spec/unescape_spec.rb +14 -0
- metadata +293 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
module CGISpecs
|
2
|
+
def self.cgi_new(html = "html4")
|
3
|
+
cgi = nil
|
4
|
+
ruby_version_is "" ... "1.9" do
|
5
|
+
cgi = CGI.new(html)
|
6
|
+
end
|
7
|
+
ruby_version_is "1.9" do
|
8
|
+
cgi = CGI.new(:tag_maker => html)
|
9
|
+
end
|
10
|
+
cgi
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.split(string)
|
14
|
+
string.split("<").reject { |x| x.empty? }.map { |x| "<#{x}" }
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
require File.expand_path('../fixtures/common', __FILE__)
|
3
|
+
|
4
|
+
describe "CGI::HtmlExtension#form" do
|
5
|
+
before(:each) do
|
6
|
+
@html = CGISpecs.cgi_new
|
7
|
+
@html.stub!(:script_name).and_return("/path/to/some/script")
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "when passed no arguments" do
|
11
|
+
it "returns a 'form'-element" do
|
12
|
+
output = @html.form
|
13
|
+
output.should equal_element("FORM", {"ENCTYPE" => "application/x-www-form-urlencoded", "METHOD" => "post", "ACTION" => "/path/to/some/script"}, "")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "includes the return value of the passed block when passed a block" do
|
17
|
+
output = @html.form { "test" }
|
18
|
+
output.should equal_element("FORM", {"ENCTYPE" => "application/x-www-form-urlencoded", "METHOD" => "post", "ACTION" => "/path/to/some/script"}, "test")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "when passed method" do
|
23
|
+
it "returns a 'form'-element with the passed method" do
|
24
|
+
output = @html.form("get")
|
25
|
+
output.should equal_element("FORM", {"ENCTYPE" => "application/x-www-form-urlencoded", "METHOD" => "get", "ACTION" => "/path/to/some/script"}, "")
|
26
|
+
end
|
27
|
+
|
28
|
+
it "includes the return value of the passed block when passed a block" do
|
29
|
+
output = @html.form("get") { "test" }
|
30
|
+
output.should equal_element("FORM", {"ENCTYPE" => "application/x-www-form-urlencoded", "METHOD" => "get", "ACTION" => "/path/to/some/script"}, "test")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "when passed method, action" do
|
35
|
+
it "returns a 'form'-element with the passed method and the passed action" do
|
36
|
+
output = @html.form("get", "/some/other/script")
|
37
|
+
output.should equal_element("FORM", {"ENCTYPE" => "application/x-www-form-urlencoded", "METHOD" => "get", "ACTION" => "/some/other/script"}, "")
|
38
|
+
end
|
39
|
+
|
40
|
+
it "includes the return value of the passed block when passed a block" do
|
41
|
+
output = @html.form("get", "/some/other/script") { "test" }
|
42
|
+
output.should equal_element("FORM", {"ENCTYPE" => "application/x-www-form-urlencoded", "METHOD" => "get", "ACTION" => "/some/other/script"}, "test")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "when passed method, action, enctype" do
|
47
|
+
it "returns a 'form'-element with the passed method, action and enctype" do
|
48
|
+
output = @html.form("get", "/some/other/script", "multipart/form-data")
|
49
|
+
output.should equal_element("FORM", {"ENCTYPE" => "multipart/form-data", "METHOD" => "get", "ACTION" => "/some/other/script"}, "")
|
50
|
+
end
|
51
|
+
|
52
|
+
it "includes the return value of the passed block when passed a block" do
|
53
|
+
output = @html.form("get", "/some/other/script", "multipart/form-data") { "test" }
|
54
|
+
output.should equal_element("FORM", {"ENCTYPE" => "multipart/form-data", "METHOD" => "get", "ACTION" => "/some/other/script"}, "test")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.expand_path('../fixtures/common', __FILE__)
|
2
|
+
require 'cgi'
|
3
|
+
|
4
|
+
describe "CGI::HtmlExtension#frame" do
|
5
|
+
before(:each) do
|
6
|
+
@html = CGISpecs.cgi_new("html4Fr")
|
7
|
+
end
|
8
|
+
|
9
|
+
it "initializes the HTML Generation methods for the Frameset version of HTML4" do
|
10
|
+
@html.frameset.should == "<FRAMESET></FRAMESET>"
|
11
|
+
@html.frameset { "link text" }.should == "<FRAMESET>link text</FRAMESET>"
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.expand_path('../fixtures/common', __FILE__)
|
2
|
+
require 'cgi'
|
3
|
+
|
4
|
+
describe "CGI::HtmlExtension#frameset" do
|
5
|
+
before(:each) do
|
6
|
+
@html = CGISpecs.cgi_new("html4Fr")
|
7
|
+
end
|
8
|
+
|
9
|
+
it "initializes the HTML Generation methods for the Frameset version of HTML4" do
|
10
|
+
@html.frameset.should == "<FRAMESET></FRAMESET>"
|
11
|
+
@html.frameset { "link text" }.should == "<FRAMESET>link text</FRAMESET>"
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
require File.expand_path('../fixtures/common', __FILE__)
|
3
|
+
|
4
|
+
describe "CGI::HtmlExtension#hidden" do
|
5
|
+
before(:each) do
|
6
|
+
@html = CGISpecs.cgi_new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "when passed no arguments" do
|
10
|
+
it "returns an hidden-'input'-element without a name" do
|
11
|
+
output = @html.hidden
|
12
|
+
output.should equal_element("INPUT", {"NAME" => "", "TYPE" => "hidden"}, "", :not_closed => true)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "ignores a passed block" do
|
16
|
+
output = @html.hidden { "test" }
|
17
|
+
output.should equal_element("INPUT", {"NAME" => "", "TYPE" => "hidden"}, "", :not_closed => true)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "when passed name" do
|
22
|
+
it "returns an hidden-'input'-element with the passed name" do
|
23
|
+
output = @html.hidden("test")
|
24
|
+
output.should equal_element("INPUT", {"NAME" => "test", "TYPE" => "hidden"}, "", :not_closed => true)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "ignores a passed block" do
|
28
|
+
output = @html.hidden("test") { "test" }
|
29
|
+
output.should equal_element("INPUT", {"NAME" => "test", "TYPE" => "hidden"}, "", :not_closed => true)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "when passed name, value" do
|
34
|
+
it "returns an hidden-'input'-element with the passed name and value" do
|
35
|
+
output = @html.hidden("test", "some value")
|
36
|
+
output.should equal_element("INPUT", {"NAME" => "test", "TYPE" => "hidden", "VALUE" => "some value"}, "", :not_closed => true)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "ignores a passed block" do
|
40
|
+
output = @html.hidden("test", "some value") { "test" }
|
41
|
+
output.should equal_element("INPUT", {"NAME" => "test", "TYPE" => "hidden", "VALUE" => "some value"}, "", :not_closed => true)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "when passed Hash" do
|
46
|
+
it "returns a checkbox-'input'-element using the passed Hash for attributes" do
|
47
|
+
attributes = { "NAME" => "test", "VALUE" => "some value" }
|
48
|
+
output = @html.hidden("test", "some value")
|
49
|
+
output.should equal_element("INPUT", attributes, "", :not_closed => true)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "ignores a passed block" do
|
53
|
+
attributes = { "NAME" => "test", "VALUE" => "some value" }
|
54
|
+
output = @html.hidden("test", "some value") { "test" }
|
55
|
+
output.should equal_element("INPUT", attributes, "", :not_closed => true)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
require File.expand_path('../fixtures/common', __FILE__)
|
3
|
+
|
4
|
+
describe "CGI::HtmlExtension#html" do
|
5
|
+
before(:each) do
|
6
|
+
@html = CGISpecs.cgi_new
|
7
|
+
@html.stub!(:doctype).and_return("<!DOCTYPE SUPA-FUNKAY-RUBYSPEC-DOCTYPE>")
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "when passed no arguments" do
|
11
|
+
it "returns a self's doctype and an 'html'-element" do
|
12
|
+
expected = '<!DOCTYPE SUPA-FUNKAY-RUBYSPEC-DOCTYPE><HTML>'
|
13
|
+
@html.html.should == expected
|
14
|
+
end
|
15
|
+
|
16
|
+
it "includes the passed block when passed a block" do
|
17
|
+
expected = '<!DOCTYPE SUPA-FUNKAY-RUBYSPEC-DOCTYPE><HTML>test</HTML>'
|
18
|
+
@html.html { "test" }.should == expected
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "when passed 'PRETTY'" do
|
23
|
+
it "returns pretty output when the passed String is 'PRETTY" do
|
24
|
+
expected = "<!DOCTYPE SUPA-FUNKAY-RUBYSPEC-DOCTYPE>\n<HTML>\n"
|
25
|
+
@html.html("PRETTY").should == expected
|
26
|
+
end
|
27
|
+
|
28
|
+
it "includes the passed block when passed a block" do
|
29
|
+
expected = "<!DOCTYPE SUPA-FUNKAY-RUBYSPEC-DOCTYPE>\n<HTML>\n test\n</HTML>\n"
|
30
|
+
@html.html("PRETTY") { "test" }.should == expected
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "when passed a Hash" do
|
35
|
+
it "returns an 'html'-element using the passed Hash for attributes" do
|
36
|
+
expected = '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><HTML BLA="TEST">'
|
37
|
+
@html.html("DOCTYPE" => '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">', "BLA" => "TEST").should == expected
|
38
|
+
end
|
39
|
+
|
40
|
+
it "omits the doctype when the Hash contains a 'DOCTYPE' entry that's false or nil" do
|
41
|
+
@html.html("DOCTYPE" => false).should == "<HTML>"
|
42
|
+
@html.html("DOCTYPE" => nil).should == "<HTML>"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "when each HTML generation" do
|
47
|
+
it "returns the doctype declaration for HTML3" do
|
48
|
+
expect = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">'
|
49
|
+
CGISpecs.cgi_new("html3").html.should == expect + "<HTML>"
|
50
|
+
CGISpecs.cgi_new("html3").html { "html body" }.should == expect + "<HTML>html body</HTML>"
|
51
|
+
end
|
52
|
+
|
53
|
+
it "returns the doctype declaration for HTML4" do
|
54
|
+
expect = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">'
|
55
|
+
CGISpecs.cgi_new("html4").html.should == expect + "<HTML>"
|
56
|
+
CGISpecs.cgi_new("html4").html { "html body" }.should == expect + "<HTML>html body</HTML>"
|
57
|
+
end
|
58
|
+
|
59
|
+
it "returns the doctype declaration for the Transitional version of HTML4" do
|
60
|
+
expect = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">'
|
61
|
+
CGISpecs.cgi_new("html4Tr").html.should == expect + "<HTML>"
|
62
|
+
CGISpecs.cgi_new("html4Tr").html { "html body" }.should == expect + "<HTML>html body</HTML>"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
require File.expand_path('../fixtures/common', __FILE__)
|
3
|
+
|
4
|
+
describe "CGI::HtmlExtension#image_button" do
|
5
|
+
before(:each) do
|
6
|
+
@html = CGISpecs.cgi_new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "when passed no arguments" do
|
10
|
+
it "returns an image-'input'-element without a source image" do
|
11
|
+
output = @html.image_button
|
12
|
+
output.should equal_element("INPUT", {"SRC" => "", "TYPE" => "image"}, "", :not_closed => true)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "ignores a passed block" do
|
16
|
+
output = @html.image_button { "test" }
|
17
|
+
output.should equal_element("INPUT", {"SRC" => "", "TYPE" => "image"}, "", :not_closed => true)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "when passed src" do
|
22
|
+
it "returns an image-'input'-element with the passed src" do
|
23
|
+
output = @html.image_button("/path/to/image.png")
|
24
|
+
output.should equal_element("INPUT", {"SRC" => "/path/to/image.png", "TYPE" => "image"}, "", :not_closed => true)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "ignores a passed block" do
|
28
|
+
output = @html.image_button("/path/to/image.png") { "test" }
|
29
|
+
output.should equal_element("INPUT", {"SRC" => "/path/to/image.png", "TYPE" => "image"}, "", :not_closed => true)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "when passed src, name" do
|
34
|
+
it "returns an image-'input'-element with the passed src and name" do
|
35
|
+
output = @html.image_button("/path/to/image.png", "test")
|
36
|
+
output.should equal_element("INPUT", {"SRC" => "/path/to/image.png", "TYPE" => "image", "NAME" => "test"}, "", :not_closed => true)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "ignores a passed block" do
|
40
|
+
output = @html.image_button("/path/to/image.png", "test") { "test" }
|
41
|
+
output.should equal_element("INPUT", {"SRC" => "/path/to/image.png", "TYPE" => "image", "NAME" => "test"}, "", :not_closed => true)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "when passed src, name, alt" do
|
46
|
+
it "returns an image-'input'-element with the passed src, name and alt" do
|
47
|
+
output = @html.image_button("/path/to/image.png", "test", "alternative")
|
48
|
+
output.should equal_element("INPUT", {"SRC" => "/path/to/image.png", "TYPE" => "image", "NAME" => "test", "ALT" => "alternative"}, "", :not_closed => true)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "ignores a passed block" do
|
52
|
+
output = @html.image_button("/path/to/image.png", "test", "alternative") { "test" }
|
53
|
+
output.should equal_element("INPUT", {"SRC" => "/path/to/image.png", "TYPE" => "image", "NAME" => "test", "ALT" => "alternative"}, "", :not_closed => true)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe "when passed Hash" do
|
58
|
+
it "returns a image-'input'-element using the passed Hash for attributes" do
|
59
|
+
output = @html.image_button("NAME" => "test", "VALUE" => "test-value")
|
60
|
+
output.should equal_element("INPUT", {"SRC" => "", "TYPE" => "image", "NAME" => "test", "VALUE" => "test-value"}, "", :not_closed => true)
|
61
|
+
end
|
62
|
+
|
63
|
+
it "ignores a passed block" do
|
64
|
+
output = @html.image_button("NAME" => "test", "VALUE" => "test-value") { "test" }
|
65
|
+
output.should equal_element("INPUT", {"SRC" => "", "TYPE" => "image", "NAME" => "test", "VALUE" => "test-value"}, "", :not_closed => true)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
require File.expand_path('../fixtures/common', __FILE__)
|
3
|
+
|
4
|
+
describe "CGI::HtmlExtension#img" do
|
5
|
+
before(:each) do
|
6
|
+
@html = CGISpecs.cgi_new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "when passed no arguments" do
|
10
|
+
it "returns an 'img'-element without an src-url or alt-text" do
|
11
|
+
output = @html.img
|
12
|
+
output.should equal_element("IMG", { "SRC" => "", "ALT" => "" }, "", :not_closed => true)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "ignores a passed block" do
|
16
|
+
output = @html.img { "test" }
|
17
|
+
output.should equal_element("IMG", { "SRC" => "", "ALT" => "" }, "", :not_closed => true)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "when passed src" do
|
22
|
+
it "returns an 'img'-element with the passed src-url" do
|
23
|
+
output = @html.img("/path/to/some/image.png")
|
24
|
+
output.should equal_element("IMG", { "SRC" => "/path/to/some/image.png", "ALT" => "" }, "", :not_closed => true)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "ignores a passed block" do
|
28
|
+
output = @html.img("/path/to/some/image.png")
|
29
|
+
output.should equal_element("IMG", { "SRC" => "/path/to/some/image.png", "ALT" => "" }, "", :not_closed => true)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "when passed src, alt" do
|
34
|
+
it "returns an 'img'-element with the passed src-url and the passed alt-text" do
|
35
|
+
output = @html.img("/path/to/some/image.png", "Alternative")
|
36
|
+
output.should equal_element("IMG", { "SRC" => "/path/to/some/image.png", "ALT" => "Alternative" }, "", :not_closed => true)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "ignores a passed block" do
|
40
|
+
output = @html.img("/path/to/some/image.png", "Alternative") { "test" }
|
41
|
+
output.should equal_element("IMG", { "SRC" => "/path/to/some/image.png", "ALT" => "Alternative" }, "", :not_closed => true)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "when passed src, alt, width" do
|
46
|
+
it "returns an 'img'-element with the passed src-url, the passed alt-text and the passed width" do
|
47
|
+
output = @html.img("/path/to/some/image.png", "Alternative", 40)
|
48
|
+
output.should equal_element("IMG", { "SRC" => "/path/to/some/image.png", "ALT" => "Alternative", "WIDTH" => "40" }, "", :not_closed => true)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "ignores a passed block" do
|
52
|
+
output = @html.img("/path/to/some/image.png", "Alternative", 40) { "test" }
|
53
|
+
output.should equal_element("IMG", { "SRC" => "/path/to/some/image.png", "ALT" => "Alternative", "WIDTH" => "40" }, "", :not_closed => true)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe "when passed src, alt, width, height" do
|
58
|
+
it "returns an 'img'-element with the passed src-url, the passed alt-text, the passed width and the passed height" do
|
59
|
+
output = @html.img("/path/to/some/image.png", "Alternative", 40, 60)
|
60
|
+
output.should equal_element("IMG", { "SRC" => "/path/to/some/image.png", "ALT" => "Alternative", "WIDTH" => "40", "HEIGHT" => "60" }, "", :not_closed => true)
|
61
|
+
end
|
62
|
+
|
63
|
+
it "ignores a passed block" do
|
64
|
+
output = @html.img { "test" }
|
65
|
+
output.should equal_element("IMG", { "SRC" => "", "ALT" => "" }, "", :not_closed => true)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe "when passed Hash" do
|
70
|
+
ruby_bug "http://redmine.ruby-lang.org/issues/show/255", "1.8.7" do
|
71
|
+
it "returns an 'img'-element with the passed Hash as attributes" do
|
72
|
+
attributes = { "SRC" => "src", "ALT" => "alt", "WIDTH" => 100, "HEIGHT" => 50 }
|
73
|
+
output = @html.img(attributes)
|
74
|
+
output.should equal_element("IMG", attributes, "", :not_closed => true)
|
75
|
+
end
|
76
|
+
|
77
|
+
it "ignores a passed block" do
|
78
|
+
attributes = { "SRC" => "src", "ALT" => "alt", "WIDTH" => 100, "HEIGHT" => 50 }
|
79
|
+
output = @html.img(attributes) { "test" }
|
80
|
+
output.should equal_element("IMG", attributes, "", :not_closed => true)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
require File.expand_path('../fixtures/common', __FILE__)
|
3
|
+
|
4
|
+
describe "CGI::HtmlExtension#multipart_form" do
|
5
|
+
before(:each) do
|
6
|
+
@html = CGISpecs.cgi_new
|
7
|
+
@html.stub!(:script_name).and_return("/path/to/some/script.rb")
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "when passed no arguments" do
|
11
|
+
it "returns a 'form'-element with it's enctype set to multipart" do
|
12
|
+
output = @html.multipart_form
|
13
|
+
output.should equal_element("FORM", { "ENCTYPE" => "multipart/form-data", "METHOD" => "post" }, "")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "includes the return value of the passed block when passed a block" do
|
17
|
+
output = @html.multipart_form { "test" }
|
18
|
+
output.should equal_element("FORM", { "ENCTYPE" => "multipart/form-data", "METHOD" => "post" }, "test")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "when passed action" do
|
23
|
+
it "returns a 'form'-element with the passed action" do
|
24
|
+
output = @html.multipart_form("/some/other/script.rb")
|
25
|
+
output.should equal_element("FORM", { "ENCTYPE" => "multipart/form-data", "METHOD" => "post", "ACTION" => "/some/other/script.rb" }, "")
|
26
|
+
end
|
27
|
+
|
28
|
+
it "includes the return value of the passed block when passed a block" do
|
29
|
+
output = @html.multipart_form("/some/other/script.rb") { "test" }
|
30
|
+
output.should equal_element("FORM", { "ENCTYPE" => "multipart/form-data", "METHOD" => "post", "ACTION" => "/some/other/script.rb" }, "test")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "when passed action, enctype" do
|
35
|
+
it "returns a 'form'-element with the passed action and enctype" do
|
36
|
+
output = @html.multipart_form("/some/other/script.rb", "application/x-www-form-urlencoded")
|
37
|
+
output.should equal_element("FORM", { "ENCTYPE" => "application/x-www-form-urlencoded", "METHOD" => "post", "ACTION" => "/some/other/script.rb" }, "")
|
38
|
+
end
|
39
|
+
|
40
|
+
it "includes the return value of the passed block when passed a block" do
|
41
|
+
output = @html.multipart_form("/some/other/script.rb", "application/x-www-form-urlencoded") { "test" }
|
42
|
+
output.should equal_element("FORM", { "ENCTYPE" => "application/x-www-form-urlencoded", "METHOD" => "post", "ACTION" => "/some/other/script.rb" }, "test")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "when passed Hash" do
|
47
|
+
it "returns a 'form'-element with the passed Hash as attributes" do
|
48
|
+
output = @html.multipart_form("ID" => "test")
|
49
|
+
output.should equal_element("FORM", { "ENCTYPE" => "multipart/form-data", "METHOD" => "post", "ID" => "test" }, "")
|
50
|
+
|
51
|
+
output = @html.multipart_form("ID" => "test", "ENCTYPE" => "application/x-www-form-urlencoded", "METHOD" => "get")
|
52
|
+
output.should equal_element("FORM", { "ENCTYPE" => "application/x-www-form-urlencoded", "METHOD" => "get", "ID" => "test" }, "")
|
53
|
+
end
|
54
|
+
|
55
|
+
it "includes the return value of the passed block when passed a block" do
|
56
|
+
output = @html.multipart_form("ID" => "test") { "test" }
|
57
|
+
output.should equal_element("FORM", { "ENCTYPE" => "multipart/form-data", "METHOD" => "post", "ID" => "test" }, "test")
|
58
|
+
|
59
|
+
output = @html.multipart_form("ID" => "test", "ENCTYPE" => "application/x-www-form-urlencoded", "METHOD" => "get") { "test" }
|
60
|
+
output.should equal_element("FORM", { "ENCTYPE" => "application/x-www-form-urlencoded", "METHOD" => "get", "ID" => "test" }, "test")
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|