diff --git a/spec/form/check_box_spec.cr b/spec/form/check_box_spec.cr
new file mode 100644
index 0000000..7f227b2
--- /dev/null
+++ b/spec/form/check_box_spec.cr
@@ -0,0 +1,46 @@
+require "../spec_helper"
+
+WebMock.stub(:get, "example.com/form/check_box").to_return(body:
+<<-BODY
+
+
+ page_title
+
+
+
+
+
+BODY
+)
+
+describe "Form Fields CheckBox" do
+ agent = Mechanize.new
+ page = agent.get("http://example.com/form/check_box")
+ form = page.forms[0]
+ checkbox = form.checkboxes.first
+
+ it "returns checkbox status" do
+ checkbox.checked?.should eq true
+ end
+
+ it "can change check status" do
+ checkbox.checked?.should eq true
+ checkbox.uncheck
+ checkbox.checked?.should eq false
+ checkbox.check
+ checkbox.checked?.should eq true
+ # #click reverses check status
+ checkbox.click
+ checkbox.checked?.should eq false
+ checkbox.click
+ checkbox.checked?.should eq true
+ end
+
+ it "doesn't included in request data if checkbox isn't checked" do
+ form.request_data.should contain("remember_me=on")
+ checkbox.uncheck
+ form.request_data.should_not contain("remember_me=")
+ end
+end
diff --git a/spec/form/field_spec.cr b/spec/form/field_spec.cr
new file mode 100644
index 0000000..7079e52
--- /dev/null
+++ b/spec/form/field_spec.cr
@@ -0,0 +1,28 @@
+require "../spec_helper"
+
+WebMock.stub(:get, "example.com/form/fields").to_return(body:
+<<-BODY
+
+
+ page_title
+
+
+
+
+
+BODY
+)
+
+describe "Form Fields" do
+ agent = Mechanize.new
+ page = agent.get("http://example.com/form/fields")
+ form = page.forms[0]
+ it "returns field attribute" do
+ field = form.fields.first
+ field.type.should eq "text"
+ field.name.should eq "name"
+ end
+end
diff --git a/spec/form/radio_button_spec.cr b/spec/form/radio_button_spec.cr
new file mode 100644
index 0000000..02bc7ef
--- /dev/null
+++ b/spec/form/radio_button_spec.cr
@@ -0,0 +1,74 @@
+require "../spec_helper.cr"
+
+WebMock.stub(:get, "example.com/form/radio_button").to_return(body:
+<<-BODY
+
+
+ page_title
+
+
+
+
+
+BODY
+)
+
+describe "Form Fields RadioButton" do
+ agent = Mechanize.new
+ page = agent.get("http://example.com/form/radio_button")
+ form = page.forms[0]
+
+ radiobuttons = form.radiobuttons
+ radiobuttons.size.should eq 3
+
+ it "returns radiobutton check status" do
+ radiobuttons.map(&.checked?).should eq [false,false,false]
+ end
+
+ it "can change check status" do
+ radiobutton = radiobuttons.first
+ radiobutton.checked?.should eq false
+ radiobutton.check
+ radiobutton.checked?.should eq true
+ radiobutton.uncheck
+ radiobutton.checked?.should eq false
+ # #click reverses check status
+ radiobutton.click
+ radiobutton.checked?.should eq true
+ radiobutton.click
+ radiobutton.checked?.should eq false
+ end
+
+ it "check status is exclusive" do
+ radiobuttons[0].check
+ radiobuttons[0].checked.should eq true
+ radiobuttons[1].checked.should eq false
+ radiobuttons[1].check
+ radiobuttons[1].checked.should eq true
+ radiobuttons[0].checked.should eq false
+ end
+
+ it "doesn't included in request data if checkbox isn't checked" do
+ radiobuttons[0].check
+ form.request_data.should contain "contact=email"
+ radiobuttons[0].uncheck
+ form.request_data.should_not contain "contact"
+ end
+
+ it "can be found by radiobutton_with method" do
+ radiobutton = form.radiobutton_with("contact")
+ radiobutton.value.should eq "email"
+ end
+
+ it "can be found by radiobuttons_with method" do
+ radiobuttons = form.radiobuttons_with("contact")
+ radiobuttons.size.should eq 3
+ radiobuttons[0].value.should eq "email"
+ radiobuttons[1].value.should eq "phone"
+ radiobuttons[2].value.should eq "mail"
+ end
+end
diff --git a/spec/form_spec.cr b/spec/form_spec.cr
index 15c2b8a..ce29a40 100644
--- a/spec/form_spec.cr
+++ b/spec/form_spec.cr
@@ -36,91 +36,4 @@ describe "Mechanize Form test" do
it "includes fields" do
form.fields.size.should eq 2
end
-
- context "Form Fields" do
- it "returns field attribute" do
- field = form.fields.first
- field.type.should eq "text"
- field.name.should eq "name"
- end
- end
-
- context "Form Fields CheckBox" do
- checkbox = form.checkboxes.first
-
- it "returns checkbox status" do
- checkbox.checked?.should eq true
- end
-
- it "can change check status" do
- checkbox.checked?.should eq true
- checkbox.uncheck
- checkbox.checked?.should eq false
- checkbox.check
- checkbox.checked?.should eq true
- # #click reverses check status
- checkbox.click
- checkbox.checked?.should eq false
- checkbox.click
- checkbox.checked?.should eq true
- end
-
- it "doesn't included in request data if checkbox isn't checked" do
- form.request_data.should contain("remember_me=on")
- checkbox.uncheck
- form.request_data.should_not contain("remember_me=")
- end
- end
-
- context "Form Fields RadioButton" do
- radiobuttons = form.radiobuttons
- radiobuttons.size.should eq 3
-
- it "returns radiobutton check status" do
- radiobuttons.map(&.checked?).should eq [false,false,false]
- end
-
- it "can change check status" do
- radiobutton = radiobuttons.first
- radiobutton.checked?.should eq false
- radiobutton.check
- radiobutton.checked?.should eq true
- radiobutton.uncheck
- radiobutton.checked?.should eq false
- # #click reverses check status
- radiobutton.click
- radiobutton.checked?.should eq true
- radiobutton.click
- radiobutton.checked?.should eq false
- end
-
- it "check status is exclusive" do
- radiobuttons[0].check
- radiobuttons[0].checked.should eq true
- radiobuttons[1].checked.should eq false
- radiobuttons[1].check
- radiobuttons[1].checked.should eq true
- radiobuttons[0].checked.should eq false
- end
-
- it "doesn't included in request data if checkbox isn't checked" do
- radiobuttons[0].check
- form.request_data.should contain "contact=email"
- radiobuttons[0].uncheck
- form.request_data.should_not contain "contact"
- end
-
- it "can be found by radiobutton_with method" do
- radiobutton = form.radiobutton_with("contact")
- radiobutton.value.should eq "email"
- end
-
- it "can be found by radiobuttons_with method" do
- radiobuttons = form.radiobuttons_with("contact")
- radiobuttons.size.should eq 3
- radiobuttons[0].value.should eq "email"
- radiobuttons[1].value.should eq "phone"
- radiobuttons[2].value.should eq "mail"
- end
- end
end