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