diff --git a/spec/form_spec.cr b/spec/form_spec.cr new file mode 100644 index 0000000..47d823b --- /dev/null +++ b/spec/form_spec.cr @@ -0,0 +1,42 @@ +require "./spec_helper" +WebMock.stub(:get, "html_example.com").to_return(body: +<<-BODY + + + + page_title + + +
+ + + +
+ + +BODY +) + +describe "Mechanize Form test" do + agent = Mechanize.new + uri = "http://html_example.com/" + page = agent.get(uri) + form = page.forms.first + it "retrun form attribute" do + form.action.should eq "post_path" + form.method.should eq "POST" + form.enctype.should eq "application/x-www-form-urlencoded" + form.name.should eq "sample_form" + end + + context "Form Fields" do + it "forms include fields" do + form.fields.size.should eq 3 + end + it "return field attribute" do + field = form.fields.first + field.type.should eq "text" + field.name.should eq "name" + end + end +end diff --git a/src/mechanize/form/field.cr b/src/mechanize/form/field.cr index 10cb583..c6ac667 100644 --- a/src/mechanize/form/field.cr +++ b/src/mechanize/form/field.cr @@ -1,11 +1,16 @@ class MechanizeCr::FormContent::Field - property :node, :value, :name - def initialize(node : Node | Myhtml::Node, value : String = node.fetch("value", ""), name : String = node.fetch("name", "")) + getter :node + getter value : String + getter name : String + getter type : String + getter raw_value : String + + def initialize(node : Node | Myhtml::Node) @node = node - @name = name - #@raw_value = value - @value = value - #@type = node['type'] + @name = node.fetch("name", "") + @value = node.fetch("value", "") + @type = node.fetch("type", "") + @raw_value = value end def query_value