##// END OF EJS Templates
added issues integration tests...
Jean-Philippe Lang -
r121:2197fa3120e2
parent child
Show More
@@ -0,0 +1,78
1 require "#{File.dirname(__FILE__)}/../test_helper"
2
3 class IssuesTest < ActionController::IntegrationTest
4 fixtures :projects, :users, :trackers, :issue_statuses, :issues, :permissions, :permissions_roles, :enumerations
5
6 # create an issue
7 def test_add_issue
8 log_user('jsmith', 'jsmith')
9 get "projects/add_issue/1", :tracker_id => "1"
10 assert_response :success
11 assert_template "projects/add_issue"
12
13 post "projects/add_issue/1", :tracker_id => "1",
14 :issue => { :start_date => "2006-12-26",
15 :priority_id => "3",
16 :subject => "new test issue",
17 :category_id => "",
18 :description => "new issue",
19 :done_ratio => "0",
20 :due_date => "",
21 :assigned_to_id => "" }
22 # find created issue
23 issue = Issue.find_by_subject("new test issue")
24 assert_kind_of Issue, issue
25
26 # check redirection
27 assert_redirected_to "projects/list_issues/1"
28 follow_redirect!
29 assert assigns(:issues).include?(issue)
30
31 # check issue attributes
32 assert_equal 'jsmith', issue.author.login
33 assert_equal 1, issue.project.id
34 assert_equal 1, issue.status.id
35 end
36
37 # add then remove 2 attachments to an issue
38 def test_issue_attachements
39 log_user('jsmith', 'jsmith')
40
41 file_data_1 = "some text...."
42 file_name_1 = "sometext.txt"
43 file_data_2 = "more text..."
44 file_name_2 = "moretext.txt"
45
46 boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor"
47 headers = { "Content-Type" => "multipart/form-data; boundary=#{boundary}" }
48
49 data = [
50 "--" + boundary,
51 "Content-Disposition: form-data; name=\"attachments[]\"; filename=\"#{file_name_1}\"",
52 "Content-Type: text/plain",
53 "", file_data_1,
54 "--" + boundary,
55 "Content-Disposition: form-data; name=\"attachments[]\"; filename=\"#{file_name_2}\"",
56 "Content-Type: text/plain",
57 "", file_data_2,
58 "--" + boundary, ""
59 ].join("\x0D\x0A")
60
61 post "issues/add_attachment/1", data, headers
62 assert_redirected_to "issues/show/1"
63
64 # make sure attachment was saved
65 attachment = Issue.find(1).attachments.find_by_filename(file_name_1)
66 assert_kind_of Attachment, attachment
67 assert_equal Issue.find(1), attachment.container
68 # verify the size of the attachment stored in db
69 assert_equal file_data_1.length, attachment.filesize
70 # verify that the attachment was written to disk
71 assert File.exist?(attachment.diskfile)
72
73 # remove the attachments
74 Issue.find(1).attachments.each(&:destroy)
75 assert_equal 0, Issue.find(1).attachments.length
76 end
77
78 end
General Comments 0
You need to be logged in to leave comments. Login now