Permalink
Fetching contributors…
Cannot retrieve contributors at this time
executable file 108 lines (86 sloc) 3.51 KB
# Configure Rails Envinronment
ENV["RAILS_ENV"] = "test"
require File.expand_path("../testapp/config/environment", __FILE__)
require "rails/test_help"
ActionMailer::Base.delivery_method = :test
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.default_url_options[:host] = "test.com"
Rails.backtrace_cleaner.remove_silencers!
require "authlogic/test_case"
require "community_engine/authenticated_test_helper"
require "mocha/setup"
ActiveSupport::TestCase.fixture_path = (Rails.root + "../fixtures").to_s #we want a string here, not a Pathname
ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
class ActionController::TestCase
include Authlogic::TestCase
setup :activate_authlogic
end
class ActiveSupport::TestCase
include Authlogic::TestCase
setup :activate_authlogic
include AuthenticatedTestHelper
include ActionDispatch::TestProcess
set_fixture_class :tags => ActsAsTaggableOn::Tag, :taggings => ActsAsTaggableOn::Tagging
def self.all_fixtures
# fixtures :forums, :users, :sb_posts, :topics, :moderatorships, :monitorships, :categories
fixtures :all
end
def teardown
UserSession.find && UserSession.find.destroy
end
# Add more helper methods to be used by all tests here...
def assert_difference(object, method = nil, difference = 1)
initial_value = object.send(method)
yield
assert_equal initial_value + difference, object.send(method)
end
def assert_no_difference(object, method, &block)
assert_difference object, method, 0, &block
end
def login_as(user)
UserSession.create(users(user))
end
def authorize_as(user, mime_type = 'application/xml')
@request.env["HTTP_AUTHORIZATION"] = user ? "Basic #{Base64.encode64("#{users(user).login}:test")}" : nil
accept mime_type
content_type mime_type
end
def content_type(type)
@request.env['Content-Type'] = type
end
def accept(accept)
@request.env["HTTP_ACCEPT"] = accept
end
def assert_js_redirected_to(options={}, message=nil)
clean_backtrace do
assert_response(:success, message)
assert_match /text\/javascript/, @response.headers['Content-Type'], 'Response should be Javascript content-type';
js_regexp = %r{(\w+://)?.*?(/|$|\\\?)(.*)}
url_regexp = %r{^window\.location\.href [=] ['"]#{js_regexp}['"][;]$}
redirected_to = @response.body.match(url_regexp)
assert_not_nil(redirected_to, message)
redirected_to = redirected_to[3]
msg = build_message(message, "expected a JS redirect to , found one to ", options, redirected_to)
if options.is_a?(String)
assert_equal(options.gsub(/^\//, ''), redirected_to, message)
else
msg = build_message(message, "response is not a redirection to all of the options supplied (redirection is )", redirected_to)
assert_equal(@controller.url_for(options).match(js_regexp)[3], redirected_to, msg)
end
end
end
end
# Redefining this so we don't have to go out to the interwebs everytime we create a clipping in a test
# file paramater must equal http://www.google.com/intl/en_ALL/images/logo.gif; all other strings are considered an invalid URL
module UrlUpload
include ActionDispatch::TestProcess
attr_accessor :data
def data_from_url(uri)
data ||= Rack::Test::UploadedFile.new("#{File.dirname(__FILE__)}/fixtures/files/library.jpg", 'image/jpg', false)
if ['http://www.google.com/intl/en_ALL/images/logo.gif', 'http://us.i1.yimg.com/us.yimg.com/i/ww/beta/y3.gif'].include?(uri)
data
else
nil
end
end
end