require 'spec_helper' describe Symbiont::Generators do let(:watir_browser) { mock_browser_for_watir } let(:watir_definition) { DefinitionTest.new(watir_browser) } describe "hidden field generators" do context "when declared on a page definition" do it "should generate methods for referencing the hidden field" do watir_definition.should respond_to(:ssn_hidden_field) watir_definition.should respond_to(:ssn_object) end it "should generate methods for interacting with the hidden field" do watir_definition.should respond_to(:ssn) watir_definition.should respond_to(:ssn_exists?) watir_definition.should respond_to(:ssn_visible?) watir_definition.should respond_to(:ssn_enabled?) watir_definition.should respond_to(:ssn?) watir_definition.should respond_to(:ssn_?) watir_definition.should respond_to(:ssn!) end end context "when used by the watir platform" do it "should locate the hidden field" do watir_browser.should_receive(:hidden).and_return(watir_browser) web_object = watir_definition.ssn_object web_object.should_not be_nil web_object.should be_instance_of Symbiont::WebObjects::HiddenField end it "should retrieve text from the text field" do watir_browser.should_receive(:hidden).and_return(watir_browser) watir_browser.should_receive(:value).and_return("testing") watir_definition.ssn.should == "testing" end it "should determine if a hidden field exists" do watir_browser.should_receive(:hidden).twice.and_return(watir_browser) watir_browser.should_receive(:exists?).twice.and_return(watir_browser) watir_definition.ssn_exists?.should be_true watir_definition.ssn?.should be_true end it "should determine if a hidden field is visible" do watir_browser.should_receive(:hidden).twice.and_return(watir_browser) watir_browser.should_receive(:present?).twice.and_return(watir_browser) watir_definition.ssn_visible?.should be_true watir_definition.ssn_?.should be_true end it "should determine if a hidden field is enabled" do watir_browser.should_receive(:hidden).twice.and_return(watir_browser) watir_browser.should_receive(:enabled?).twice.and_return(watir_browser) watir_definition.ssn_enabled?.should be_true watir_definition.ssn!.should be_true end it "should call a block on the hidden field if specified" do watir_definition.visa_object.should == "visa" end end end end