mirror of
https://github.com/TracksApp/tracks.git
synced 2026-02-03 22:41:48 +01:00
add cucumber for integration testing and add a feature for statistics
refactor some stuff to support testing statistisc
This commit is contained in:
parent
058079a0a7
commit
43440eaf33
11 changed files with 286 additions and 5 deletions
9
features/step_definitions/login_steps.rb
Normal file
9
features/step_definitions/login_steps.rb
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
Given /^I am logged in$/ do
|
||||
@current_user = User.create!(:login => "testuser", :password => "secret", :password_confirmation => "secret")
|
||||
@current_user.create_preference
|
||||
visit login_path
|
||||
fill_in "login", :with => "testuser"
|
||||
fill_in "password", :with => "secret"
|
||||
click_button "Sign in"
|
||||
response.body.should =~ /Login successful/m
|
||||
end
|
||||
13
features/step_definitions/stats_steps.rb
Normal file
13
features/step_definitions/stats_steps.rb
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
When /^I click on the chart for actions done in the last 12 months$/ do
|
||||
# cannot really click the chart which is a swf
|
||||
visit stats_path + "/actions_done_last_years"
|
||||
end
|
||||
|
||||
Then /^I should see a chart$/ do
|
||||
response.body.should =~ /open-flash-chart/m
|
||||
end
|
||||
|
||||
When /^I click on the chart for running time of all incomplete actions$/ do
|
||||
# cannot really click the chart which is a swf
|
||||
visit stats_path + "/show_selected_actions_from_chart/art?index=0"
|
||||
end
|
||||
31
features/step_definitions/todo_steps.rb
Normal file
31
features/step_definitions/todo_steps.rb
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
Given /^I have no todos$/ do
|
||||
Todo.delete_all
|
||||
end
|
||||
|
||||
Given /^I have ([0-9]+) todos$/ do |count|
|
||||
context = @current_user.contexts.create!(:name => "context A")
|
||||
count.to_i.downto 1 do |i|
|
||||
@current_user.todos.create!(:context_id => context.id, :description => "todo #{i}")
|
||||
end
|
||||
end
|
||||
|
||||
Given /^I have ([0-9]+) deferred todos$/ do |count|
|
||||
context = @current_user.contexts.create!(:name => "context B")
|
||||
count.to_i.downto 1 do |i|
|
||||
@current_user.todos.create!(:context_id => context.id, :description => "todo #{i}", :show_from => @current_user.time + 1.week)
|
||||
end
|
||||
end
|
||||
|
||||
Given /^I have ([0-9]+) completed todos$/ do |count|
|
||||
context = @current_user.contexts.create!(:name => "context C")
|
||||
count.to_i.downto 1 do |i|
|
||||
todo = @current_user.todos.create!(:context_id => context.id, :description => "todo #{i}")
|
||||
todo.complete!
|
||||
end
|
||||
end
|
||||
|
||||
Then /^I should see ([0-9]+) todos$/ do |count|
|
||||
count.to_i.downto 1 do |i|
|
||||
match_xpath "div["
|
||||
end
|
||||
end
|
||||
107
features/step_definitions/webrat_steps.rb
Normal file
107
features/step_definitions/webrat_steps.rb
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
|
||||
|
||||
# Commonly used webrat steps
|
||||
# http://github.com/brynary/webrat
|
||||
|
||||
Given /^I am on (.+)$/ do |page_name|
|
||||
visit path_to(page_name)
|
||||
end
|
||||
|
||||
When /^I go to (.+)$/ do |page_name|
|
||||
visit path_to(page_name)
|
||||
end
|
||||
|
||||
When /^I press "([^\"]*)"$/ do |button|
|
||||
click_button(button)
|
||||
end
|
||||
|
||||
When /^I follow "([^\"]*)"$/ do |link|
|
||||
click_link(link)
|
||||
end
|
||||
|
||||
When /^I fill in "([^\"]*)" with "([^\"]*)"$/ do |field, value|
|
||||
fill_in(field, :with => value)
|
||||
end
|
||||
|
||||
When /^I select "([^\"]*)" from "([^\"]*)"$/ do |value, field|
|
||||
select(value, :from => field)
|
||||
end
|
||||
|
||||
# Use this step in conjunction with Rail's datetime_select helper. For example:
|
||||
# When I select "December 25, 2008 10:00" as the date and time
|
||||
When /^I select "([^\"]*)" as the date and time$/ do |time|
|
||||
select_datetime(time)
|
||||
end
|
||||
|
||||
# Use this step when using multiple datetime_select helpers on a page or
|
||||
# you want to specify which datetime to select. Given the following view:
|
||||
# <%= f.label :preferred %><br />
|
||||
# <%= f.datetime_select :preferred %>
|
||||
# <%= f.label :alternative %><br />
|
||||
# <%= f.datetime_select :alternative %>
|
||||
# The following steps would fill out the form:
|
||||
# When I select "November 23, 2004 11:20" as the "Preferred" data and time
|
||||
# And I select "November 25, 2004 10:30" as the "Alternative" data and time
|
||||
When /^I select "([^\"]*)" as the "([^\"]*)" date and time$/ do |datetime, datetime_label|
|
||||
select_datetime(datetime, :from => datetime_label)
|
||||
end
|
||||
|
||||
# Use this step in conjunction with Rail's time_select helper. For example:
|
||||
# When I select "2:20PM" as the time
|
||||
# Note: Rail's default time helper provides 24-hour time-- not 12 hour time. Webrat
|
||||
# will convert the 2:20PM to 14:20 and then select it.
|
||||
When /^I select "([^\"]*)" as the time$/ do |time|
|
||||
select_time(time)
|
||||
end
|
||||
|
||||
# Use this step when using multiple time_select helpers on a page or you want to
|
||||
# specify the name of the time on the form. For example:
|
||||
# When I select "7:30AM" as the "Gym" time
|
||||
When /^I select "([^\"]*)" as the "([^\"]*)" time$/ do |time, time_label|
|
||||
select_time(time, :from => time_label)
|
||||
end
|
||||
|
||||
# Use this step in conjunction with Rail's date_select helper. For example:
|
||||
# When I select "February 20, 1981" as the date
|
||||
When /^I select "([^\"]*)" as the date$/ do |date|
|
||||
select_date(date)
|
||||
end
|
||||
|
||||
# Use this step when using multiple date_select helpers on one page or
|
||||
# you want to specify the name of the date on the form. For example:
|
||||
# When I select "April 26, 1982" as the "Date of Birth" date
|
||||
When /^I select "([^\"]*)" as the "([^\"]*)" date$/ do |date, date_label|
|
||||
select_date(date, :from => date_label)
|
||||
end
|
||||
|
||||
When /^I check "([^\"]*)"$/ do |field|
|
||||
check(field)
|
||||
end
|
||||
|
||||
When /^I uncheck "([^\"]*)"$/ do |field|
|
||||
uncheck(field)
|
||||
end
|
||||
|
||||
When /^I choose "([^\"]*)"$/ do |field|
|
||||
choose(field)
|
||||
end
|
||||
|
||||
When /^I attach the file at "([^\"]*)" to "([^\"]*)"$/ do |path, field|
|
||||
attach_file(field, path)
|
||||
end
|
||||
|
||||
Then /^I should see "([^\"]*)"$/ do |text|
|
||||
response.should contain(text)
|
||||
end
|
||||
|
||||
Then /^I should not see "([^\"]*)"$/ do |text|
|
||||
response.should_not contain(text)
|
||||
end
|
||||
|
||||
Then /^the "([^\"]*)" checkbox should be checked$/ do |label|
|
||||
field_labeled(label).should be_checked
|
||||
end
|
||||
|
||||
Then /^I should be on (.+)$/ do |page_name|
|
||||
URI.parse(current_url).path.should == path_to(page_name)
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue