OpenProject is the leading open source project management software.
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.
openproject/features/step_definitions/common_steps.rb

72 lines
2.0 KiB

#-- copyright
# OpenProject is a project management system.
#
# Copyright (C) 2012-2013 the OpenProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# See doc/COPYRIGHT.rdoc for more details.
#++
# "Then I should see 5 articles"
Then /^I should see (\d+) ([^\" ]+)(?: within "([^\"]*)")?$/ do |number, name, selector|
with_scope(selector) do
if defined?(Spec::Rails::Matchers)
page.should have_css(".#{name.singularize}", :count => number.to_i)
else
assert page.has_css?(".#{name.singularize}", :count => number.to_i)
end
end
end
Then /^I should not see(?: (\d+))? ([^\" ]+)(?: within "([^\"]*)")?$/ do |number, name, selector|
options = number ? {:count => number.to_i} : {}
with_scope(selector) do
if defined?(Spec::Rails::Matchers)
page.should have_no_css(".#{name.singularize}", options)
else
assert page.has_no_css?(".#{name.singularize}", options)
end
end
end
Given /^the [pP]roject(?: "([^\"]+?)")? uses the following types:$/ do |project, table|
project = get_project(project)
types = table.raw.map do |line|
name = line.first
type = Type.find_by_name(name)
type = FactoryGirl.create(:type, :name => name) if type.blank?
type
end
project.update_attributes :type_ids => types.map(&:id).map(&:to_s)
end
Then(/^I should see the following fields:$/) do |table|
table.rows.each do |field, value|
# enforce matches including the value only if it is provided
# i.e. the column in the table is created
if value
begin
found = find_field(field)
rescue Capybara::ElementNotFound
raise Capybara::ExpectationNotMet, "expected to find field \"#{field}\" but there were no matches."
end
if found.tag_name == "select" && value.present?
should have_select(field, :selected => value)
else
found.value.should == value
end
else
should have_field(field)
end
end
end