2010-12-04 22:28:31 +01:00
|
|
|
Given /^I have a repeat pattern called "([^"]*)"$/ do |pattern_name|
|
|
|
|
|
context = @current_user.contexts.first
|
2011-11-18 11:43:06 +01:00
|
|
|
|
2010-12-04 22:28:31 +01:00
|
|
|
@recurring_todo = @current_user.recurring_todos.create!(
|
|
|
|
|
:description => pattern_name,
|
|
|
|
|
:context_id => context.id,
|
|
|
|
|
:state => 'active',
|
|
|
|
|
:start_from => Time.now - 1.day,
|
|
|
|
|
:ends_on => 'no_end_date',
|
|
|
|
|
:target => 'due_date',
|
|
|
|
|
:recurring_period => 'daily',
|
|
|
|
|
:every_other1 => 1,
|
|
|
|
|
:show_always => 1,
|
|
|
|
|
:created_at => Time.now - 1.day,
|
|
|
|
|
:completed_at => nil
|
|
|
|
|
)
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(@recurring_todo.completed?).to be_false
|
2010-12-04 22:28:31 +01:00
|
|
|
@todo = @current_user.todos.create!(
|
|
|
|
|
:description => pattern_name,
|
|
|
|
|
:context_id => context.id,
|
|
|
|
|
:recurring_todo_id => @recurring_todo.id)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
Given /^I have a completed repeat pattern "([^"]*)"$/ do |pattern_name|
|
2012-03-01 20:31:16 +01:00
|
|
|
step "I have a repeat pattern called \"#{pattern_name}\""
|
2010-12-04 22:28:31 +01:00
|
|
|
@recurring_todo.toggle_completion!
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(@recurring_todo.completed?).to be_true
|
2010-12-04 22:28:31 +01:00
|
|
|
end
|
|
|
|
|
|
2011-06-20 06:50:25 +02:00
|
|
|
Given /^I have (\d+) completed repeat patterns$/ do |number_of_patterns|
|
|
|
|
|
1.upto number_of_patterns.to_i do |i|
|
2012-03-01 20:31:16 +01:00
|
|
|
step "I have a completed repeat pattern \"Repeating Todo #{i}\""
|
2011-06-20 06:50:25 +02:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2010-05-05 13:00:44 +02:00
|
|
|
When /^I select "([^\"]*)" recurrence pattern$/ do |recurrence_period|
|
2012-03-01 20:31:16 +01:00
|
|
|
page.find("#recurring_todo_recurring_period_#{recurrence_period.downcase}").click
|
2010-05-05 13:00:44 +02:00
|
|
|
end
|
|
|
|
|
|
2010-12-04 22:28:31 +01:00
|
|
|
When /^I edit the name of the pattern "([^\"]*)" to "([^\"]*)"$/ do |pattern_name, new_name|
|
2013-02-27 20:02:01 +01:00
|
|
|
pattern = @current_user.recurring_todos.where(:description => pattern_name).first
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(pattern).to_not be_nil
|
2010-12-04 22:28:31 +01:00
|
|
|
click_link "link_edit_recurring_todo_#{pattern.id}"
|
|
|
|
|
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(page).to have_css("input#edit_recurring_todo_description")
|
2010-12-04 22:28:31 +01:00
|
|
|
|
|
|
|
|
fill_in "edit_recurring_todo_description", :with => new_name
|
2012-03-01 20:31:16 +01:00
|
|
|
page.find("button#recurring_todo_edit_update_button").click
|
2010-12-04 22:28:31 +01:00
|
|
|
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(page).to_not have_css("div#edit-recurring-todo", :visible => true)
|
2010-12-04 22:28:31 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
When /^I star the pattern "([^\"]*)"$/ do |pattern_name|
|
2013-02-27 20:02:01 +01:00
|
|
|
pattern = @current_user.recurring_todos.where(:description => pattern_name).first
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(pattern).to_not be_nil
|
2010-12-04 22:28:31 +01:00
|
|
|
click_link "star_icon_#{pattern.id}"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
When /^I delete the pattern "([^"]*)"$/ do |pattern_name|
|
2013-02-27 20:02:01 +01:00
|
|
|
pattern = @current_user.recurring_todos.where(:description => pattern_name).first
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(pattern).to_not be_nil
|
2012-03-01 20:31:16 +01:00
|
|
|
|
|
|
|
|
handle_js_confirm do
|
|
|
|
|
click_link "delete_icon_#{pattern.id}"
|
2010-12-04 22:28:31 +01:00
|
|
|
end
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(get_confirm_text).to eq("Are you sure that you want to delete the recurring action '#{pattern_name}'?")
|
2012-03-01 20:31:16 +01:00
|
|
|
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(page).to_not have_css("#delete_icon_#{pattern.id}")
|
2010-12-04 22:28:31 +01:00
|
|
|
end
|
|
|
|
|
|
2012-03-19 14:05:54 +01:00
|
|
|
When /^I mark the pattern "([^"]*)" as (complete|active)$/ do |pattern_name, state|
|
2013-02-27 20:02:01 +01:00
|
|
|
pattern = @current_user.recurring_todos.where(:description => pattern_name).first
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(pattern).to_not be_nil
|
|
|
|
|
expect(pattern.completed?).to (state=="complete" ? be_false : be_true)
|
2012-03-01 20:31:16 +01:00
|
|
|
page.find("#check_#{pattern.id}").click
|
2012-04-04 20:03:40 +02:00
|
|
|
wait_for_ajax
|
|
|
|
|
wait_for_animations_to_end
|
2010-12-04 22:28:31 +01:00
|
|
|
end
|
|
|
|
|
|
2011-08-17 09:55:36 +02:00
|
|
|
When /^I follow the recurring todo link of "([^"]*)"$/ do |action_description|
|
2013-02-27 20:02:01 +01:00
|
|
|
todo = @current_user.todos.where(:description => action_description).first
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(todo).to_not be_nil
|
2011-08-17 09:55:36 +02:00
|
|
|
|
2012-03-01 20:31:16 +01:00
|
|
|
page.find(:xpath, "//div[@id='todo_#{todo.id}']//a[@class='recurring_icon']/img").click
|
2012-05-12 15:37:13 +02:00
|
|
|
sleep 1 # wait for page to load
|
2011-08-17 09:55:36 +02:00
|
|
|
end
|
|
|
|
|
|
2010-12-04 22:28:31 +01:00
|
|
|
Then /^the state list "([^"]*)" should be empty$/ do |state|
|
|
|
|
|
empty_id = "recurring-todos-empty-nd" if state.downcase == "active"
|
|
|
|
|
empty_id = "completed-empty-nd" if state.downcase == "completed"
|
2012-03-01 20:31:16 +01:00
|
|
|
empty_msg = page.find("div##{empty_id}")
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(empty_msg.visible?).to be_true
|
2010-12-04 22:28:31 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
Then /^the pattern "([^\"]*)" should be starred$/ do |pattern_name|
|
2013-02-27 20:02:01 +01:00
|
|
|
pattern = @current_user.recurring_todos.where(:description => pattern_name).first
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(pattern).to_not be_nil
|
|
|
|
|
expect(page).to have_xpath("//div[@id='recurring_todo_#{pattern.id}']//img[@class='todo_star starred']")
|
2010-12-04 22:28:31 +01:00
|
|
|
end
|
|
|
|
|
|
2010-05-05 13:00:44 +02:00
|
|
|
Then /^I should see the form for "([^\"]*)" recurrence pattern$/ do |recurrence_period|
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(page).to have_css("#recurring_#{recurrence_period.downcase}", :visible => true)
|
2010-05-05 13:00:44 +02:00
|
|
|
end
|
2010-12-04 22:28:31 +01:00
|
|
|
|
|
|
|
|
Then /^the pattern "([^"]*)" should be in the state list "([^"]*)"$/ do |pattern_name, state_name|
|
2013-02-27 20:02:01 +01:00
|
|
|
pattern = @current_user.recurring_todos.where(:description => pattern_name).first
|
2014-05-16 15:42:03 -04:00
|
|
|
expect(pattern).to_not be_nil
|
|
|
|
|
expect(page).to have_xpath("//div[@id='#{state_name}_recurring_todos_container']//div[@id='recurring_todo_#{pattern.id}']")
|
2010-12-04 22:28:31 +01:00
|
|
|
end
|