annotate test/functional/files_controller_test.rb @ 1470:2837ea054769 feature_550

Close obsolete branch feature_550
author Chris Cannam
date Tue, 22 Jan 2013 16:23:43 +0000
parents cbb26bc654de
children 433d4f72a19b
rev   line source
Chris@119 1 require File.expand_path('../../test_helper', __FILE__)
chris@22 2
chris@22 3 class FilesControllerTest < ActionController::TestCase
Chris@909 4 fixtures :projects, :trackers, :issue_statuses, :issues,
Chris@909 5 :enumerations, :users, :issue_categories,
Chris@909 6 :projects_trackers,
Chris@909 7 :roles,
Chris@909 8 :member_roles,
Chris@909 9 :members,
Chris@909 10 :enabled_modules,
Chris@909 11 :workflows,
Chris@909 12 :journals, :journal_details,
Chris@909 13 :attachments,
Chris@909 14 :versions
Chris@909 15
chris@22 16 def setup
chris@22 17 @controller = FilesController.new
chris@22 18 @request = ActionController::TestRequest.new
chris@22 19 @response = ActionController::TestResponse.new
chris@22 20 @request.session[:user_id] = nil
chris@22 21 Setting.default_language = 'en'
chris@22 22 end
chris@22 23
chris@22 24 def test_index
chris@22 25 get :index, :project_id => 1
chris@22 26 assert_response :success
chris@22 27 assert_template 'index'
chris@22 28 assert_not_nil assigns(:containers)
Chris@909 29
chris@22 30 # file attached to the project
chris@22 31 assert_tag :a, :content => 'project_file.zip',
chris@22 32 :attributes => { :href => '/attachments/download/8/project_file.zip' }
Chris@909 33
chris@22 34 # file attached to a project's version
chris@22 35 assert_tag :a, :content => 'version_file.zip',
chris@22 36 :attributes => { :href => '/attachments/download/9/version_file.zip' }
chris@22 37 end
chris@22 38
chris@22 39 def test_create_file
chris@22 40 set_tmp_attachments_directory
chris@22 41 @request.session[:user_id] = 2
chris@22 42 Setting.notified_events = ['file_added']
chris@22 43 ActionMailer::Base.deliveries.clear
Chris@909 44
chris@22 45 assert_difference 'Attachment.count' do
chris@22 46 post :create, :project_id => 1, :version_id => '',
chris@22 47 :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}}
chris@22 48 assert_response :redirect
chris@22 49 end
chris@37 50 assert_redirected_to '/projects/ecookbook/files'
chris@22 51 a = Attachment.find(:first, :order => 'created_on DESC')
chris@22 52 assert_equal 'testfile.txt', a.filename
chris@22 53 assert_equal Project.find(1), a.container
chris@22 54
chris@22 55 mail = ActionMailer::Base.deliveries.last
chris@22 56 assert_kind_of TMail::Mail, mail
chris@22 57 assert_equal "[eCookbook] New file", mail.subject
chris@22 58 assert mail.body.include?('testfile.txt')
chris@22 59 end
Chris@909 60
chris@22 61 def test_create_version_file
chris@22 62 set_tmp_attachments_directory
chris@22 63 @request.session[:user_id] = 2
chris@22 64 Setting.notified_events = ['file_added']
Chris@909 65
chris@22 66 assert_difference 'Attachment.count' do
chris@22 67 post :create, :project_id => 1, :version_id => '2',
chris@22 68 :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}}
chris@22 69 assert_response :redirect
chris@22 70 end
chris@37 71 assert_redirected_to '/projects/ecookbook/files'
chris@22 72 a = Attachment.find(:first, :order => 'created_on DESC')
chris@22 73 assert_equal 'testfile.txt', a.filename
chris@22 74 assert_equal Version.find(2), a.container
chris@22 75 end
Chris@909 76
chris@22 77 end