diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-11-22 11:44:07 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-11-22 11:44:07 +0000 |
commit | 06266c8fecd78d620b7eb55c7d9df1b65340b5b1 (patch) | |
tree | 1c6938e22bf0b3fe52c7f2f4c2d9ade991224339 /test | |
parent | af7e586b063398fe75104837b1d11d0886139b7e (diff) | |
download | redmine-06266c8fecd78d620b7eb55c7d9df1b65340b5b1.tar.gz redmine-06266c8fecd78d620b7eb55c7d9df1b65340b5b1.zip |
Extends child_pages macro to display child pages based on page parameter (#1975).
It can also be called from anywhere now (not only from wiki pages).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2053 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r-- | test/fixtures/wiki_contents.yml | 22 | ||||
-rw-r--r-- | test/fixtures/wiki_pages.yml | 14 | ||||
-rw-r--r-- | test/unit/helpers/application_helper_test.rb | 26 | ||||
-rw-r--r-- | test/unit/lib/redmine/wiki_formatting/macros_test.rb | 98 |
4 files changed, 134 insertions, 26 deletions
diff --git a/test/fixtures/wiki_contents.yml b/test/fixtures/wiki_contents.yml index 8c53d4d97..8798ff229 100644 --- a/test/fixtures/wiki_contents.yml +++ b/test/fixtures/wiki_contents.yml @@ -47,4 +47,26 @@ wiki_contents_004: version: 1
author_id: 1
comments:
+wiki_contents_005:
+ text: |-
+ h1. Child page 1
+
+ This is a child page
+ updated_on: 2007-03-08 00:18:07 +01:00
+ page_id: 5
+ id: 5
+ version: 1
+ author_id: 1
+ comments:
+wiki_contents_006:
+ text: |-
+ h1. Child page 2
+
+ This is a child page
+ updated_on: 2007-03-08 00:18:07 +01:00
+ page_id: 6
+ id: 6
+ version: 1
+ author_id: 1
+ comments:
\ No newline at end of file diff --git a/test/fixtures/wiki_pages.yml b/test/fixtures/wiki_pages.yml index e285441ff..8d29c2f72 100644 --- a/test/fixtures/wiki_pages.yml +++ b/test/fixtures/wiki_pages.yml @@ -27,4 +27,18 @@ wiki_pages_004: wiki_id: 1
protected: false
parent_id: 1
+wiki_pages_005:
+ created_on: 2007-03-08 00:18:07 +01:00
+ title: Child_1
+ id: 5
+ wiki_id: 1
+ protected: false
+ parent_id: 2
+wiki_pages_006:
+ created_on: 2007-03-08 00:18:07 +01:00
+ title: Child_2
+ id: 6
+ wiki_id: 1
+ protected: false
+ parent_id: 2
\ No newline at end of file diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb index d23300309..31bc1e49d 100644 --- a/test/unit/helpers/application_helper_test.rb +++ b/test/unit/helpers/application_helper_test.rb @@ -359,32 +359,6 @@ EXPECTED assert_equal expected.gsub(%r{\s+}, ''), textilizable(raw).gsub(%r{\s+}, '') end - def test_macro_hello_world - text = "{{hello_world}}" - assert textilizable(text).match(/Hello world!/) - # escaping - text = "!{{hello_world}}" - assert_equal '<p>{{hello_world}}</p>', textilizable(text) - end - - def test_macro_include - @project = Project.find(1) - # include a page of the current project wiki - text = "{{include(Another page)}}" - assert textilizable(text).match(/This is a link to a ticket/) - - @project = nil - # include a page of a specific project wiki - text = "{{include(ecookbook:Another page)}}" - assert textilizable(text).match(/This is a link to a ticket/) - - text = "{{include(ecookbook:)}}" - assert textilizable(text).match(/CookBook documentation/) - - text = "{{include(unknowidentifier:somepage)}}" - assert textilizable(text).match(/Unknow project/) - end - def test_default_formatter Setting.text_formatting = 'unknown' text = 'a *link*: http://www.example.net/' diff --git a/test/unit/lib/redmine/wiki_formatting/macros_test.rb b/test/unit/lib/redmine/wiki_formatting/macros_test.rb new file mode 100644 index 000000000..b5284acd3 --- /dev/null +++ b/test/unit/lib/redmine/wiki_formatting/macros_test.rb @@ -0,0 +1,98 @@ +# Redmine - project management software +# Copyright (C) 2006-2008 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. + +require File.dirname(__FILE__) + '/../../../../test_helper' + +class Redmine::WikiFormatting::MacrosTest < HelperTestCase + include ApplicationHelper + include ActionView::Helpers::TextHelper + fixtures :projects, :roles, :enabled_modules, :users, + :repositories, :changesets, + :trackers, :issue_statuses, :issues, + :versions, :documents, + :wikis, :wiki_pages, :wiki_contents, + :boards, :messages, + :attachments + + def setup + super + @project = nil + end + + def teardown + end + + def test_macro_hello_world + text = "{{hello_world}}" + assert textilizable(text).match(/Hello world!/) + # escaping + text = "!{{hello_world}}" + assert_equal '<p>{{hello_world}}</p>', textilizable(text) + end + + def test_macro_include + @project = Project.find(1) + # include a page of the current project wiki + text = "{{include(Another page)}}" + assert textilizable(text).match(/This is a link to a ticket/) + + @project = nil + # include a page of a specific project wiki + text = "{{include(ecookbook:Another page)}}" + assert textilizable(text).match(/This is a link to a ticket/) + + text = "{{include(ecookbook:)}}" + assert textilizable(text).match(/CookBook documentation/) + + text = "{{include(unknowidentifier:somepage)}}" + assert textilizable(text).match(/Page not found/) + end + + def test_macro_child_pages + expected = "<p><ul class=\"pages-hierarchy\">\n" + + "<li><a href=\"/wiki/ecookbook/Child_1\">Child 1</a></li>\n" + + "<li><a href=\"/wiki/ecookbook/Child_2\">Child 2</a></li>\n" + + "</ul>\n</p>" + + @project = Project.find(1) + # child pages of the current wiki page + assert_equal expected, textilizable("{{child_pages}}", :object => WikiPage.find(2).content) + # child pages of another page + assert_equal expected, textilizable("{{child_pages(Another_page)}}", :object => WikiPage.find(1).content) + + @project = Project.find(2) + assert_equal expected, textilizable("{{child_pages(ecookbook:Another_page)}}", :object => WikiPage.find(1).content) + end + + def test_macro_child_pages_with_option + expected = "<p><ul class=\"pages-hierarchy\">\n" + + "<li><a href=\"/wiki/ecookbook/Another_page\">Another page</a>\n" + + "<ul class=\"pages-hierarchy\">\n" + + "<li><a href=\"/wiki/ecookbook/Child_1\">Child 1</a></li>\n" + + "<li><a href=\"/wiki/ecookbook/Child_2\">Child 2</a></li>\n" + + "</ul>\n</li>\n</ul>\n</p>" + + @project = Project.find(1) + # child pages of the current wiki page + assert_equal expected, textilizable("{{child_pages(parent=1)}}", :object => WikiPage.find(2).content) + # child pages of another page + assert_equal expected, textilizable("{{child_pages(Another_page, parent=1)}}", :object => WikiPage.find(1).content) + + @project = Project.find(2) + assert_equal expected, textilizable("{{child_pages(ecookbook:Another_page, parent=1)}}", :object => WikiPage.find(1).content) + end +end |