require 'spec_helper' describe Symbiont::Generators do let(:watir_browser) { mock_browser_for_watir } let(:watir_definition) { DefinitionTest.new(watir_browser) } describe "checkbox web objects" do context "when declared in a definition" do it "should generate methods for referencing the checkbox" do watir_definition.should respond_to(:apply_tax_checkbox) watir_definition.should respond_to(:apply_tax_object) end it "should generate methods for interacting with the checkbox" do watir_definition.should respond_to(:apply_tax_exists?) watir_definition.should respond_to(:apply_tax_visible?) watir_definition.should respond_to(:apply_tax_enabled?) watir_definition.should respond_to(:apply_tax?) watir_definition.should respond_to(:apply_tax_?) watir_definition.should respond_to(:apply_tax!) watir_definition.should respond_to(:apply_tax_checked?) watir_definition.should respond_to(:check_apply_tax) watir_definition.should respond_to(:uncheck_apply_tax) end end context "when used by the watir platform" do it "should locate the checkbox" do watir_browser.should_receive(:checkbox).and_return(watir_browser) web_object = watir_definition.apply_tax_object web_object.should_not be_nil web_object.should be_instance_of Symbiont::WebObjects::CheckBox end it "should determine if a checkbox exists" do watir_browser.should_receive(:checkbox).twice.and_return(watir_browser) watir_browser.should_receive(:exists?).twice.and_return(watir_browser) watir_definition.apply_tax_exists?.should be_true watir_definition.apply_tax?.should be_true end it "should determine if a checkbox is visible" do watir_browser.should_receive(:checkbox).twice.and_return(watir_browser) watir_browser.should_receive(:visible?).twice.and_return(watir_browser) watir_definition.apply_tax_visible?.should be_true watir_definition.apply_tax_?.should be_true end it "should determine if a checkbox is enabled" do watir_browser.should_receive(:checkbox).twice.and_return(watir_browser) watir_browser.should_receive(:enabled?).twice.and_return(watir_browser) watir_definition.apply_tax_enabled?.should be_true watir_definition.apply_tax!.should be_true end it "should determine if a checkbox is checked" do watir_browser.should_receive(:checkbox).and_return(watir_browser) watir_browser.should_receive(:set?).and_return(true) watir_definition.apply_tax_checked?.should be_true end it "should be able to check a checkbox" do watir_browser.should_receive(:checkbox).and_return(watir_browser) watir_browser.should_receive(:set) watir_definition.check_apply_tax end it "should be able to uncheck a checkbox" do watir_browser.should_receive(:checkbox).and_return(watir_browser) watir_browser.should_receive(:clear) watir_definition.uncheck_apply_tax end end end end