|
|
functional
functional/account_controller_test.rb
functional/admin_controller_test.rb
functional/ads_controller_test.rb
functional/main_controller_test.rb
test_helper.rb
unit
unit/ad_test.rb
unit/author_test.rb
unit/category_test.rb
unit/mailman_test.rb
unit/parent_category_test.rb
unit/user_test.rb
-
/functional/account_controller_test.rb
require File.dirname(__FILE__) + '/../test_helper'
require 'account_controller'
class AccountController; def rescue_action(e) raise e end; end
class AccountControllerTest < Test::Unit::TestCase
include AuthenticatedTestHelper
fixtures :users
def setup
@controller AccountController.new
@request ActionController::TestRequest.new
@response ActionController::TestResponse.new
end
def test_should_login_and_redirect
post :login, :email > 'quentin@example.com', :password > 'test'
assert session[:user]
assert_response :redirect
end
def test_should_fail_login_and_not_redirect
post :login, :example > 'quentin@example', :password > 'bad password'
assert_nil session[:user]
assert_response :success
end
def test_should_allow_signup
assert_difference User, :count do
create_user
assert_response :redirect
end
end
def test_should_require_password_on_signup
assert_no_difference User, :count do
create_user(:password > nil)
assert assigns(:user).errors.on(:password)
assert_response :success
end
end
def test_should_require_password_confirmation_on_signup
assert_no_difference User, :count do
create_user(:password_confirmation > nil)
assert assigns(:user).errors.on(:password_confirmation)
assert_response :success
end
end
def test_should_require_email_on_signup
assert_no_difference User, :count do
create_user(:email > nil)
assert assigns(:user).errors.on(:email)
assert_response :success
end
end
def test_should_logout
login_as :quentin
get :logout
assert_nil session[:user]
assert_response :redirect
end
def test_should_remember_me
post :login, :email > 'quentin@example.com', :password > 'test', :remember_me > "1"
assert_not_nil @response.cookies["auth_token"]
end
def test_should_not_remember_me
post :login, :email > 'quentin@example.com', :password > 'test', :remember_me > "0"
assert_nil @response.cookies["auth_token"]
end
def test_should_delete_token_on_logout
login_as :quentin
get :logout
assert_equal @response.cookies["auth_token"], []
end
def test_should_login_with_cookie
users(:quentin).remember_me
@request.cookies["auth_token"] cookie_for(:quentin)
get :index
assert @controller.send(:logged_in?)
end
def test_should_fail_expired_cookie_login
users(:quentin).remember_me
users(:quentin).update_attribute :remember_token_expires_at, 5.minutes.ago
@request.cookies["auth_token"] cookie_for(:quentin)
get :index
assert !@controller.send(:logged_in?)
end
def test_should_fail_cookie_login
users(:quentin).remember_me
@request.cookies["auth_token"] auth_token('invalid_auth_token')
get :index
assert !@controller.send(:logged_in?)
end
protected
def create_user(options {})
post :signup, :user > { :email > 'quire@example.com',
:password > 'quire', :password_confirmation > 'quire' }.merge(options)
end
def auth_token(token)
CGI::Cookie.new('name' > 'auth_token', 'value' > token)
end
def cookie_for(user)
auth_token users(user).remember_token
end
end
-
/functional/admin_controller_test.rb
require File.dirname(__FILE__) + '/../test_helper'
class AdminControllerTest < ActionController::TestCase
def test_truth
assert true
end
end
-
/functional/ads_controller_test.rb
require File.dirname(__FILE__) + '/../test_helper'
class AdsControllerTest < ActionController::TestCase
def test_ad_post_and_email_sent
get :new, {:category > 1, :title > 'test', :ad > 'test ad'}
assert_response :success
end
def test_url_click_activates_post
assert true
end
end
-
/functional/main_controller_test.rb
require File.dirname(__FILE__) + '/../test_helper'
class MainControllerTest < ActionController::TestCase
def test_truth
assert true
end
end
-
/test_helper.rb
ENV["RAILS_ENV"] "test"
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
require 'test_help'
class Test::Unit::TestCase
self.use_transactional_fixtures true
self.use_instantiated_fixtures false
fixtures :all
end
-
/unit/ad_test.rb
require File.dirname(__FILE__) + '/../test_helper'
class ClassifiedAdTest < ActiveSupport::TestCase
def test_ad_creation
ad Ad.create(:title > ads(:test_one).title)
assert ad.valid?
assert_equal(ads(:test_one).title, ad.title)
assert_equal(false, ad.active)
assert !ad.activation_hash.nil?
end
def test_email_generation_is_working
ad Ad.create(:title > ads(:test_one).title)
assert ad.valid?
assert_match(/^\d{18}@(chuckslist.com)$/i, ad.email)
end
def test_no_clash_in_generated_email_address
for count in (1..10000)
ad1 Ad.create(:title > 'Ad1')
ad2 Ad.create(:title > 'Ad2')
assert_not_equal(ad1.email, ad2.email)
end
end
def test_created_ads
end
end
-
/unit/author_test.rb
require File.dirname(__FILE__) + '/../test_helper'
class AuthorTest < ActiveSupport::TestCase
def test_truth
assert true
end
end
-
/unit/category_test.rb
require File.dirname(__FILE__) + '/../test_helper'
class CategoryTest < ActiveSupport::TestCase
def test_truth
assert true
end
end
-
/unit/mailman_test.rb
require File.dirname(__FILE__) + '/../test_helper'
class MailmanTest < ActionMailer::TestCase
tests Mailman
def test_email_fixture_is_working
email_text read_fixture("test_mail_001").join
assert_match(/jalopy/i, email_text)
end
def test_receive_email_is_working
email_text read_fixture("test_mail_001").join
response Mailman.receive(email_text)
assert_not_equal("200806159145300001@chuckslist.com", response.to[0])
assert_equal("quentin@example.com", response.to[0])
assert_equal("drspin_2003@hotmail.com", response.from[0])
assert_match(/jalopy/i, response.body)
assert_match(/Email delivered by Chuckslist/i, response.body)
end
def test_fake_email_is_garbaged
email_test read_fixture("test_mail_002").join
response Mailman.receive(email_test)
assert_not_equal("quentin@example.com", response.to[0])
assert_equal("garbage@chuckslist.org", response.to[0])
end
def test_regex_match_reply_to_ad_email
assert_match(/^\d{18}@(chuckslist.com)$/i, "200806159145300001@chuckslist.com")
end
def test_regex_match_ad_activation_email
assert_match(/^([a-zA-Z]{22}@(chuckslist.com))$/i, "abcdefghiJKLmnOPQrstUV@chuckslist.com")
end
def test_ad_confirmation_email_is_sent
end
def test_ad_confirmation_set_true_when_clicked
end
def test_ad_confirmation_email_is_working
end
end
-
/unit/parent_category_test.rb
require File.dirname(__FILE__) + '/../test_helper'
class ParentCategoryTest < ActiveSupport::TestCase
def test_truth
assert true
end
end
-
/unit/user_test.rb
require File.dirname(__FILE__) + '/../test_helper'
class UserTest < Test::Unit::TestCase
include AuthenticatedTestHelper
fixtures :users
def test_should_create_user
assert_difference User, :count do
user create_user
assert !user.new_record?, "#{user.errors.full_messages.to_sentence}"
end
end
def test_should_require_password
assert_no_difference User, :count do
u create_user(:password > nil)
assert u.errors.on(:password)
end
end
def test_should_require_password_confirmation
assert_no_difference User, :count do
u create_user(:password_confirmation > nil)
assert u.errors.on(:password_confirmation)
end
end
def test_should_require_email
assert_no_difference User, :count do
u create_user(:email > nil)
assert u.errors.on(:email)
end
end
def test_should_reset_password
users(:quentin).update_attributes(:password > 'new password', :password_confirmation > 'new password')
assert_equal users(:quentin), User.authenticate('quentin@example.com', 'new password')
end
def test_should_not_rehash_password
users(:quentin).update_attributes(:email > 'quentin2@example.com')
assert_equal users(:quentin), User.authenticate('quentin2@example.com', 'test')
end
def test_should_authenticate_user
assert_equal users(:quentin), User.authenticate('quentin@example.com', 'test')
end
def test_should_set_remember_token
users(:quentin).remember_me
assert_not_nil users(:quentin).remember_token
assert_not_nil users(:quentin).remember_token_expires_at
end
def test_should_unset_remember_token
users(:quentin).remember_me
assert_not_nil users(:quentin).remember_token
users(:quentin).forget_me
assert_nil users(:quentin).remember_token
end
protected
def create_user(options {})
User.create({ :email > 'quire@example.com', :password > 'quire', :password_confirmation > 'quire' }.merge(options))
end
end
|