Skip to content

Instantly share code, notes, and snippets.

@jeffersongirao
Created June 21, 2009 14:44
Show Gist options
  • Save jeffersongirao/133532 to your computer and use it in GitHub Desktop.
Save jeffersongirao/133532 to your computer and use it in GitHub Desktop.
Dado /^que existe\(m\) (\d+) registro\(s\) de (.+)$/ do |n, model_str|
model_str = model_str.gsub(/\s/, '_')
model_sym = model_str.to_sym
classe = eval(model_str.camelize)
classe.transaction do
classe.destroy_all
n.to_i.times do
Factory(model_sym)
end
end
end
Dado /^que existem os seguintes registros de (.+):$/ do |model_str,tabela|
model_str = model_str.gsub(/\s/, '_')
model_sym = model_str.to_sym
klass = eval(model_str.camelize)
klass.transaction do
klass.destroy_all
tabela.hashes.each do |hash|
f = Factory(model_sym, hash)
end
end
end
Dado /^que estou em (.+)$/ do |nome_da_pagina|
visit path_to(nome_da_pagina)
end
Dado /^defino (.+) como "([^\"]*)"$/ do |campo, valor|
fill_in(campo, :with => valor)
end
Quando /^eu estiver em (.+)$/ do |nome_da_pagina|
visit path_to(nome_da_pagina)
end
Quando /^peço para (.+)$/ do |acao|
click_button acao
end
Então /^preciso ver "([^\"]*)"$/ do |texto|
response.should contain(texto)
end
Então /^preciso ver os seguintes registros:$/ do |tabela|
tabela.hashes.each do |hash|
hash.each_value do |valor|
response.should contain(valor)
end
end
end
Então /^não devo ver os seguintes registros:$/ do |tabela|
tabela.hashes.each do |hash|
hash.each_value do |valor|
response.should_not contain(valor)
end
end
end
# Passo do Webrat
Quando /^peço a (alteração|exclusão) do (.*) que o\(a\) (.*) é "([^\"]*)"$/ do |acao, classe, variavel, valor|
classe = classe.gsub(/\s/, '_')
id = unless variavel == "id" then
classe.camelize.constantize.send("find_by_#{variavel}!", "#{valor}").id.to_s
else
valor
end
within("tr[id=#{classe}_#{id}]") do
case acao
when "verificação de permissões"
click_link("Permissões")
when "alteração"
click_link("Alterar")
when "exclusão"
click_link("Excluir")
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment