motiro 0.6.8 → 0.6.9
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS +15 -0
- data/README +2 -2
- data/README.en +1 -2
- data/README.pt-br +1 -2
- data/app/controllers/account_controller.rb +1 -1
- data/app/controllers/application.rb +13 -12
- data/app/controllers/javascript_controller.rb +1 -1
- data/app/controllers/report_controller.rb +1 -1
- data/app/controllers/wiki_controller.rb +3 -5
- data/app/core/cache_reporter.rb +1 -1
- data/app/core/cache_reporter_fetcher.rb +1 -1
- data/app/core/chief_editor.rb +1 -1
- data/app/core/reporter.rb +1 -1
- data/app/core/reporter_driver.rb +1 -1
- data/app/core/reporter_fetcher.rb +1 -1
- data/app/core/settings.rb +1 -1
- data/app/core/version.rb +1 -1
- data/app/core/wiki_reporter.rb +1 -1
- data/app/helpers/application_helper.rb +5 -1
- data/app/helpers/default_page_provider.rb +6 -2
- data/app/helpers/report_helper.rb +14 -1
- data/app/models/change.rb +1 -1
- data/app/models/chunk.rb +1 -1
- data/app/models/feed_observer.rb +1 -1
- data/app/models/headline.rb +1 -1
- data/app/models/page.rb +38 -4
- data/app/models/revision.rb +1 -1
- data/app/models/user.rb +1 -1
- data/app/models/wiki_reference.rb +21 -0
- data/app/models/wiki_sweeper.rb +17 -2
- data/app/ports/chdir_runner.rb +1 -1
- data/app/ports/runner.rb +1 -1
- data/app/reporters/darcs_connection.rb +1 -1
- data/app/reporters/darcs_reporter.rb +1 -1
- data/app/reporters/darcs_temp_repo.rb +1 -1
- data/app/reporters/events_reporter.rb +1 -1
- data/app/reporters/features_reporter.rb +1 -1
- data/app/reporters/subversion_reporter.rb +1 -1
- data/app/reporters/svn_connection.rb +1 -1
- data/app/reporters/svn_settings.rb +1 -1
- data/app/views/report/list.rhtml +6 -7
- data/app/views/report/older.rhtml +1 -2
- data/app/views/report/rss.rxml +1 -1
- data/app/views/report/show.rhtml +2 -2
- data/app/views/wiki/_edit_event.rhtml +2 -0
- data/app/views/wiki/_edit_feature.rhtml +2 -0
- data/app/views/wiki/_properties_edit.rhtml +3 -5
- data/app/views/wiki/_properties_show.rhtml +4 -5
- data/app/views/wiki/_show_event.rhtml +3 -0
- data/app/views/wiki/_show_feature.rhtml +2 -0
- data/app/views/wiki/show.rhtml +1 -1
- data/bin/motiro +3 -3
- data/config/routes.rb +1 -1
- data/db/migrate/024_add_feature_status.rb +11 -0
- data/db/migrate/025_add_page_references.rb +12 -0
- data/db/migrate/026_convert_link_syntax.rb +12 -0
- data/db/migrate/027_register_page_references.rb +12 -0
- data/db/motirodb.sqlite.initial +0 -0
- data/db/schema_version +1 -1
- data/db/translation/pt-BR.rb +7 -1
- data/lib/array_extensions.rb +1 -1
- data/lib/diff_chunk_builder.rb +1 -1
- data/lib/differ.rb +1 -1
- data/lib/string_extensions.rb +13 -6
- data/lib/stub_hash.rb +1 -1
- data/lib/tasks/packaging.rake +10 -12
- data/lib/tasks/testing.rake +1 -1
- data/lib/tick_daemon.rb +1 -1
- data/lib/{wiki_url_generator.rb → wiki_link_handler.rb} +13 -3
- data/lib/wiki_renderer.rb +63 -34
- data/public/images/done.png +0 -0
- data/public/images/not-done.png +0 -0
- data/public/stylesheets/motiro.css +8 -0
- data/script/ticker +1 -1
- data/test/acceptance/account_test.rb +1 -1
- data/test/acceptance/darcs_test.rb +1 -1
- data/test/acceptance/events_test.rb +1 -1
- data/test/acceptance/main_page_test.rb +1 -1
- data/test/acceptance/subversion_test.rb +1 -1
- data/test/acceptance/ts_all_suites.rb +1 -1
- data/test/acceptance/wiki_test.rb +3 -3
- data/test/contract/darcs_test.rb +1 -1
- data/test/contract/remote_darcs_test.rb +1 -1
- data/test/contract/svn_test.rb +1 -1
- data/test/fixtures/pages.yml +20 -1
- data/test/fixtures/revisions.yml +40 -1
- data/test/fixtures/wiki_references.yml +5 -0
- data/test/functional/report_controller_test.rb +1 -1
- data/test/functional/report_features_test.rb +8 -1
- data/test/functional/report_subversion_test.rb +1 -1
- data/test/functional/root_controller_test.rb +1 -1
- data/test/functional/wiki_controller_test.rb +67 -2
- data/test/lib/acceptance_test_case.rb +1 -1
- data/test/lib/darcs_excerpts.rb +1 -1
- data/test/lib/darcs_repo.rb +1 -1
- data/test/lib/hash_extensions.rb +22 -0
- data/test/lib/live_mode_test.rb +1 -1
- data/test/lib/netutils.rb +1 -1
- data/test/lib/platform_thread.rb +1 -1
- data/test/lib/selenium_extensions.rb +1 -1
- data/test/lib/stubio.rb +1 -1
- data/test/lib/webserver.rb +1 -1
- data/test/meta/darcs_repo_test.rb +1 -1
- data/test/meta/local_svn_test.rb +1 -1
- data/test/meta/platform_thread_test.rb +1 -1
- data/test/meta/stubio_test.rb +1 -1
- data/test/stubs/{url_generator.rb → wiki_link_handler.rb} +8 -4
- data/test/test_helper.rb +3 -1
- data/test/unit/array_extensions_test.rb +1 -1
- data/test/unit/cache_reporter_fetcher_test.rb +1 -1
- data/test/unit/cache_reporter_test.rb +1 -1
- data/test/unit/change_test.rb +1 -1
- data/test/unit/chdir_runner_test.rb +1 -1
- data/test/unit/chief_editor_test.rb +1 -1
- data/test/unit/darcs_connection_test.rb +1 -1
- data/test/unit/darcs_reporter_test.rb +4 -4
- data/test/unit/darcs_temp_repo_test.rb +1 -1
- data/test/unit/default_page_provider_test.rb +23 -13
- data/test/unit/diff_chunk_builder_test.rb +1 -1
- data/test/unit/page_test.rb +67 -4
- data/test/unit/reporter_driver_test.rb +1 -1
- data/test/unit/reporter_test.rb +1 -1
- data/test/unit/revision_test.rb +1 -1
- data/test/unit/runner_test.rb +1 -1
- data/test/unit/string_extensions_test.rb +15 -3
- data/test/unit/svn_connection_test.rb +1 -1
- data/test/unit/svn_reporter_interaction_test.rb +1 -1
- data/test/unit/svn_reporter_test.rb +1 -1
- data/test/unit/svn_settings_test.rb +1 -1
- data/test/unit/user_test.rb +1 -1
- data/test/unit/{wiki_url_generator_test.rb → wiki_link_handler_test.rb} +3 -3
- data/test/unit/wiki_renderer_test.rb +75 -20
- data/test/unit/wiki_reporter_test.rb +1 -1
- data/vendor/mediacloth-trunk/MIT-LICENSE +20 -0
- data/vendor/mediacloth-trunk/README +32 -0
- data/vendor/mediacloth-trunk/Rakefile +33 -0
- data/vendor/mediacloth-trunk/lib/mediacloth/mediawikiast.rb +122 -0
- data/vendor/mediacloth-trunk/lib/mediacloth/mediawikihtmlgenerator.rb +252 -0
- data/vendor/mediacloth-trunk/lib/mediacloth/mediawikilexer.rb +821 -0
- data/vendor/mediacloth-trunk/lib/mediacloth/mediawikilinkhandler.rb +68 -0
- data/vendor/mediacloth-trunk/lib/mediacloth/mediawikiparams.rb +33 -0
- data/vendor/mediacloth-trunk/lib/mediacloth/mediawikiparser.rb +1218 -0
- data/vendor/mediacloth-trunk/lib/mediacloth/mediawikiparser.y +493 -0
- data/vendor/mediacloth-trunk/lib/mediacloth/mediawikiwalker.rb +146 -0
- data/vendor/mediacloth-trunk/lib/mediacloth.rb +29 -0
- data/vendor/mediacloth-trunk/mediacloth.gemspec +24 -0
- data/vendor/mediacloth-trunk/mediacloth.kdevelop +117 -0
- data/vendor/mediacloth-trunk/setup.rb +1585 -0
- data/vendor/mediacloth-trunk/test/data/html1 +26 -0
- data/vendor/mediacloth-trunk/test/data/html10 +130 -0
- data/vendor/mediacloth-trunk/test/data/html11 +17 -0
- data/vendor/mediacloth-trunk/test/data/html12 +12 -0
- data/vendor/mediacloth-trunk/test/data/html13 +11 -0
- data/vendor/mediacloth-trunk/test/data/html2 +2 -0
- data/vendor/mediacloth-trunk/test/data/html3 +1 -0
- data/vendor/mediacloth-trunk/test/data/html4 +47 -0
- data/vendor/mediacloth-trunk/test/data/html5 +57 -0
- data/vendor/mediacloth-trunk/test/data/html6 +8 -0
- data/vendor/mediacloth-trunk/test/data/html7 +45 -0
- data/vendor/mediacloth-trunk/test/data/html8 +1 -0
- data/vendor/mediacloth-trunk/test/data/html9 +14 -0
- data/vendor/mediacloth-trunk/test/data/input1 +34 -0
- data/vendor/mediacloth-trunk/test/data/input10 +124 -0
- data/vendor/mediacloth-trunk/test/data/input11 +17 -0
- data/vendor/mediacloth-trunk/test/data/input12 +15 -0
- data/vendor/mediacloth-trunk/test/data/input13 +10 -0
- data/vendor/mediacloth-trunk/test/data/input2 +2 -0
- data/vendor/mediacloth-trunk/test/data/input3 +2 -0
- data/vendor/mediacloth-trunk/test/data/input4 +50 -0
- data/vendor/mediacloth-trunk/test/data/input5 +63 -0
- data/vendor/mediacloth-trunk/test/data/input6 +8 -0
- data/vendor/mediacloth-trunk/test/data/input7 +45 -0
- data/vendor/mediacloth-trunk/test/data/input8 +1 -0
- data/vendor/mediacloth-trunk/test/data/input9 +14 -0
- data/vendor/mediacloth-trunk/test/data/lex1 +26 -0
- data/vendor/mediacloth-trunk/test/data/lex10 +85 -0
- data/vendor/mediacloth-trunk/test/data/lex11 +17 -0
- data/vendor/mediacloth-trunk/test/data/lex12 +15 -0
- data/vendor/mediacloth-trunk/test/data/lex13 +3 -0
- data/vendor/mediacloth-trunk/test/data/lex2 +2 -0
- data/vendor/mediacloth-trunk/test/data/lex3 +1 -0
- data/vendor/mediacloth-trunk/test/data/lex4 +47 -0
- data/vendor/mediacloth-trunk/test/data/lex5 +57 -0
- data/vendor/mediacloth-trunk/test/data/lex6 +8 -0
- data/vendor/mediacloth-trunk/test/data/lex7 +45 -0
- data/vendor/mediacloth-trunk/test/data/lex8 +1 -0
- data/vendor/mediacloth-trunk/test/data/lex9 +14 -0
- data/vendor/mediacloth-trunk/test/data/result1 +48 -0
- data/vendor/mediacloth-trunk/test/dataproducers/html.rb +18 -0
- data/vendor/mediacloth-trunk/test/dataproducers/lex.rb +15 -0
- data/vendor/mediacloth-trunk/test/debugwalker.rb +68 -0
- data/vendor/mediacloth-trunk/test/htmlgenerator.rb +97 -0
- data/vendor/mediacloth-trunk/test/lexer.rb +542 -0
- data/vendor/mediacloth-trunk/test/linkhandler.rb +39 -0
- data/vendor/mediacloth-trunk/test/parser.rb +22 -0
- data/vendor/mediacloth-trunk/test/testhelper.rb +27 -0
- data/vendor/mediacloth.rb +3 -0
- data/vendor/motiro-installer.rb +1 -1
- data/vendor/plugins/cache_test-0.2/CHANGELOG +14 -0
- data/vendor/plugins/cache_test-0.2/MIT-LICENSE +20 -0
- data/vendor/plugins/cache_test-0.2/README +124 -0
- data/vendor/plugins/cache_test-0.2/init.rb +8 -0
- data/vendor/plugins/cache_test-0.2/lib/fragment_cache_test.rb +205 -0
- data/vendor/plugins/cache_test-0.2/lib/page_cache_test.rb +140 -0
- data/vendor/plugins/global_routing/init.rb +1 -1
- metadata +517 -455
data/test/fixtures/pages.yml
CHANGED
@@ -28,7 +28,7 @@ list_last_modified_features_page:
|
|
28
28
|
id: 7
|
29
29
|
kind: feature
|
30
30
|
name: ListLastModifiedFeatures
|
31
|
-
modified_at:
|
31
|
+
modified_at: 2007-08-13 00:02:48
|
32
32
|
|
33
33
|
provide_rss_feed_for_last_modified_pages_page:
|
34
34
|
id: 8
|
@@ -61,3 +61,22 @@ multilanguage_page:
|
|
61
61
|
name: MultiLanguagePage
|
62
62
|
kind: feature
|
63
63
|
modified_at: 2007-06-14 12:06:38
|
64
|
+
|
65
|
+
finished_feature:
|
66
|
+
id: 13
|
67
|
+
name: FinishedFeature
|
68
|
+
kind: feature
|
69
|
+
modified_at: 2007-09-02 10:31:16
|
70
|
+
|
71
|
+
refering_page:
|
72
|
+
id: 14
|
73
|
+
name: ReferingPage
|
74
|
+
kind: common
|
75
|
+
modified_at: 2008-01-22 05:10:24
|
76
|
+
|
77
|
+
dependent_feature:
|
78
|
+
id: 15
|
79
|
+
name: DependentFeature
|
80
|
+
kind: feature
|
81
|
+
modified_at: 2020-02-22 15:57:37
|
82
|
+
|
data/test/fixtures/revisions.yml
CHANGED
@@ -71,9 +71,11 @@ non_matching_title_page_creation:
|
|
71
71
|
list_last_modified_features_page_creation:
|
72
72
|
id: 9
|
73
73
|
page_id: 7
|
74
|
+
position: 1
|
74
75
|
kind: feature
|
75
76
|
last_editor_id: 1000001
|
76
|
-
modified_at:
|
77
|
+
modified_at: 2007-08-13 00:02:48
|
78
|
+
done: f
|
77
79
|
editors: ""
|
78
80
|
title: List last modified features
|
79
81
|
text: Motiro should list the last modified feature suggestion pages on the
|
@@ -182,3 +184,40 @@ second_page_edition:
|
|
182
184
|
title: This page has been edited since creation
|
183
185
|
text: Eric changed the text that John entered. Twice.
|
184
186
|
position: 3
|
187
|
+
|
188
|
+
finished_feature_creation:
|
189
|
+
id: 18
|
190
|
+
page_id: 13
|
191
|
+
position: 1
|
192
|
+
kind: feature
|
193
|
+
modified_at: 2007-09-02 10:31:16
|
194
|
+
last_editor_id: 1000005
|
195
|
+
editors: ""
|
196
|
+
title: Finished feature
|
197
|
+
text: Do something!
|
198
|
+
done: t
|
199
|
+
|
200
|
+
refering_page_creation:
|
201
|
+
id: 19
|
202
|
+
page_id: 14
|
203
|
+
kind: common
|
204
|
+
modified_at: 2008-01-22 05:10:24
|
205
|
+
last_editor_id: 1000005 #eric
|
206
|
+
editors: ""
|
207
|
+
title: Refering page
|
208
|
+
text: This pages refers to the [[ListLastModifiedFeatures]] page
|
209
|
+
position: 1
|
210
|
+
|
211
|
+
dependent_feature_creation:
|
212
|
+
id: 20
|
213
|
+
page_id: 15
|
214
|
+
position: 1
|
215
|
+
kind: feature
|
216
|
+
last_editor_id: 1000001
|
217
|
+
modified_at: 2020-02-22 15:57:37
|
218
|
+
done: f
|
219
|
+
editors: ""
|
220
|
+
title: Dependent feature
|
221
|
+
text: This features requires the completion of [[ListLastModifiedFeatures]]
|
222
|
+
and [[FinishedFeature]]
|
223
|
+
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Motiro - A project tracking tool
|
2
|
-
# Copyright (C) 2006-
|
2
|
+
# Copyright (C) 2006-2008 Thiago Arrais
|
3
3
|
#
|
4
4
|
# This program is free software; you can redistribute it and/or modify
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
@@ -35,6 +35,13 @@ class ReportFeaturesTest < Test::Unit::TestCase
|
|
35
35
|
get :list, :reporter => 'features', :locale => 'en', :format => 'xml'
|
36
36
|
assert_xml_element "//link[text() = 'http://test.host/wiki/show/ListLastModifiedFeatures']"
|
37
37
|
end
|
38
|
+
|
39
|
+
def test_feed_item_text_links_to_other_wiki_pages
|
40
|
+
get :list, :reporter => 'features', :locale => 'en', :format => 'xml'
|
41
|
+
assert_xml_element '//description['+
|
42
|
+
'contains(text(),' +
|
43
|
+
"'<a href=\"http://test.host/wiki/show/ListLastModifiedFeatures\">ListLastModifiedFeatures</a>')]"
|
44
|
+
end
|
38
45
|
|
39
46
|
def test_shows_title_for_second_language
|
40
47
|
get :older, :reporter => 'features', :locale => 'pt-br'
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Motiro - A project tracking tool
|
2
|
-
# Copyright (C) 2006-
|
2
|
+
# Copyright (C) 2006-2008 Thiago Arrais
|
3
3
|
#
|
4
4
|
# This program is free software; you can redistribute it and/or modify
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
@@ -26,7 +26,7 @@ class WikiControllerTest < Test::Unit::TestCase
|
|
26
26
|
|
27
27
|
include TestConfiguration
|
28
28
|
|
29
|
-
fixtures :users, :pages, :revisions
|
29
|
+
fixtures :users, :pages, :revisions, :wiki_references
|
30
30
|
|
31
31
|
def setup
|
32
32
|
@controller = WikiController.new
|
@@ -429,6 +429,71 @@ end
|
|
429
429
|
assert_tag :a, :content => 'View rendered diff'
|
430
430
|
assert_tag :a, :content => 'View revision 2'
|
431
431
|
end
|
432
|
+
|
433
|
+
def test_allows_feature_status_update
|
434
|
+
ActionController::Base.perform_caching = false
|
435
|
+
page = pages('list_last_modified_features_page')
|
436
|
+
log_as :bob
|
437
|
+
|
438
|
+
get :show, :page_name => page.name
|
439
|
+
assert_tag :content => /This feature is not done/
|
440
|
+
|
441
|
+
get :edit, :page_name => page.name
|
442
|
+
assert_tag :content => /This feature is done/
|
443
|
+
assert_tag :input, :attributes => {:type => 'checkbox'}
|
444
|
+
|
445
|
+
post :save, :page_name => page.name,
|
446
|
+
:btnSave => true,
|
447
|
+
:page => { :title => 'List last modified features',
|
448
|
+
:text => 'We should really have this',
|
449
|
+
:done => '1',
|
450
|
+
:kind => 'feature', :editors => '' }
|
451
|
+
log_out
|
452
|
+
|
453
|
+
get :show, :page_name => page.name
|
454
|
+
assert_no_tag :content => /This feature is not done/
|
455
|
+
assert_tag :content => /This feature is done/
|
456
|
+
end
|
457
|
+
|
458
|
+
def test_expires_refering_pages_cache_when_finishing_feature
|
459
|
+
ActionController::Base.perform_caching = true
|
460
|
+
log_as :bob
|
461
|
+
|
462
|
+
refering_page = pages('refering_page')
|
463
|
+
|
464
|
+
assert_expire_fragments(:controller=> 'wiki', :action => 'show',
|
465
|
+
:page => refering_page.name,
|
466
|
+
:locale_suffix => 'en-us') do
|
467
|
+
post :save, :page_name => pages('list_last_modified_features_page').name,
|
468
|
+
:btnSave => true,
|
469
|
+
:page => { :title => 'List last modified features',
|
470
|
+
:text => 'We should really have this',
|
471
|
+
:done => '1',
|
472
|
+
:kind => 'feature', :editors => '' }
|
473
|
+
end
|
474
|
+
end
|
475
|
+
|
476
|
+
def test_does_not_expire_refering_pages_cache_after_editing_page_text_only
|
477
|
+
ActionController::Base.perform_caching = true
|
478
|
+
log_as :bob
|
479
|
+
|
480
|
+
begin
|
481
|
+
assert_expire_fragments(:controller=> 'wiki', :action => 'show',
|
482
|
+
:page => pages('refering_page').name,
|
483
|
+
:locale_suffix => 'en-us') do
|
484
|
+
post :save, :page_name => pages('list_last_modified_features_page').name,
|
485
|
+
:btnSave => true,
|
486
|
+
:page => { :title => 'List last modified features',
|
487
|
+
:text => 'We should really have this and that',
|
488
|
+
:done => '0',
|
489
|
+
:kind => 'feature', :editors => '' }
|
490
|
+
end
|
491
|
+
rescue Test::Unit::AssertionFailedError
|
492
|
+
return nil # error expected
|
493
|
+
end
|
494
|
+
|
495
|
+
assert false, "Refering page expired after text-only edition"
|
496
|
+
end
|
432
497
|
|
433
498
|
private
|
434
499
|
|
data/test/lib/darcs_excerpts.rb
CHANGED
data/test/lib/darcs_repo.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
# Motiro - A project tracking tool
|
2
|
+
# Copyright (C) 2006-2008 Thiago Arrais
|
3
|
+
#
|
4
|
+
# This program is free software; you can redistribute it and/or modify
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
6
|
+
# the Free Software Foundation; either version 2 of the License, or
|
7
|
+
# 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 St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
|
18
|
+
class Hash
|
19
|
+
def to_att
|
20
|
+
entries.map { |k, v| "#{k.to_s}=\"#{v}\""}.join(' ')
|
21
|
+
end
|
22
|
+
end
|
data/test/lib/live_mode_test.rb
CHANGED
data/test/lib/netutils.rb
CHANGED
data/test/lib/platform_thread.rb
CHANGED
data/test/lib/stubio.rb
CHANGED
data/test/lib/webserver.rb
CHANGED
data/test/meta/local_svn_test.rb
CHANGED
data/test/meta/stubio_test.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Motiro - A project tracking tool
|
2
|
-
# Copyright (C) 2006-
|
2
|
+
# Copyright (C) 2006-2008 Thiago Arrais
|
3
3
|
#
|
4
4
|
# This program is free software; you can redistribute it and/or modify
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
@@ -15,10 +15,14 @@
|
|
15
15
|
# along with this program; if not, write to the Free Software
|
16
16
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
17
|
|
18
|
-
class
|
18
|
+
class TestingWikiLinkHandler < WikiLinkHandler
|
19
19
|
|
20
|
-
def
|
20
|
+
def initialize
|
21
|
+
super(nil)
|
22
|
+
end
|
23
|
+
|
24
|
+
def url_for(page_name)
|
21
25
|
"http://test.host/wiki/show/#{page_name}"
|
22
26
|
end
|
23
27
|
|
24
|
-
end
|
28
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Motiro - A project tracking tool
|
2
|
-
# Copyright (C) 2006-
|
2
|
+
# Copyright (C) 2006-2008 Thiago Arrais
|
3
3
|
#
|
4
4
|
# This program is free software; you can redistribute it and/or modify
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
@@ -24,6 +24,8 @@ $:.push File.expand_path(File.dirname(__FILE__) + '/../app')
|
|
24
24
|
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
25
25
|
require 'test_help'
|
26
26
|
|
27
|
+
require 'hash_extensions'
|
28
|
+
|
27
29
|
require 'rubygems'
|
28
30
|
require 'flexmock'
|
29
31
|
|
data/test/unit/change_test.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Motiro - A project tracking tool
|
2
|
-
# Copyright (C) 2006-
|
2
|
+
# Copyright (C) 2006-2008 Thiago Arrais
|
3
3
|
#
|
4
4
|
# This program is free software; you can redistribute it and/or modify
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
@@ -117,7 +117,7 @@ class DarcsReporterTest < Test::Unit::TestCase
|
|
117
117
|
|
118
118
|
assert change.diff.match(/\A@@ -56,18 \+56,36 @@$/)
|
119
119
|
assert change.diff.match(/^- public void widgetDefaultSelected\(SelectionEvent e\) \{\}\n\+ public void widgetDefaultSelected\(SelectionEvent e\) \{/)
|
120
|
-
assert change.diff.match(/@Override\n\n
|
120
|
+
assert change.diff.match(/@Override\n\n/)
|
121
121
|
end
|
122
122
|
|
123
123
|
def test_reads_more_resource_names_and_diffs
|
@@ -135,11 +135,11 @@ class DarcsReporterTest < Test::Unit::TestCase
|
|
135
135
|
|
136
136
|
assert changes[0].diff.match(/\A@@ -1,3 \+1,14 @@$/)
|
137
137
|
assert changes[0].diff.match(/^\+\tpublic void removeOutput\(Writer out\) \{$/)
|
138
|
-
assert changes[0].diff.match(/^\+\n \}\n
|
138
|
+
assert changes[0].diff.match(/^\+\n \}\n/)
|
139
139
|
|
140
140
|
assert changes[1].diff.match(/@@ -76,6 \+76,17 @@/)
|
141
141
|
assert changes[1].diff.match(/^\+\t\tmultiplexer.addOutput\(output\);/)
|
142
|
-
assert changes[1].diff.match(/Writer multiplexer = new MultiplexedWriter\(outputs\);\n\n
|
142
|
+
assert changes[1].diff.match(/Writer multiplexer = new MultiplexedWriter\(outputs\);\n\n/)
|
143
143
|
|
144
144
|
end
|
145
145
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Motiro - A project tracking tool
|
2
|
-
# Copyright (C) 2006-
|
2
|
+
# Copyright (C) 2006-2008 Thiago Arrais
|
3
3
|
#
|
4
4
|
# This program is free software; you can redistribute it and/or modify
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
@@ -19,19 +19,29 @@ require File.dirname(__FILE__) + '/../test_helper'
|
|
19
19
|
|
20
20
|
class DefaultPageProviderTest < Test::Unit::TestCase
|
21
21
|
|
22
|
-
def
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
22
|
+
def test_delegates_retrieval_to_decorated_provider
|
23
|
+
FlexMock.use('provider') do |provider|
|
24
|
+
provider.should_receive(:find_by_name).
|
25
|
+
with('MainPage').
|
26
|
+
returns(:page).
|
27
|
+
once
|
28
|
+
|
29
|
+
assert_equal :page,
|
30
|
+
DefaultPageProvider.new(provider).find_by_name('MainPage')
|
31
|
+
end
|
29
32
|
end
|
30
33
|
|
31
|
-
def
|
32
|
-
|
33
|
-
|
34
|
-
|
34
|
+
def test_provides_an_empty_page_when_decorated_provider_cant_find_one
|
35
|
+
FlexMock.use('provider') do |provider|
|
36
|
+
provider.should_receive(:find_by_name).
|
37
|
+
with('RandomPage').
|
38
|
+
returns(nil).
|
39
|
+
once
|
40
|
+
|
41
|
+
page = DefaultPageProvider.new(provider).find_by_name('RandomPage')
|
42
|
+
assert page.text.match(/nothing to be read here/)
|
43
|
+
assert page.text.match(/But you can write something right now/)
|
44
|
+
end
|
35
45
|
end
|
36
46
|
|
37
|
-
end
|
47
|
+
end
|
data/test/unit/page_test.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Motiro - A project tracking tool
|
2
|
-
# Copyright (C) 2006-
|
2
|
+
# Copyright (C) 2006-2008 Thiago Arrais
|
3
3
|
#
|
4
4
|
# This program is free software; you can redistribute it and/or modify
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
@@ -20,6 +20,10 @@ require File.dirname(__FILE__) + '/../test_helper'
|
|
20
20
|
class PageTest < Test::Unit::TestCase
|
21
21
|
fixtures :pages, :revisions, :users
|
22
22
|
|
23
|
+
def teardown
|
24
|
+
WikiReference.delete_all
|
25
|
+
end
|
26
|
+
|
23
27
|
def test_is_open_to_all
|
24
28
|
attrs = { :text => 'Page text' }
|
25
29
|
assert !revise_named_page(attrs.merge(:editors => 'john')).is_open_to_all?
|
@@ -80,11 +84,11 @@ class PageTest < Test::Unit::TestCase
|
|
80
84
|
end
|
81
85
|
|
82
86
|
def test_resolves_clashing_page_names
|
83
|
-
fst_page = revise_brand_new_page(:title => 'My first Motiro page', :text => '')
|
87
|
+
fst_page = revise_brand_new_page(:title => 'My first Motiro page', :text => 'aaa')
|
84
88
|
assert_equal 'MyFirstMotiroPage', fst_page.name
|
85
89
|
fst_page.save
|
86
90
|
|
87
|
-
snd_page = revise_brand_new_page(:title => 'My first Motiro page', :text => '')
|
91
|
+
snd_page = revise_brand_new_page(:title => 'My first Motiro page', :text => 'aaa')
|
88
92
|
assert_equal 'MyFirstMotiroPage2', snd_page.name
|
89
93
|
snd_page.save
|
90
94
|
|
@@ -243,6 +247,15 @@ class PageTest < Test::Unit::TestCase
|
|
243
247
|
assert_equal old_time, event.revisions.first.happens_at
|
244
248
|
end
|
245
249
|
|
250
|
+
def test_stores_feature_status_revisions
|
251
|
+
feature = pages('list_last_modified_features_page')
|
252
|
+
feature.revise(bob, now, :done => 1)
|
253
|
+
|
254
|
+
assert feature.done?
|
255
|
+
assert feature.revisions.last.done?
|
256
|
+
assert !feature.revisions.first.done?
|
257
|
+
end
|
258
|
+
|
246
259
|
def test_rbab
|
247
260
|
date = Date.new(2007, 4, 4)
|
248
261
|
page = revise_brand_new_page(:kind => 'event',
|
@@ -322,7 +335,57 @@ class PageTest < Test::Unit::TestCase
|
|
322
335
|
assert_equal DEFAULT_AUTHOR, headline.author
|
323
336
|
assert_equal DEFAULT_TIME, headline.happened_at
|
324
337
|
end
|
325
|
-
|
338
|
+
|
339
|
+
def test_records_wiki_references
|
340
|
+
page = revise_brand_new_page(:title => 'Usual page',
|
341
|
+
:kind => 'common',
|
342
|
+
:text => "This is page has a link to the\n" +
|
343
|
+
"[[MainPage|main page]] and to\n" +
|
344
|
+
"the [[TestPage|test page]]")
|
345
|
+
assert_equal 2, page.references.size
|
346
|
+
assert_equal 2, page.refered_pages.size
|
347
|
+
|
348
|
+
main_page, test_page = pages('main_page'), pages('test_page')
|
349
|
+
|
350
|
+
assert_equal page, page.references.first.referer
|
351
|
+
assert_equal main_page, page.references.first.referee
|
352
|
+
assert_equal test_page, page.refered_pages.last
|
353
|
+
assert_equal page, main_page.referrals.first.referer
|
354
|
+
assert_equal page, test_page.refering_pages.first
|
355
|
+
end
|
356
|
+
|
357
|
+
def test_rebuilds_references_with_new_revision
|
358
|
+
main_page, test_page = pages('main_page'), pages('test_page')
|
359
|
+
page = revise_brand_new_page(:title => 'Usual page',
|
360
|
+
:kind => 'common',
|
361
|
+
:text => "Here is a [[MainPage|reference]]")
|
362
|
+
|
363
|
+
assert_equal 1, page.refered_pages.size
|
364
|
+
assert_equal 1, main_page.refering_pages.size
|
365
|
+
|
366
|
+
page.revise(bob, now, :text => "Here is another [[TestPage|reference]]")
|
367
|
+
main_page = Page.find_by_name('MainPage')
|
368
|
+
|
369
|
+
assert_equal 1, page.refered_pages.size
|
370
|
+
assert_equal 0, main_page.refering_pages.size
|
371
|
+
assert_equal 1, test_page.refering_pages.size
|
372
|
+
assert_equal test_page, page.references.first.referee
|
373
|
+
assert_equal test_page, page.refered_pages.first
|
374
|
+
end
|
375
|
+
|
376
|
+
def test_referencing_an_empty_page_creates_it
|
377
|
+
page = revise_brand_new_page(:title => 'Referencing page',
|
378
|
+
:kind => 'common',
|
379
|
+
:text => "You should go [[ReferedPage|there]]")
|
380
|
+
|
381
|
+
refered_page = Page.find_by_name('ReferedPage')
|
382
|
+
|
383
|
+
assert_not_nil refered_page
|
384
|
+
assert_equal 1, refered_page.referrals.size
|
385
|
+
assert_equal page, refered_page.refering_pages.first
|
386
|
+
assert_equal WIKI_NOT_FOUND_TEXT, refered_page.text
|
387
|
+
end
|
388
|
+
|
326
389
|
private
|
327
390
|
|
328
391
|
def create_page_with_one_revision
|