##// END OF EJS Templates
Adds functional tests....
Jean-Philippe Lang -
r8834:71c83e115507
parent child
Show More
@@ -1,77 +1,96
1 1 require File.expand_path('../../test_helper', __FILE__)
2 2
3 3 class FilesControllerTest < ActionController::TestCase
4 4 fixtures :projects, :trackers, :issue_statuses, :issues,
5 5 :enumerations, :users, :issue_categories,
6 6 :projects_trackers,
7 7 :roles,
8 8 :member_roles,
9 9 :members,
10 10 :enabled_modules,
11 11 :workflows,
12 12 :journals, :journal_details,
13 13 :attachments,
14 14 :versions
15 15
16 16 def setup
17 17 @controller = FilesController.new
18 18 @request = ActionController::TestRequest.new
19 19 @response = ActionController::TestResponse.new
20 20 @request.session[:user_id] = nil
21 21 Setting.default_language = 'en'
22 22 end
23 23
24 24 def test_index
25 25 get :index, :project_id => 1
26 26 assert_response :success
27 27 assert_template 'index'
28 28 assert_not_nil assigns(:containers)
29 29
30 30 # file attached to the project
31 31 assert_tag :a, :content => 'project_file.zip',
32 32 :attributes => { :href => '/attachments/download/8/project_file.zip' }
33 33
34 34 # file attached to a project's version
35 35 assert_tag :a, :content => 'version_file.zip',
36 36 :attributes => { :href => '/attachments/download/9/version_file.zip' }
37 37 end
38 38
39 def test_new
40 @request.session[:user_id] = 2
41 get :new, :project_id => 1
42 assert_response :success
43 assert_template 'new'
44
45 assert_tag 'select', :attributes => {:name => 'version_id'}
46 end
47
48 def test_new_without_versions
49 Version.delete_all
50 @request.session[:user_id] = 2
51 get :new, :project_id => 1
52 assert_response :success
53 assert_template 'new'
54
55 assert_no_tag 'select', :attributes => {:name => 'version_id'}
56 end
57
39 58 def test_create_file
40 59 set_tmp_attachments_directory
41 60 @request.session[:user_id] = 2
42 61 Setting.notified_events = ['file_added']
43 62 ActionMailer::Base.deliveries.clear
44 63
45 64 assert_difference 'Attachment.count' do
46 65 post :create, :project_id => 1, :version_id => '',
47 66 :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}}
48 67 assert_response :redirect
49 68 end
50 69 assert_redirected_to '/projects/ecookbook/files'
51 70 a = Attachment.find(:first, :order => 'created_on DESC')
52 71 assert_equal 'testfile.txt', a.filename
53 72 assert_equal Project.find(1), a.container
54 73
55 74 mail = ActionMailer::Base.deliveries.last
56 75 assert_kind_of TMail::Mail, mail
57 76 assert_equal "[eCookbook] New file", mail.subject
58 77 assert mail.body.include?('testfile.txt')
59 78 end
60 79
61 80 def test_create_version_file
62 81 set_tmp_attachments_directory
63 82 @request.session[:user_id] = 2
64 83 Setting.notified_events = ['file_added']
65 84
66 85 assert_difference 'Attachment.count' do
67 86 post :create, :project_id => 1, :version_id => '2',
68 87 :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}}
69 88 assert_response :redirect
70 89 end
71 90 assert_redirected_to '/projects/ecookbook/files'
72 91 a = Attachment.find(:first, :order => 'created_on DESC')
73 92 assert_equal 'testfile.txt', a.filename
74 93 assert_equal Version.find(2), a.container
75 94 end
76 95
77 96 end
General Comments 0
You need to be logged in to leave comments. Login now