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 | ||||
Setting.notified_events = ['file_added'] | ||||
ActionMailer::Base.deliveries.clear | ||||
|
r6698 | |||
|
r3938 | assert_difference 'Attachment.count' do | ||
|
r3971 | post :create, :project_id => 1, :version_id => '', | ||
|
r3938 | :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} | ||
assert_response :redirect | ||||
end | ||||
|
r4293 | assert_redirected_to '/projects/ecookbook/files' | ||
|
r3938 | a = Attachment.find(:first, :order => 'created_on DESC') | ||
assert_equal 'testfile.txt', a.filename | ||||
assert_equal Project.find(1), a.container | ||||
mail = ActionMailer::Base.deliveries.last | ||||
assert_kind_of TMail::Mail, mail | ||||
assert_equal "[eCookbook] New file", mail.subject | ||||
assert mail.body.include?('testfile.txt') | ||||
end | ||||
|
r6698 | |||
|
r3970 | def test_create_version_file | ||
|
r3938 | set_tmp_attachments_directory | ||
@request.session[:user_id] = 2 | ||||
Setting.notified_events = ['file_added'] | ||||
|
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' | ||
|
r3938 | a = Attachment.find(:first, :order => 'created_on DESC') | ||
assert_equal 'testfile.txt', a.filename | ||||
assert_equal Version.find(2), a.container | ||||
end | ||||
|
r6698 | |||
|
r3937 | end | ||