motiro 0.6.8 → 0.6.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|