From af1f596ce028703c2b6915fd90a9293e886960d4 Mon Sep 17 00:00:00 2001 From: Marc Seeger Date: Sun, 26 Jun 2011 10:47:06 -0700 Subject: [PATCH 1/3] added 'checked?' support --- lib/capybara/driver/webkit/node.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/capybara/driver/webkit/node.rb b/lib/capybara/driver/webkit/node.rb index 01fd36c..6ff7275 100644 --- a/lib/capybara/driver/webkit/node.rb +++ b/lib/capybara/driver/webkit/node.rb @@ -53,6 +53,10 @@ class Capybara::Driver::Webkit invoke("visible") == "true" end + def checked? + self['checked'] + end + def disabled? self['disabled'] end From 90e561b296fc66689583de654d221773fab6eeea Mon Sep 17 00:00:00 2001 From: Marc Seeger Date: Sat, 16 Jul 2011 19:16:08 +0200 Subject: [PATCH 2/3] added tests for checked? --- spec/driver_spec.rb | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/spec/driver_spec.rb b/spec/driver_spec.rb index 2fef93d..ce6e868 100644 --- a/spec/driver_spec.rb +++ b/spec/driver_spec.rb @@ -119,6 +119,7 @@ describe Capybara::Driver::Webkit do
Can't see me
+ @@ -253,6 +254,10 @@ describe Capybara::Driver::Webkit do subject.find("//input").first.should be_disabled end + it "reads checked property" do + subject.find("//input[@id='check_test']").should be_checked + end + it "finds visible elements" do subject.find("//p").first.should be_visible subject.find("//*[@id='invisible']").first.should_not be_visible @@ -365,28 +370,36 @@ describe Capybara::Driver::Webkit do checked_box['checked'].should be_true end + it "knows a checked box is checked using checked?" do + checked_box.checked?.should be_true + end + it "knows an unchecked box is unchecked" do unchecked_box['checked'].should_not be_true end + it "knows an unchecked box is unchecked using checked?" do + unchecked_box.checked?.should be_false + end + it "checks an unchecked box" do unchecked_box.set(true) - unchecked_box['checked'].should be_true + unchecked_box.checked?.should be_true end it "unchecks a checked box" do checked_box.set(false) - checked_box['checked'].should_not be_true + checked_box.checked?.should_not be_true end it "leaves a checked box checked" do checked_box.set(true) - checked_box['checked'].should be_true + checked_box.checked?.should be_true end it "leaves an unchecked box unchecked" do unchecked_box.set(false) - unchecked_box['checked'].should_not be_true + unchecked_box.checked?.should_not be_true end let(:enabled_input) { subject.find("//input[@name='foo']").first } From 2ad577fb0ca43852add6d2fc637eed235e2a19f7 Mon Sep 17 00:00:00 2001 From: Marc Seeger Date: Sat, 16 Jul 2011 19:34:31 +0200 Subject: [PATCH 3/3] fixed error in "checked?" tests --- spec/driver_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/driver_spec.rb b/spec/driver_spec.rb index ce6e868..705db66 100644 --- a/spec/driver_spec.rb +++ b/spec/driver_spec.rb @@ -119,7 +119,7 @@ describe Capybara::Driver::Webkit do
Can't see me
- + @@ -255,7 +255,7 @@ describe Capybara::Driver::Webkit do end it "reads checked property" do - subject.find("//input[@id='check_test']").should be_checked + subject.find("//input[@id='checktest']").first.should be_checked end it "finds visible elements" do