Mercurial > hg > soundsoftware-site
comparison test/integration/.svn/text-base/issues_test.rb.svn-base @ 0:513646585e45
* Import Redmine trunk SVN rev 3859
author | Chris Cannam |
---|---|
date | Fri, 23 Jul 2010 15:52:44 +0100 |
parents | |
children | 40f7cfd4df19 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:513646585e45 |
---|---|
1 # redMine - project management software | |
2 # Copyright (C) 2006-2008 Jean-Philippe Lang | |
3 # | |
4 # This program is free software; you can redistribute it and/or | |
5 # modify it under the terms of the GNU General Public License | |
6 # as published by the Free Software Foundation; either version 2 | |
7 # of the License, or (at your option) any later version. | |
8 # | |
9 # This program is distributed in the hope that it will be useful, | |
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 # GNU General Public License for more details. | |
13 # | |
14 # You should have received a copy of the GNU General Public License | |
15 # along with this program; if not, write to the Free Software | |
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
17 | |
18 require "#{File.dirname(__FILE__)}/../test_helper" | |
19 | |
20 class IssuesTest < ActionController::IntegrationTest | |
21 fixtures :projects, | |
22 :users, | |
23 :roles, | |
24 :members, | |
25 :trackers, | |
26 :projects_trackers, | |
27 :enabled_modules, | |
28 :issue_statuses, | |
29 :issues, | |
30 :enumerations, | |
31 :custom_fields, | |
32 :custom_values, | |
33 :custom_fields_trackers | |
34 | |
35 # create an issue | |
36 def test_add_issue | |
37 log_user('jsmith', 'jsmith') | |
38 get 'projects/1/issues/new', :tracker_id => '1' | |
39 assert_response :success | |
40 assert_template 'issues/new' | |
41 | |
42 post 'projects/1/issues', :tracker_id => "1", | |
43 :issue => { :start_date => "2006-12-26", | |
44 :priority_id => "4", | |
45 :subject => "new test issue", | |
46 :category_id => "", | |
47 :description => "new issue", | |
48 :done_ratio => "0", | |
49 :due_date => "", | |
50 :assigned_to_id => "" }, | |
51 :custom_fields => {'2' => 'Value for field 2'} | |
52 # find created issue | |
53 issue = Issue.find_by_subject("new test issue") | |
54 assert_kind_of Issue, issue | |
55 | |
56 # check redirection | |
57 assert_redirected_to :controller => 'issues', :action => 'show', :id => issue | |
58 follow_redirect! | |
59 assert_equal issue, assigns(:issue) | |
60 | |
61 # check issue attributes | |
62 assert_equal 'jsmith', issue.author.login | |
63 assert_equal 1, issue.project.id | |
64 assert_equal 1, issue.status.id | |
65 end | |
66 | |
67 # add then remove 2 attachments to an issue | |
68 def test_issue_attachements | |
69 log_user('jsmith', 'jsmith') | |
70 set_tmp_attachments_directory | |
71 | |
72 put 'issues/1/edit', | |
73 :notes => 'Some notes', | |
74 :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain'), 'description' => 'This is an attachment'}} | |
75 assert_redirected_to "issues/1" | |
76 | |
77 # make sure attachment was saved | |
78 attachment = Issue.find(1).attachments.find_by_filename("testfile.txt") | |
79 assert_kind_of Attachment, attachment | |
80 assert_equal Issue.find(1), attachment.container | |
81 assert_equal 'This is an attachment', attachment.description | |
82 # verify the size of the attachment stored in db | |
83 #assert_equal file_data_1.length, attachment.filesize | |
84 # verify that the attachment was written to disk | |
85 assert File.exist?(attachment.diskfile) | |
86 | |
87 # remove the attachments | |
88 Issue.find(1).attachments.each(&:destroy) | |
89 assert_equal 0, Issue.find(1).attachments.length | |
90 end | |
91 | |
92 def test_other_formats_links_on_get_index | |
93 get '/projects/ecookbook/issues' | |
94 | |
95 %w(Atom PDF CSV).each do |format| | |
96 assert_tag :a, :content => format, | |
97 :attributes => { :href => "/projects/ecookbook/issues.#{format.downcase}", | |
98 :rel => 'nofollow' } | |
99 end | |
100 end | |
101 | |
102 def test_other_formats_links_on_post_index_without_project_id_in_url | |
103 post '/issues', :project_id => 'ecookbook' | |
104 | |
105 %w(Atom PDF CSV).each do |format| | |
106 assert_tag :a, :content => format, | |
107 :attributes => { :href => "/projects/ecookbook/issues.#{format.downcase}", | |
108 :rel => 'nofollow' } | |
109 end | |
110 end | |
111 | |
112 def test_pagination_links_on_get_index | |
113 Setting.per_page_options = '2' | |
114 get '/projects/ecookbook/issues' | |
115 | |
116 assert_tag :a, :content => '2', | |
117 :attributes => { :href => '/projects/ecookbook/issues?page=2' } | |
118 | |
119 end | |
120 | |
121 def test_pagination_links_on_post_index_without_project_id_in_url | |
122 Setting.per_page_options = '2' | |
123 post '/issues', :project_id => 'ecookbook' | |
124 | |
125 assert_tag :a, :content => '2', | |
126 :attributes => { :href => '/projects/ecookbook/issues?page=2' } | |
127 | |
128 end | |
129 end |