Chris@119: require File.expand_path('../../test_helper', __FILE__) chris@22: chris@22: class FilesControllerTest < ActionController::TestCase Chris@909: fixtures :projects, :trackers, :issue_statuses, :issues, Chris@909: :enumerations, :users, :issue_categories, Chris@909: :projects_trackers, Chris@909: :roles, Chris@909: :member_roles, Chris@909: :members, Chris@909: :enabled_modules, Chris@909: :workflows, Chris@909: :journals, :journal_details, Chris@909: :attachments, Chris@909: :versions Chris@909: chris@22: def setup chris@22: @controller = FilesController.new chris@22: @request = ActionController::TestRequest.new chris@22: @response = ActionController::TestResponse.new chris@22: @request.session[:user_id] = nil chris@22: Setting.default_language = 'en' chris@22: end chris@22: chris@22: def test_index chris@22: get :index, :project_id => 1 chris@22: assert_response :success chris@22: assert_template 'index' chris@22: assert_not_nil assigns(:containers) Chris@909: chris@22: # file attached to the project chris@22: assert_tag :a, :content => 'project_file.zip', chris@22: :attributes => { :href => '/attachments/download/8/project_file.zip' } Chris@909: chris@22: # file attached to a project's version chris@22: assert_tag :a, :content => 'version_file.zip', chris@22: :attributes => { :href => '/attachments/download/9/version_file.zip' } chris@22: end chris@22: chris@22: def test_create_file chris@22: set_tmp_attachments_directory chris@22: @request.session[:user_id] = 2 chris@22: Setting.notified_events = ['file_added'] chris@22: ActionMailer::Base.deliveries.clear Chris@909: chris@22: assert_difference 'Attachment.count' do chris@22: post :create, :project_id => 1, :version_id => '', chris@22: :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} chris@22: assert_response :redirect chris@22: end chris@37: assert_redirected_to '/projects/ecookbook/files' chris@22: a = Attachment.find(:first, :order => 'created_on DESC') chris@22: assert_equal 'testfile.txt', a.filename chris@22: assert_equal Project.find(1), a.container chris@22: chris@22: mail = ActionMailer::Base.deliveries.last chris@22: assert_kind_of TMail::Mail, mail chris@22: assert_equal "[eCookbook] New file", mail.subject chris@22: assert mail.body.include?('testfile.txt') chris@22: end Chris@909: chris@22: def test_create_version_file chris@22: set_tmp_attachments_directory chris@22: @request.session[:user_id] = 2 chris@22: Setting.notified_events = ['file_added'] Chris@909: chris@22: assert_difference 'Attachment.count' do chris@22: post :create, :project_id => 1, :version_id => '2', chris@22: :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} chris@22: assert_response :redirect chris@22: end chris@37: assert_redirected_to '/projects/ecookbook/files' chris@22: a = Attachment.find(:first, :order => 'created_on DESC') chris@22: assert_equal 'testfile.txt', a.filename chris@22: assert_equal Version.find(2), a.container chris@22: end Chris@909: chris@22: end