Skip to content

Instantly share code, notes, and snippets.

@albanpeignier
Created January 4, 2010 13:38
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save albanpeignier/268513 to your computer and use it in GitHub Desktop.
Scenario: Create a chunk with a single label
Given a label exists with timestamp: "17:00:00"
And that label is selected
When I follow "Nouvel extrait à partir de ce repère"
Then I should be on the new chunk page
And the "Horaire de début" datetime should contain "17:00:00"
And the "Horaire de fin" datetime should contain "17:00:00"
Then /^the "([^\"]*)" datetime should contain "([^\"]*)"$/ do |field, value|
selected_datetime(:from => field).should == Time.parse(value)
end
module Webrat
class Scope
def selected_datetime(options = {})
id_prefix = locate_id_prefix(options) do
hour_field = FieldByIdLocator.new(@session, dom, /#{select_id("(.*?)",:hour)}$/).locate
raise NotFoundError.new("No time fields were found") unless hour_field && hour_field.id =~ /(.*?)_4i/
$1
end
time_parts = (1..6).collect do |index|
begin
field_with_id("#{id_prefix}_#{index}i").value
rescue Webrat::NotFoundError
nil
end
end.compact
Time.local *time_parts
end
end
end
module WebratExtensions
def selected_datetime(options = {})
webrat_session.current_scope.selected_datetime(options)
end
end
World(WebratExtensions)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment