##// END OF EJS Templates
Merged r2797, r2804, r2814, r2820, r2837, r2838 from trunk....
Jean-Philippe Lang -
r2767:3d0fbea9fdfd
parent child
Show More
@@ -0,0 +1,43
1 Return-Path: <jsmith@somenet.foo>
2 Received: from osiris ([127.0.0.1])
3 by OSIRIS
4 with hMailServer ; Sun, 22 Jun 2008 12:28:07 +0200
5 Message-ID: <000501c8d452$a95cd7e0$0a00a8c0@osiris>
6 From: "John Smith" <jsmith@somenet.foo>
7 To: <redmine@somenet.foo>
8 Subject: New ticket on a given project
9 Date: Sun, 22 Jun 2008 12:28:07 +0200
10 MIME-Version: 1.0
11 Content-Type: text/plain;
12 format=flowed;
13 charset="iso-8859-1";
14 reply-type=original
15 Content-Transfer-Encoding: 7bit
16 X-Priority: 3
17 X-MSMail-Priority: Normal
18 X-Mailer: Microsoft Outlook Express 6.00.2900.2869
19 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
20
21 Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas imperdiet
22 turpis et odio. Integer eget pede vel dolor euismod varius. Phasellus
23 blandit eleifend augue. Nulla facilisi. Duis id diam. Class aptent taciti
24 sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In
25 in urna sed tellus aliquet lobortis. Morbi scelerisque tortor in dolor. Cras
26 sagittis odio eu lacus. Aliquam sem tortor, consequat sit amet, vestibulum
27 id, iaculis at, lectus. Fusce tortor libero, congue ut, euismod nec, luctus
28 eget, eros. Pellentesque tortor enim, feugiat in, dignissim eget, tristique
29 sed, mauris. Pellentesque habitant morbi tristique senectus et netus et
30 malesuada fames ac turpis egestas. Quisque sit amet libero. In hac habitasse
31 platea dictumst.
32
33 Nulla et nunc. Duis pede. Donec et ipsum. Nam ut dui tincidunt neque
34 sollicitudin iaculis. Duis vitae dolor. Vestibulum eget massa. Sed lorem.
35 Nullam volutpat cursus erat. Cras felis dolor, lacinia quis, rutrum et,
36 dictum et, ligula. Sed erat nibh, gravida in, accumsan non, placerat sed,
37 massa. Sed sodales, ante fermentum ultricies sollicitudin, massa leo
38 pulvinar dui, a gravida orci mi eget odio. Nunc a lacus.
39
40 Project : onlinestore
41 Tracker: Feature request
42 category : Stock management
43 priority: Urgent
@@ -65,6 +65,7 class NewsController < ApplicationController
65 65 flash[:notice] = l(:label_comment_added)
66 66 redirect_to :action => 'show', :id => @news
67 67 else
68 show
68 69 render :action => 'show'
69 70 end
70 71 end
@@ -385,7 +385,7 module ApplicationHelper
385 385 # export:some/file -> Force the download of the file
386 386 # Forum messages:
387 387 # message#1218 -> Link to message with id 1218
388 text = text.gsub(%r{([\s\(,\-\>]|^)(!)?(attachment|document|version|commit|source|export|message)?((#|r)(\d+)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]]\W)|\s|<|$)}) do |m|
388 text = text.gsub(%r{([\s\(,\-\>]|^)(!)?(attachment|document|version|commit|source|export|message)?((#|r)(\d+)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]]\W)|,|\s|<|$)}) do |m|
389 389 leading, esc, prefix, sep, oid = $1, $2, $3, $5 || $7, $6 || $8
390 390 link = nil
391 391 if esc.nil?
@@ -168,7 +168,7 class MailHandler < ActionMailer::Base
168 168 @keywords[attr]
169 169 else
170 170 @keywords[attr] = begin
171 if (options[:override] || @@handler_options[:allow_override].include?(attr.to_s)) && plain_text_body.gsub!(/^#{attr}:[ \t]*(.+)\s*$/i, '')
171 if (options[:override] || @@handler_options[:allow_override].include?(attr.to_s)) && plain_text_body.gsub!(/^#{attr}[ \t]*:[ \t]*(.+)\s*$/i, '')
172 172 $1.strip
173 173 elsif !@@handler_options[:issue][attr].blank?
174 174 @@handler_options[:issue][attr]
@@ -2,7 +2,7
2 2
3 3 <ul>
4 4 <% @issues.each do |issue| -%>
5 <li><%=h "#{issue.project} - #{issue.tracker} ##{issue.id}: #{issue.subject}" %></li>
5 <li><%=h issue.project %> - <%=link_to("#{issue.tracker} ##{issue.id}", :controller => 'issues', :action => 'show', :id => issue, :only_path => false)%>: <%=h issue.subject %></li>
6 6 <% end -%>
7 7 </ul>
8 8
@@ -20,11 +20,11
20 20 <% unless @pages.empty? %>
21 21 <p class="other-formats">
22 22 <%= l(:label_export_to) %>
23 <span><%= link_to 'Atom', {:controller => 'projects', :action => 'activity', :id => @project, :show_wiki_pages => 1, :format => 'atom', :key => User.current.rss_key}, :class => 'feed' %></span>
23 <span><%= link_to 'Atom', {:controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key}, :class => 'feed' %></span>
24 24 <span><%= link_to 'HTML', {:action => 'special', :page => 'export'}, :class => 'html' %></span>
25 25 </p>
26 26 <% end %>
27 27
28 28 <% content_for :header_tags do %>
29 <%= auto_discovery_link_tag(:atom, :controller => 'projects', :action => 'activity', :id => @project, :show_wiki_pages => 1, :format => 'atom', :key => User.current.rss_key) %>
29 <%= auto_discovery_link_tag(:atom, :controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %>
30 30 <% end %>
@@ -13,11 +13,11
13 13 <% unless @pages.empty? %>
14 14 <p class="other-formats">
15 15 <%= l(:label_export_to) %>
16 <span><%= link_to 'Atom', {:controller => 'projects', :action => 'activity', :id => @project, :show_wiki_pages => 1, :format => 'atom', :key => User.current.rss_key}, :class => 'feed' %></span>
16 <span><%= link_to 'Atom', {:controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key}, :class => 'feed' %></span>
17 17 <span><%= link_to 'HTML', {:action => 'special', :page => 'export'} %></span>
18 18 </p>
19 19 <% end %>
20 20
21 21 <% content_for :header_tags do %>
22 <%= auto_discovery_link_tag(:atom, :controller => 'projects', :action => 'activity', :id => @project, :show_wiki_pages => 1, :format => 'atom', :key => User.current.rss_key) %>
22 <%= auto_discovery_link_tag(:atom, :controller => 'projects', :action => 'activity', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %>
23 23 <% end %>
@@ -7,6 +7,11 http://www.redmine.org/
7 7
8 8 == 2009-xx-xx v0.8.5
9 9
10 * Incoming mail handler : Allow spaces between keywords and colon
11 * Do not require a non-word character after a comma in Redmine links
12 * Include issue hyperlinks in reminder emails
13 * Fixed: 500 Internal Server Error is raised if add an empty comment to the news
14 * Fixes: Atom links for wiki pages are not correct
10 15 * Fixed: Atom feeds leak email address
11 16
12 17
@@ -118,6 +118,15 class NewsControllerTest < Test::Unit::TestCase
118 118 assert_equal User.find(2), comment.author
119 119 end
120 120
121 def test_empty_comment_should_not_be_added
122 @request.session[:user_id] = 2
123 assert_no_difference 'Comment.count' do
124 post :add_comment, :id => 1, :comment => { :comments => '' }
125 assert_response :success
126 assert_template 'show'
127 end
128 end
129
121 130 def test_destroy_comment
122 131 comments_count = News.find(1).comments.size
123 132 @request.session[:user_id] = 2
@@ -122,6 +122,8 class ApplicationHelperTest < HelperTestCase
122 122
123 123 changeset_link = link_to('r1', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 1},
124 124 :class => 'changeset', :title => 'My very first commit')
125 changeset_link2 = link_to('r2', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 2},
126 :class => 'changeset', :title => 'This commit fixes #1, #2 and references #1 & #3')
125 127
126 128 document_link = link_to('Test document', {:controller => 'documents', :action => 'show', :id => 1},
127 129 :class => 'document')
@@ -139,6 +141,9 class ApplicationHelperTest < HelperTestCase
139 141 '#3, #3 and #3.' => "#{issue_link}, #{issue_link} and #{issue_link}.",
140 142 # changesets
141 143 'r1' => changeset_link,
144 'r1.' => "#{changeset_link}.",
145 'r1, r2' => "#{changeset_link}, #{changeset_link2}",
146 'r1,r2' => "#{changeset_link},#{changeset_link2}",
142 147 # documents
143 148 'document#1' => document_link,
144 149 'document:"Test document"' => document_link,
@@ -92,6 +92,21 class MailHandlerTest < Test::Unit::TestCase
92 92 assert issue.description.include?('Lorem ipsum dolor sit amet, consectetuer adipiscing elit.')
93 93 end
94 94
95 def test_add_issue_with_spaces_between_attribute_and_separator
96 issue = submit_email('ticket_with_spaces_between_attribute_and_separator.eml', :allow_override => 'tracker,category,priority')
97 assert issue.is_a?(Issue)
98 assert !issue.new_record?
99 issue.reload
100 assert_equal 'New ticket on a given project', issue.subject
101 assert_equal User.find_by_login('jsmith'), issue.author
102 assert_equal Project.find(2), issue.project
103 assert_equal 'Feature request', issue.tracker.to_s
104 assert_equal 'Stock management', issue.category.to_s
105 assert_equal 'Urgent', issue.priority.to_s
106 assert issue.description.include?('Lorem ipsum dolor sit amet, consectetuer adipiscing elit.')
107 end
108
109
95 110 def test_add_issue_with_attachment_to_specific_project
96 111 issue = submit_email('ticket_with_attachment.eml', :issue => {:project => 'onlinestore'})
97 112 assert issue.is_a?(Issue)
General Comments 0
You need to be logged in to leave comments. Login now