annotate test/functional/files_controller_test.rb @ 1459:cf78a7ade302 luisf

Merge from branch "bug_794"
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Mon, 11 Nov 2013 18:25:50 +0000
parents 433d4f72a19b
children 622f24f53b42
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@1115 39 def test_new
Chris@1115 40 @request.session[:user_id] = 2
Chris@1115 41 get :new, :project_id => 1
Chris@1115 42 assert_response :success
Chris@1115 43 assert_template 'new'
Chris@1115 44
Chris@1115 45 assert_tag 'select', :attributes => {:name => 'version_id'}
Chris@1115 46 end
Chris@1115 47
Chris@1115 48 def test_new_without_versions
Chris@1115 49 Version.delete_all
Chris@1115 50 @request.session[:user_id] = 2
Chris@1115 51 get :new, :project_id => 1
Chris@1115 52 assert_response :success
Chris@1115 53 assert_template 'new'
Chris@1115 54
Chris@1115 55 assert_no_tag 'select', :attributes => {:name => 'version_id'}
Chris@1115 56 end
Chris@1115 57
chris@22 58 def test_create_file
chris@22 59 set_tmp_attachments_directory
chris@22 60 @request.session[:user_id] = 2
chris@22 61 ActionMailer::Base.deliveries.clear
Chris@909 62
Chris@1115 63 with_settings :notified_events => %w(file_added) do
Chris@1115 64 assert_difference 'Attachment.count' do
Chris@1115 65 post :create, :project_id => 1, :version_id => '',
Chris@1115 66 :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}}
Chris@1115 67 assert_response :redirect
Chris@1115 68 end
chris@22 69 end
chris@37 70 assert_redirected_to '/projects/ecookbook/files'
chris@22 71 a = Attachment.find(:first, :order => 'created_on DESC')
chris@22 72 assert_equal 'testfile.txt', a.filename
chris@22 73 assert_equal Project.find(1), a.container
chris@22 74
chris@22 75 mail = ActionMailer::Base.deliveries.last
Chris@1115 76 assert_not_nil mail
chris@22 77 assert_equal "[eCookbook] New file", mail.subject
Chris@1115 78 assert_mail_body_match 'testfile.txt', mail
chris@22 79 end
Chris@909 80
chris@22 81 def test_create_version_file
chris@22 82 set_tmp_attachments_directory
chris@22 83 @request.session[:user_id] = 2
Chris@909 84
chris@22 85 assert_difference 'Attachment.count' do
chris@22 86 post :create, :project_id => 1, :version_id => '2',
chris@22 87 :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}}
chris@22 88 assert_response :redirect
chris@22 89 end
chris@37 90 assert_redirected_to '/projects/ecookbook/files'
chris@22 91 a = Attachment.find(:first, :order => 'created_on DESC')
chris@22 92 assert_equal 'testfile.txt', a.filename
chris@22 93 assert_equal Version.find(2), a.container
chris@22 94 end
Chris@909 95
chris@22 96 end