blob: e08acc5a91b65ff5fd127670210af4fe23eb6709 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
module NavigationHelpers
# Maps a name to a path. Used by the
#
# When /^I go to (.+)$/ do |page_name|
#
# step definition in web_steps.rb
#
def path_to(page_name)
case page_name
when /the home\s?page/
'/'
when /the login page/
user_login_path
when /the signup page/
user_signup_path
when /the current agenda page/
agenda_path(Agenda.current)
when /the first suggested agenda page/
agenda_item_path(AgendaItem.first(:conditions => {:agenda_id => nil}))
when /the voters page/
voters_path
when /the current items page/
current_items_path
when /the "([^\"]*)" show page/
user_path(User.find_by_name($1))
when /([1-9]*)th agenda page/
agenda_path(Agenda.find $1)
when /newest agenda item page/
agenda_item_path(AgendaItem.last)
# Add more mappings here.
# Here is an example that pulls values out of the Regexp:
#
# when /^(.*)'s profile page$/i
# user_profile_path(User.find_by_login($1))
else
begin
page_name =~ /the (.*) page/
path_components = $1.split(/\s+/)
self.send(path_components.push('path').join('_').to_sym)
rescue Object => e
raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
"Now, go and add a mapping in #{__FILE__}"
end
end
end
end
World(NavigationHelpers)
|