diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb index 5cb2c4cc1..9b42c3a65 100644 --- a/test/unit/helpers/application_helper_test.rb +++ b/test/unit/helpers/application_helper_test.rb @@ -1,16 +1,16 @@ # Redmine - project management software -# Copyright (C) 2006-2010 Jean-Philippe Lang +# Copyright (C) 2006-2011 Jean-Philippe Lang # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @@ -18,9 +18,9 @@ require File.expand_path('../../../test_helper', __FILE__) class ApplicationHelperTest < ActionView::TestCase - + fixtures :projects, :roles, :enabled_modules, :users, - :repositories, :changesets, + :repositories, :changesets, :trackers, :issue_statuses, :issues, :versions, :documents, :wikis, :wiki_pages, :wiki_contents, :boards, :messages, @@ -35,11 +35,11 @@ class ApplicationHelperTest < ActionView::TestCase context "authorized user" do should "be tested" end - + context "unauthorized user" do should "be tested" end - + should "allow using the :controller and :action for the target link" do User.current = User.find_by_login('admin') @@ -48,9 +48,9 @@ class ApplicationHelperTest < ActionView::TestCase {:controller => 'issues', :action => 'edit', :id => Issue.first.id}) assert_match /href/, response end - + end - + def test_auto_links to_test = { 'http://foo.bar' => 'http://foo.bar', @@ -84,12 +84,12 @@ class ApplicationHelperTest < ActionView::TestCase } to_test.each { |text, result| assert_equal "
#{result}
", textilizable(text) } end - + def test_auto_mailto - assert_equal '', + assert_equal '', textilizable('test@foo.bar') end - + def test_inline_images to_test = { '!http://foo.bar/image.jpg!' => '#{result}
", textilizable(text) } end - + def test_inline_images_inside_tags raw = <<-RAW h1. !foo.png! Heading @@ -115,7 +115,7 @@ RAW assert textilizable(raw).include?('#{result}
", textilizable(text, :attachments => attachments) } end - + def test_textile_external_links to_test = { 'This is a "link":http://foo.bar' => 'This is a link', @@ -149,27 +149,27 @@ RAW end def test_redmine_links - issue_link = link_to('#3', {:controller => 'issues', :action => 'show', :id => 3}, + issue_link = link_to('#3', {:controller => 'issues', :action => 'show', :id => 3}, :class => 'issue status-1 priority-1 overdue', :title => 'Error 281 when updating a recipe (New)') - + changeset_link = link_to('r1', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 1}, :class => 'changeset', :title => 'My very first commit') changeset_link2 = link_to('r2', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 2}, :class => 'changeset', :title => 'This commit fixes #1, #2 and references #1 & #3') - + document_link = link_to('Test document', {:controller => 'documents', :action => 'show', :id => 1}, :class => 'document') - + version_link = link_to('1.0', {:controller => 'versions', :action => 'show', :id => 2}, :class => 'version') message_url = {:controller => 'messages', :action => 'show', :board_id => 1, :id => 4} - + project_url = {:controller => 'projects', :action => 'show', :id => 'subproject1'} - + source_url = {:controller => 'repositories', :action => 'entry', :id => 'ecookbook', :path => ['some', 'file']} source_url_with_ext = {:controller => 'repositories', :action => 'entry', :id => 'ecookbook', :path => ['some', 'file.ext']} - + to_test = { # tickets '#3, [#3], (#3) and #3.' => "#{issue_link}, [#{issue_link}], (#{issue_link}) and #{issue_link}.", @@ -224,14 +224,14 @@ RAW @project = Project.find(1) to_test.each { |text, result| assert_equal "#{result}
", textilizable(text), "#{text} failed" } end - + def test_cross_project_redmine_links source_link = link_to('ecookbook:source:/some/file', {:controller => 'repositories', :action => 'entry', :id => 'ecookbook', :path => ['some', 'file']}, :class => 'source') - + changeset_link = link_to('ecookbook:r2', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 2}, :class => 'changeset', :title => 'This commit fixes #1, #2 and references #1 & #3') - + to_test = { # documents 'document:"Test document"' => 'document:"Test document"', @@ -345,7 +345,7 @@ RAW } to_test.each { |text, result| assert_equal "#{result}
", textilizable(text, :attachments => Issue.find(3).attachments), "#{text} failed" } end - + def test_wiki_links to_test = { '[[CookBook documentation]]' => 'CookBook documentation', @@ -374,7 +374,7 @@ RAW @project = Project.find(1) to_test.each { |text, result| assert_equal "#{result}
", textilizable(text) } end - + def test_html_tags to_test = { "<div>content</div>
", @@ -398,7 +398,7 @@ RAW } to_test.each { |text, result| assert_equal result, textilizable(text) } end - + def test_allowed_html_tags to_test = { "preformatted text" => "
preformatted text", @@ -407,7 +407,7 @@ RAW } to_test.each { |text, result| assert_equal result, textilizable(text) } end - + def test_pre_tags raw = <<-RAW Before @@ -426,10 +426,10 @@ RAW
After
EXPECTED - + assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '') end - + def test_pre_content_should_not_parse_wiki_and_redmine_links raw = <<-RAW [[CookBook documentation]] @@ -452,11 +452,11 @@ RAW #1 EXPECTED - + @project = Project.find(1) assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '') end - + def test_non_closing_pre_blocks_should_be_closed raw = <<-RAW
@@ -466,11 +466,11 @@ RAW
EXPECTED
-
+
@project = Project.find(1)
assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '')
end
-
+
def test_syntax_highlight
raw = <<-RAW
@@ -485,7 +485,7 @@ EXPECTED
assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '')
end
-
+
def test_wiki_links_in_tables
to_test = {"|[[Page|Link title]]|[[Other Page|Other title]]|\n|Cell 21|[[Last page]]|" =>
'Link title ' +
@@ -495,7 +495,7 @@ EXPECTED
@project = Project.find(1)
to_test.each { |text, result| assert_equal "#{result}
", textilizable(text).gsub(/[\t\n]/, '') }
end
-
+
def test_text_formatting
to_test = {'*_+bold, italic and underline+_*' => 'bold, italic and underline',
'(_text within parentheses_)' => '(text within parentheses)',
@@ -505,12 +505,12 @@ EXPECTED
}
to_test.each { |text, result| assert_equal "#{result}
", textilizable(text) }
end
-
+
def test_wiki_horizontal_rule
assert_equal '
', textilizable('---')
assert_equal 'Dashes: ---
', textilizable('Dashes: ---')
end
-
+
def test_footnotes
raw = <<-RAW
This is some text[1].
@@ -525,14 +525,14 @@ EXPECTED
assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '')
end
-
+
def test_headings
raw = 'h1. Some heading'
expected = %|\nSome heading¶
|
-
+
assert_equal expected, textilizable(raw)
end
-
+
def test_table_of_content
raw = <<-RAW
{{toc}}
@@ -566,8 +566,8 @@ RAW
expected = '' +
'- Title' +
'
' +
- '- Subtitle with a Wiki link
' +
- '- Subtitle with another Wiki link
' +
+ '- Subtitle with a Wiki link
' +
+ '- Subtitle with another Wiki link
' +
'- Subtitle with red text' +
'
' +
'- Subtitle with some modifiers
' +
@@ -590,7 +590,7 @@ RAW
@project = Project.find(1)
assert textilizable(raw).gsub("\n", "").include?(expected), textilizable(raw)
end
-
+
def test_table_of_content_should_contain_included_page_headings
raw = <<-RAW
{{toc}}
@@ -602,20 +602,20 @@ RAW
expected = '' +
'- Included
' +
- '- Child page 1
' +
+ '- Child page 1
' +
'
'
@project = Project.find(1)
assert textilizable(raw).gsub("\n", "").include?(expected)
end
-
+
def test_default_formatter
Setting.text_formatting = 'unknown'
text = 'a *link*: http://www.example.net/'
assert_equal 'a *link*: http://www.example.net/
', textilizable(text)
Setting.text_formatting = 'textile'
end
-
+
def test_due_date_distance_in_words
to_test = { Date.today => 'Due in 0 days',
Date.today + 1 => 'Due in 1 day',
@@ -630,7 +630,7 @@ RAW
assert_equal expected, due_date_distance_in_words(date)
end
end
-
+
def test_avatar
# turn on avatars
Setting.gravatar_enabled = '1'
@@ -638,25 +638,25 @@ RAW
assert avatar('jsmith ').include?(Digest::MD5.hexdigest('jsmith@somenet.foo'))
assert_nil avatar('jsmith')
assert_nil avatar(nil)
-
+
# turn off avatars
Setting.gravatar_enabled = '0'
assert_equal '', avatar(User.find_by_mail('jsmith@somenet.foo'))
end
-
+
def test_link_to_user
user = User.find(2)
t = link_to_user(user)
assert_equal "#{ user.name }", t
end
-
+
def test_link_to_user_should_not_link_to_locked_user
user = User.find(5)
assert user.locked?
t = link_to_user(user)
assert_equal user.name, t
end
-
+
def test_link_to_user_should_not_link_to_anonymous
user = User.anonymous
assert user.anonymous?