spec/element_spec.rb in watir-webdriver-0.2.5 vs spec/element_spec.rb in watir-webdriver-0.2.6

- old
+ new

@@ -1,30 +1,65 @@ require File.expand_path('watirspec/spec_helper', File.dirname(__FILE__)) describe Watir::Element do - describe "#send_keys" do - it "sends keystrokes to the element" do - browser.goto("file://" + File.expand_path("html/keylogger.html", File.dirname(__FILE__))) - browser.element(:id, 'receiver').send_keys("hello world") - browser.element(:id, 'output').ps.size.should == 11 + describe '#send_keys' do + before(:each) do + @c = Selenium::WebDriver::Platform.os == :macosx ? :command : :control + browser.goto('file://' + File.expand_path('html/keylogger.html', File.dirname(__FILE__))) end + + let(:receiver) { browser.element(:id => 'receiver') } + let(:events) { browser.element(:id => 'output').ps.size } + + it 'sends keystrokes to the element' do + receiver.send_keys 'hello world' + receiver.value.should == 'hello world' + events.should == 11 + end + + it 'accepts arbitrary list of arguments' do + receiver.send_keys 'hello', 'world' + receiver.value.should == 'helloworld' + events.should == 10 + end + + it 'performs key combinations' do + receiver.send_keys 'foo' + receiver.send_keys [@c, 'a'] + receiver.send_keys :backspace + receiver.value.should be_empty + events.should == 6 + end + + it 'performs arbitrary list of key combinations' do + receiver.send_keys 'foo' + receiver.send_keys [@c, 'a'], [@c, 'x'] + receiver.value.should be_empty + events.should == 7 + end + + it 'supports combination of strings and arrays' do + receiver.send_keys 'foo', [@c, 'a'], :backspace + receiver.value.should be_empty + events.should == 6 + end end - describe "#present?" do + describe '#present?' do before do - browser.goto("file://" + File.expand_path("html/wait.html", File.dirname(__FILE__))) + browser.goto('file://' + File.expand_path('html/wait.html', File.dirname(__FILE__))) end - it "returns true if the element exists and is visible" do + it 'returns true if the element exists and is visible' do browser.div(:id, 'foo').should be_present end - it "returns false if the element exists but is not visible" do + it 'returns false if the element exists but is not visible' do browser.div(:id, 'bar').should_not be_present end - it "returns false if the element does not exist" do + it 'returns false if the element does not exist' do browser.div(:id, 'should-not-exist').should_not be_present end end end