Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

97 lines (80 sloc) 2.771 kb
RIOT_SETUP = (<<-TEST).gsub(/^ {10}/, '') unless defined?(RIOT_SETUP)
# Specify your app using the #app helper inside a context.
# Takes either an app class or a block argument.
# app { Padrino.application }
# app { CLASS_NAME.tap { |app| } }
class Riot::Situation
include Rack::Test::Methods
##
# You can handle all padrino applications using instead:
# Padrino.application
# Or just the Application itself like:
# CLASS_NAME.tap { |app| }
def app
@app || Padrino.application
end
end
class Riot::Context
# Set the Rack app which is to be tested.
#
# context "MyApp" do
# app { [200, {}, "Hello!"] }
# setup { get '/' }
# asserts(:status).equals(200)
# end
def app(app=nil, &block)
setup { @app = (app || block.call) }
end
end
TEST
RIOT_CONTROLLER_TEST = (<<-TEST).gsub(/^ {10}/, '') unless defined?(RIOT_CONTROLLER_TEST)
require File.expand_path(File.dirname(__FILE__) + '/../../test_config.rb')
context "!NAME!Controller" do
context "description here" do
setup do
get "/"
end
asserts("the response body") { last_response.body }.equals "Hello World"
end
end
TEST
RIOT_RAKE = (<<-TEST).gsub(/^ {10}/, '') unless defined?(RIOT_RAKE)
require 'rake/testtask'
test_tasks = Dir['test/*/'].map { |d| File.basename(d) }
test_tasks.each do |folder|
Rake::TestTask.new("test:\#{folder}") do |test|
test.pattern = "test/\#{folder}/**/*_test.rb"
test.verbose = true
end
end
desc "Run application test suite"
task 'test' => test_tasks.map { |f| "test:\#{f}" }
TEST
RIOT_MODEL_TEST = (<<-TEST).gsub(/^ {10}/, '') unless defined?(RIOT_MODEL_TEST)
require File.expand_path(File.dirname(__FILE__) + '/../../test_config.rb')
context "!NAME! Model" do
context 'can be created' do
setup do
!NAME!.new
end
asserts("that record is not nil") { !topic.nil? }
end
end
TEST
def setup_test
require_dependencies 'rack-test', :require => 'rack/test', :group => 'test'
require_dependencies 'riot', :group => 'test'
insert_test_suite_setup RIOT_SETUP
create_file destination_root("test/test.rake"), RIOT_RAKE
end
# Generates a controller test given the controllers name
def generate_controller_test(name)
riot_contents = RIOT_CONTROLLER_TEST.gsub(/!NAME!/, name.to_s.camelize)
controller_test_path = File.join('test',options[:app],'controllers',"#{name.to_s.underscore}_controller_test.rb")
create_file destination_root(controller_test_path), riot_contents, :skip => true
end
def generate_model_test(name)
riot_contents = RIOT_MODEL_TEST.gsub(/!NAME!/, name.to_s.camelize)
model_test_path = File.join('test',options[:app],'models',"#{name.to_s.underscore}_test.rb")
create_file destination_root(model_test_path), riot_contents, :skip => true
end
Jump to Line
Something went wrong with that request. Please try again.