files_controller_test.rb
96 lines
| 3.0 KiB
| text/x-ruby
|
RubyLexer
|
r4395 | require File.expand_path('../../test_helper', __FILE__) | ||
|
r3937 | |||
class FilesControllerTest < ActionController::TestCase | ||||
|
r7402 | fixtures :projects, :trackers, :issue_statuses, :issues, | ||
:enumerations, :users, :issue_categories, | ||||
:projects_trackers, | ||||
:roles, | ||||
:member_roles, | ||||
:members, | ||||
:enabled_modules, | ||||
:workflows, | ||||
:journals, :journal_details, | ||||
:attachments, | ||||
:versions | ||||
|
r6698 | |||
|
r3937 | def setup | ||
@controller = FilesController.new | ||||
@request = ActionController::TestRequest.new | ||||
@response = ActionController::TestResponse.new | ||||
@request.session[:user_id] = nil | ||||
Setting.default_language = 'en' | ||||
end | ||||
def test_index | ||||
|
r3971 | get :index, :project_id => 1 | ||
|
r3937 | assert_response :success | ||
assert_template 'index' | ||||
assert_not_nil assigns(:containers) | ||||
|
r6698 | |||
|
r3937 | # file attached to the project | ||
assert_tag :a, :content => 'project_file.zip', | ||||
:attributes => { :href => '/attachments/download/8/project_file.zip' } | ||||
|
r6698 | |||
|
r3937 | # file attached to a project's version | ||
assert_tag :a, :content => 'version_file.zip', | ||||
:attributes => { :href => '/attachments/download/9/version_file.zip' } | ||||
end | ||||
|
r8834 | def test_new | ||
@request.session[:user_id] = 2 | ||||
get :new, :project_id => 1 | ||||
assert_response :success | ||||
assert_template 'new' | ||||
assert_tag 'select', :attributes => {:name => 'version_id'} | ||||
end | ||||
def test_new_without_versions | ||||
Version.delete_all | ||||
@request.session[:user_id] = 2 | ||||
get :new, :project_id => 1 | ||||
assert_response :success | ||||
assert_template 'new' | ||||
assert_no_tag 'select', :attributes => {:name => 'version_id'} | ||||
end | ||||
|
r3970 | def test_create_file | ||
|
r3938 | set_tmp_attachments_directory | ||
@request.session[:user_id] = 2 | ||||
ActionMailer::Base.deliveries.clear | ||||
|
r6698 | |||
|
r9766 | with_settings :notified_events => %w(file_added) do | ||
assert_difference 'Attachment.count' do | ||||
post :create, :project_id => 1, :version_id => '', | ||||
:attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} | ||||
assert_response :redirect | ||||
end | ||||
|
r3938 | end | ||
|
r4293 | assert_redirected_to '/projects/ecookbook/files' | ||
|
r10701 | a = Attachment.order('created_on DESC').first | ||
|
r3938 | assert_equal 'testfile.txt', a.filename | ||
assert_equal Project.find(1), a.container | ||||
mail = ActionMailer::Base.deliveries.last | ||||
|
r8871 | assert_not_nil mail | ||
|
r3938 | assert_equal "[eCookbook] New file", mail.subject | ||
|
r8966 | assert_mail_body_match 'testfile.txt', mail | ||
|
r3938 | end | ||
|
r6698 | |||
|
r3970 | def test_create_version_file | ||
|
r3938 | set_tmp_attachments_directory | ||
@request.session[:user_id] = 2 | ||||
|
r6698 | |||
|
r3938 | assert_difference 'Attachment.count' do | ||
|
r3971 | post :create, :project_id => 1, :version_id => '2', | ||
|
r3938 | :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} | ||
assert_response :redirect | ||||
end | ||||
|
r4293 | assert_redirected_to '/projects/ecookbook/files' | ||
|
r10701 | a = Attachment.order('created_on DESC').first | ||
|
r3938 | assert_equal 'testfile.txt', a.filename | ||
assert_equal Version.find(2), a.container | ||||
end | ||||
|
r6698 | |||
|
r3937 | end | ||