Bike!Bike! Website!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.4 KiB

8 years ago
Given /^(?:I )?(?:(?:am )?on |visit )(?:the |my )(.+) page$/i do |page_name|
attempt_to do
visit path_to(page_name)
end
end
Given /^(?:(?:I )?am )?on an? (.+) error page$/i do |page_name|
case page_name
when '404', '500'
path = "/error_#{page_name}"
when 'locale not available'
path = 'locale_not_available_error/tlh'
else
raise "Unknown error page #{page_name}"
end
attempt_to do
visit path
end
end
Then /^(?:I )?should be on (?:the |an? | my)?(.+) page$/i do |page_name|
sleep(1)
8 years ago
attempt_to do
path = path_to(page_name)
path = /(https?\/\/:[^\/]+)?#{Regexp.escape(path)}\/?(\?|#|$)/ unless path.is_a?(Regexp)
begin
current_url.should match path
rescue Exception => e
# due to a bug in phantomjs 2.5-development, sometimes postbacks don't work properly, this is a workaround
if page.driver.network_traffic.last.url =~ path && page.driver.network_traffic.last.method =~ /^get$/i && page.driver.network_traffic.last.response_parts.present? && page.driver.network_traffic.last.response_parts.first.status == 200
attempt_to do
visit page.driver.network_traffic.last.url
end
else
puts "#{page.driver.network_traffic.last.method} #{page.driver.network_traffic.last.url} (#{page.driver.network_traffic.last.response_parts.first.status}) != #{path}"
raise e
end
end
8 years ago
end
end
Given /^I am on the (.+) site$/i do |language|
ApplicationController::set_host (get_language_code(language) + '.bikebike.org')
end
Given /^I am in (.+)$/i do |location|
ApplicationController::set_location (location)
end
When /^I go to the (.+) page$/i do |page_name|
visit path_to(page_name)
end
Given /^a location( named .+)? exists?$/i do |title|
location = EventLocation.new
location.conference_id = TestState.last_conference.id
location.title = title ? title.gsub(/^\s*named\s*(.*?)\s*$/, '\1') : Forgery::LoremIpsum.sentence({:random => true}).gsub(/\.$/, '').titlecase
location.save
TestState.last_location = location
end
Then /^(?:I )?show the (page|url)$/i do |item|
if item == 'url'
print current_url
else
print page.html
end
end
Then /^(?:I )?wait (\d+(?:\.\d+)?) seconds?$/i do |time|
sleep time.to_i
end
Then /^take a screenshot?$/i do
page.save_screenshot(File.expand_path('./test.png'), full: true)
end
When /^(?:I )?re(?:fresh|load) the page$/i do
attempt_to do
visit current_url
end
end