spec/watirspec/radio_spec.rb in watir-webdriver-0.0.7 vs spec/watirspec/radio_spec.rb in watir-webdriver-0.0.8

- old
+ new

@@ -23,10 +23,14 @@ browser.radio(:class, /huge/).should exist browser.radio(:index, 0).should exist browser.radio(:xpath, "//input[@id='new_user_newsletter_yes']").should exist end + it "returns the first radio if given no args" do + browser.radio.should exist + end + it "returns true if the radio button exists (search by name and value)" do browser.radio(:name => "new_user_newsletter", :value => 'yes').should exist browser.radio(:xpath, "//input[@name='new_user_newsletter' and @value='yes']").set end @@ -161,11 +165,11 @@ browser.radio(:xpath, "//input[@id='new_user_newsletter_yes']").should be_enabled end it "returns false if the radio button is disabled" do browser.radio(:id, "new_user_newsletter_nah").should_not be_enabled - browser.radio(:xpath,"//input[@id='new_user_newsletter_nah']").should_not be_enabled + browser.radio(:xpath, "//input[@id='new_user_newsletter_nah']").should_not be_enabled end it "raises UnknownObjectException if the radio button doesn't exist" do lambda { browser.radio(:id, "no_such_id").enabled? }.should raise_error(UnknownObjectException) lambda { browser.radio(:xpath, "//input[@id='no_such_id']").enabled? }.should raise_error(UnknownObjectException) @@ -195,25 +199,30 @@ it "sets the radio button when found by :xpath" do browser.radio(:xpath, "//input[@id='new_user_newsletter_no']").set browser.radio(:xpath, "//input[@id='new_user_newsletter_no']").should be_set end - it "fires the onclick event" do - browser.radio(:id, "new_user_newsletter_no").set - browser.radio(:id, "new_user_newsletter_yes").set - messages.should == ["clicked: new_user_newsletter_no", "clicked: new_user_newsletter_yes"] + bug "http://code.google.com/p/selenium/issues/detail?id=695", [:webdriver, :ie] do + it "fires the onclick event" do + browser.radio(:id, "new_user_newsletter_no").set + browser.radio(:id, "new_user_newsletter_yes").set + messages.should == ["clicked: new_user_newsletter_no", "clicked: new_user_newsletter_yes"] + end end - it "fires the onchange event" do - browser.radio(:value, 'certainly').set - messages.should == ["changed: new_user_newsletter"] + # http://webbugtrack.blogspot.com/2007/11/bug-193-onchange-does-not-fire-properly.html + not_compliant_on [:webdriver, :ie] do + it "fires the onchange event" do + browser.radio(:value, 'certainly').set + messages.should == ["changed: new_user_newsletter"] - browser.radio(:value, 'certainly').set - messages.should == ["changed: new_user_newsletter"] # no event fired here - didn't change + browser.radio(:value, 'certainly').set + messages.should == ["changed: new_user_newsletter"] # no event fired here - didn't change - browser.radio(:value, 'yes').set - browser.radio(:value, 'certainly').set - messages.should == ["changed: new_user_newsletter", "clicked: new_user_newsletter_yes", "changed: new_user_newsletter"] + browser.radio(:value, 'yes').set + browser.radio(:value, 'certainly').set + messages.should == ["changed: new_user_newsletter", "clicked: new_user_newsletter_yes", "changed: new_user_newsletter"] + end end it "raises UnknownObjectException if the radio button doesn't exist" do lambda { browser.radio(:name, "no_such_name").set }.should raise_error(UnknownObjectException) lambda { browser.radio(:xpath, "//input[@name='no_such_name']").set }.should raise_error(UnknownObjectException)