Created
March 15, 2010 18:45
-
-
Save sauloarruda/333167 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# language: pt | |
Funcionalidade: Autenticar Usuário | |
Para acesso à área administrativa do sistema | |
Como visitante | |
Quero autenticar com um usuário já cadastrado | |
Cenário: Autenticação com sucesso | |
Dado que estou na página de autenticação | |
Quando digito "25757687649" no campo "CPF" | |
E digito "secret" no campo "Senha" | |
E clico no botão "Entrar" | |
Então vejo o texto "Jose das Couves" na tela | |
Cenário: CPF inválido | |
Dado que estou na página de autenticação | |
Quando digito "11111111111" no campo "CPF" | |
E digito "secret" no campo "Senha" | |
E clico no botão "Entrar" | |
Então vejo o texto "CPF inválido" na tela | |
Cenário: Senha inválida | |
Dado que estou na página de autenticação | |
Quando digito "25757687649" no campo "CPF" | |
E digito "incorreta" no campo "Senha" | |
E clico no botão "Entrar" | |
Então vejo o texto "Senha inválida" na tela | |
Cenário: CPF não cadastrado | |
Dado que estou na página de autenticação | |
Quando digito "68300828389" no campo "CPF" | |
E digito "secret" no campo "Senha" | |
E clico no botão "Entrar" | |
Então vejo o texto "CPF não cadastrado" na tela | |
Cenário: CPF mascarado | |
Dado que estou na página de autenticação | |
Quando digito "257.576.876-49" no campo "CPF" | |
E digito "secret" no campo "Senha" | |
E clico no botão "Entrar" | |
Então vejo o texto "Jose das Couves" na tela | |
Cenário: CPF em branco | |
Dado que estou na página de autenticação | |
Quando digito "" no campo "CPF" | |
E digito "" no campo "Senha" | |
E clico no botão "Entrar" | |
Então vejo o texto "CPF inválido" na tela |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# RSpec | |
require 'spec/expectations' | |
# Webrat | |
require 'webrat' | |
require 'rubygems' | |
gem 'mechanize', '= 0.9.0' | |
require 'test/unit/assertions' | |
World(Test::Unit::Assertions) | |
Webrat.configure do |config| | |
config.mode = :mechanize | |
end | |
World do | |
session = Webrat::Session.new | |
session.extend(Webrat::Methods) | |
session.extend(Webrat::Matchers) | |
session | |
end | |
# Helper method for running shell commands | |
def run(command, verbose = false, message = nil) | |
if verbose then | |
puts "#{message}" | |
puts command | |
result = `#{command}` | |
puts result | |
return result | |
else | |
`#{command}` | |
end | |
end | |
module Webrat | |
# For some reason we are getting duplicated GET params on the current_url, so monkeypatch to fix it | |
class Link | |
def absolute_href | |
if href =~ /^\?/ | |
"#{@session.current_url.gsub(/\?.*/,"")}#{href}" | |
elsif href !~ %r{^https?://} && (href !~ /^\//) | |
"#{@session.current_url}/#{href}" | |
else | |
href | |
end | |
end | |
end | |
# For extra debug info we monkeypatch this in | |
module Locators | |
class Locator # :nodoc: | |
def locate! | |
locate || raise(NotFoundError.new(error_message)) | |
rescue Webrat::NotFoundError => e | |
filepath = '/tmp/webrat_debug.html' | |
File.open(filepath, "w") do |file| | |
file.puts @session.send(:response_body) | |
end | |
raise "#{e.message}\n#{@session.send(:response_body).gsub(/\n/, "\n ")}\nURL: #{@session.current_url}\nResponse saved: #{filepath}" | |
end | |
end | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module NavigationHelpers | |
def path_to(page_name) | |
"http://cucumber.local" + | |
case page_name | |
when /anúncio/ | |
'/anuncio' | |
when /autenticação/ | |
'/login' | |
else | |
raise "Can't find mapping from \"#{page_name}\" to a path.\n" + | |
"Now, go and add a mapping in #{__FILE__}" | |
end | |
end | |
def field_for(field_name) | |
case field_name | |
when /Ano\/Modelo/ | |
'ano_modelo' | |
else | |
field_name | |
end | |
end | |
def button_for(button_name) | |
case button_name | |
when '' | |
raise 'Digite um nome para o botão' | |
else | |
button_name | |
end | |
end | |
end | |
World(NavigationHelpers) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths")) | |
# Commonly used webrat steps | |
# http://github.com/brynary/webrat | |
Given /^Debug$/ do | |
puts response_body | |
filepath = '/tmp/webrat_debug.html' | |
File.open(filepath, "w") do |file| | |
file.puts response_body | |
end | |
raise "Debugged! Current URL: #{current_url}\nResponse saved: #{filepath}" | |
end | |
Given /^que(?: eu)* estou na página(?: de) (.+)$/ do |page_name| | |
visit path_to(page_name) | |
end | |
When /^clico no botão "([^\"]*)"$/ do |button| | |
click_button(button_for(button)) | |
end | |
When /^digito "([^\"]*)" no campo "([^\"]*)"$/ do |value, field| | |
fill_in(field_for(field), :with => value) | |
end | |
When /^escolho "([^\"]*)" no campo "([^\"]*)"$/ do |value, field| | |
select(value, :from => field_for(field)) | |
end | |
When /^escolho o arquivo "([^\"]*)" para o campo "([^\"]*)"$/ do |path, field| | |
attach_file(field_for(field), path) | |
end | |
Then /^vejo o texto "(.*)" na tela$/ do |text| | |
assert !!(response_body =~ /#{Regexp.escape text}/m), response_body | |
end | |
Then /^recebo o aviso "([^\"]*)"$/ do |alert| | |
pending # express the regexp above with the code you wish you had | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment