motiro 0.6.3
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/LICENSE +280 -0
- data/README +28 -0
- data/README.en +175 -0
- data/README.pt-br +175 -0
- data/Rakefile +10 -0
- data/app/controllers/account_controller.rb +62 -0
- data/app/controllers/application.rb +72 -0
- data/app/controllers/edition_controller.rb +13 -0
- data/app/controllers/javascript_controller.rb +21 -0
- data/app/controllers/report_controller.rb +79 -0
- data/app/controllers/root_controller.rb +7 -0
- data/app/controllers/wiki_controller.rb +102 -0
- data/app/core/cache_reporter.rb +53 -0
- data/app/core/cache_reporter_fetcher.rb +33 -0
- data/app/core/chief_editor.rb +69 -0
- data/app/core/reporter.rb +105 -0
- data/app/core/reporter_driver.rb +36 -0
- data/app/core/reporter_fetcher.rb +39 -0
- data/app/core/settings.rb +43 -0
- data/app/core/version.rb +1 -0
- data/app/core/wiki_page_not_found.rb +33 -0
- data/app/core/wiki_reporter.rb +83 -0
- data/app/helpers/account_helper.rb +2 -0
- data/app/helpers/application_helper.rb +68 -0
- data/app/helpers/default_page_provider.rb +28 -0
- data/app/helpers/report_helper.rb +2 -0
- data/app/helpers/root_helper.rb +2 -0
- data/app/helpers/wiki_helper.rb +3 -0
- data/app/models/change.rb +96 -0
- data/app/models/diff_table_builder.rb +285 -0
- data/app/models/event.rb +18 -0
- data/app/models/headline.rb +109 -0
- data/app/models/page.rb +114 -0
- data/app/models/page_sweeper.rb +26 -0
- data/app/models/user.rb +85 -0
- data/app/ports/chdir_runner.rb +36 -0
- data/app/ports/reporter_loader.rb +9 -0
- data/app/ports/runner.rb +64 -0
- data/app/reporters/darcs_connection.rb +54 -0
- data/app/reporters/darcs_reporter.rb +104 -0
- data/app/reporters/darcs_settings.rb +9 -0
- data/app/reporters/darcs_temp_repo.rb +40 -0
- data/app/reporters/events_reporter.rb +28 -0
- data/app/reporters/features_reporter.rb +24 -0
- data/app/reporters/subversion_reporter.rb +203 -0
- data/app/reporters/svn_connection.rb +62 -0
- data/app/reporters/svn_settings.rb +40 -0
- data/app/views/account/_authorization.rhtml +54 -0
- data/app/views/account/_availability.rhtml +5 -0
- data/app/views/account/availability.rhtml +1 -0
- data/app/views/account/login.rhtml +22 -0
- data/app/views/account/logout.rhtml +10 -0
- data/app/views/javascript/motiro.rjs +132 -0
- data/app/views/javascript/niftycube.rjs +300 -0
- data/app/views/layouts/_bottom.rhtml +5 -0
- data/app/views/layouts/_header.rhtml +7 -0
- data/app/views/layouts/_top.rhtml +25 -0
- data/app/views/layouts/application.rhtml +3 -0
- data/app/views/layouts/scaffold.rhtml +13 -0
- data/app/views/layouts/wiki_edit.rhtml +26 -0
- data/app/views/report/list.rhtml +32 -0
- data/app/views/report/older.rhtml +26 -0
- data/app/views/report/rss.rxml +29 -0
- data/app/views/report/show.rhtml +20 -0
- data/app/views/root/index.rhtml +33 -0
- data/app/views/wiki/_editbar.rhtml +26 -0
- data/app/views/wiki/_properties_edit.rhtml +5 -0
- data/app/views/wiki/_properties_show.rhtml +5 -0
- data/app/views/wiki/edit.rhtml +56 -0
- data/app/views/wiki/properties_edit.rhtml +1 -0
- data/app/views/wiki/show.rhtml +9 -0
- data/bin/motiro +44 -0
- data/config/boot.rb +19 -0
- data/config/database.yml +14 -0
- data/config/environment.rb +64 -0
- data/config/environments/development.rb +20 -0
- data/config/environments/production.rb +19 -0
- data/config/environments/test.rb +19 -0
- data/config/motiro.yml +43 -0
- data/config/routes.rb +79 -0
- data/db/migrate/005_globalize_migration.rb +11363 -0
- data/db/migrate/006_remove_headline_title.rb +14 -0
- data/db/migrate/007_stretch_rid.rb +11 -0
- data/db/migrate/008_add_page_editors.rb +12 -0
- data/db/migrate/009_add_page_original_author.rb +12 -0
- data/db/migrate/010_remove_empty_string_defaults_from_pages.rb +17 -0
- data/db/migrate/011_add_title_and_kind_to_pages.rb +13 -0
- data/db/migrate/012_page_modification_info.rb +13 -0
- data/db/migrate/013_nullify_initial_page_attributes.rb +21 -0
- data/db/migrate/014_events_are_wiki_pages.rb +13 -0
- data/db/migrate/015_migrate_previous_event_data.rb +23 -0
- data/db/migrate/1_initial_structure.rb +36 -0
- data/db/migrate/2_add_authentication.rb +12 -0
- data/db/migrate/3_drop_articles.rb +26 -0
- data/db/migrate/4_add_page_editing.rb +14 -0
- data/db/motirodb.sqlite.initial +0 -0
- data/db/schema_version +1 -0
- data/db/translation/pt-BR.rb +76 -0
- data/doc/README_FOR_APP +2 -0
- data/installer/rails_installer_defaults.yml +5 -0
- data/lib/import_translations.rb +154 -0
- data/lib/login_system.rb +89 -0
- data/lib/relative_time.rb +48 -0
- data/lib/string_extensions.rb +10 -0
- data/lib/stub_hash.rb +22 -0
- data/lib/tasks/packaging.rake +93 -0
- data/lib/tasks/testing.rake +32 -0
- data/lib/tick_daemon.rb +41 -0
- data/lib/translator.rb +67 -0
- data/lib/wiki_renderer.rb +42 -0
- data/lib/wiki_url_generator.rb +29 -0
- data/log/.keepdir +0 -0
- data/public/404.html +8 -0
- data/public/500.html +8 -0
- data/public/dispatch.cgi +10 -0
- data/public/dispatch.fcgi +24 -0
- data/public/dispatch.rb +10 -0
- data/public/favicon.ico +0 -0
- data/public/images/calendar.png +0 -0
- data/public/images/rss.png +0 -0
- data/public/javascripts/controls.js +750 -0
- data/public/javascripts/dragdrop.js +584 -0
- data/public/javascripts/effects.js +854 -0
- data/public/javascripts/prototype.js +1785 -0
- data/public/robots.txt +1 -0
- data/public/stylesheets/motiro.css +269 -0
- data/public/stylesheets/niftyCorners.css +35 -0
- data/public/stylesheets/scaffold.css +74 -0
- data/script/about +3 -0
- data/script/breakpointer +3 -0
- data/script/console +3 -0
- data/script/destroy +3 -0
- data/script/generate +3 -0
- data/script/performance/benchmarker +3 -0
- data/script/performance/profiler +3 -0
- data/script/plugin +3 -0
- data/script/process/reaper +3 -0
- data/script/process/spawner +3 -0
- data/script/process/spinner +3 -0
- data/script/runner +3 -0
- data/script/server +3 -0
- data/script/ticker +29 -0
- data/test/acceptance/account_test.rb +186 -0
- data/test/acceptance/darcs_test.rb +62 -0
- data/test/acceptance/events_test.rb +47 -0
- data/test/acceptance/main_page_test.rb +92 -0
- data/test/acceptance/subversion_test.rb +319 -0
- data/test/acceptance/ts_all_suites.rb +27 -0
- data/test/acceptance/wiki_test.rb +202 -0
- data/test/contract/darcs_test.rb +51 -0
- data/test/contract/remote_darcs_test.rb +61 -0
- data/test/contract/svn_test.rb +53 -0
- data/test/fixtures/changes.yml +25 -0
- data/test/fixtures/headlines.yml +45 -0
- data/test/fixtures/pages.yml +98 -0
- data/test/fixtures/users.yml +31 -0
- data/test/functional/account_controller_test.rb +96 -0
- data/test/functional/report_controller_test.rb +113 -0
- data/test/functional/report_features_test.rb +38 -0
- data/test/functional/report_subversion_test.rb +79 -0
- data/test/functional/root_controller_test.rb +127 -0
- data/test/functional/wiki_controller_test.rb +280 -0
- data/test/lib/acceptance_test_case.rb +43 -0
- data/test/lib/configuration.rb +53 -0
- data/test/lib/darcs_excerpts.rb +181 -0
- data/test/lib/darcs_repo.rb +77 -0
- data/test/lib/live_mode_test.rb +51 -0
- data/test/lib/local_svn.rb +157 -0
- data/test/lib/netutils.rb +42 -0
- data/test/lib/platform_thread.rb +62 -0
- data/test/lib/repoutils.rb +23 -0
- data/test/lib/selenium_extensions.rb +32 -0
- data/test/lib/stubio.rb +37 -0
- data/test/lib/svn_excerpts.rb +288 -0
- data/test/lib/test_configuration.rb +14 -0
- data/test/lib/webserver.rb +71 -0
- data/test/meta/configuration_test.rb +72 -0
- data/test/meta/darcs_repo_test.rb +118 -0
- data/test/meta/local_svn_test.rb +125 -0
- data/test/meta/platform_thread_test.rb +46 -0
- data/test/meta/stubio_test.rb +44 -0
- data/test/mocks/headline.rb +34 -0
- data/test/mocks/svn_reporter.rb +29 -0
- data/test/stubs/svn_settings.rb +19 -0
- data/test/stubs/url_generator.rb +24 -0
- data/test/test_helper.rb +36 -0
- data/test/unit/cache_reporter_fetcher_test.rb +46 -0
- data/test/unit/cache_reporter_test.rb +97 -0
- data/test/unit/caching_test.rb +78 -0
- data/test/unit/change_test.rb +152 -0
- data/test/unit/chdir_runner_test.rb +77 -0
- data/test/unit/chief_editor_test.rb +234 -0
- data/test/unit/darcs_connection_test.rb +109 -0
- data/test/unit/darcs_reporter_test.rb +146 -0
- data/test/unit/darcs_settings_test.rb +37 -0
- data/test/unit/darcs_temp_repo_test.rb +51 -0
- data/test/unit/default_page_provider_test.rb +46 -0
- data/test/unit/diff_table_builder_test.rb +602 -0
- data/test/unit/headline_test.rb +259 -0
- data/test/unit/page_test.rb +145 -0
- data/test/unit/relative_time_test.rb +56 -0
- data/test/unit/reporter_driver_test.rb +85 -0
- data/test/unit/reporter_fetcher_test.rb +31 -0
- data/test/unit/reporter_test.rb +81 -0
- data/test/unit/runner_test.rb +93 -0
- data/test/unit/settings_test.rb +55 -0
- data/test/unit/string_extensions_test.rb +10 -0
- data/test/unit/svn_connection_test.rb +183 -0
- data/test/unit/svn_reporter_interaction_test.rb +38 -0
- data/test/unit/svn_reporter_test.rb +286 -0
- data/test/unit/svn_settings_test.rb +86 -0
- data/test/unit/translator_test.rb +96 -0
- data/test/unit/user_test.rb +125 -0
- data/test/unit/wiki_renderer_test.rb +87 -0
- data/test/unit/wiki_reporter_test.rb +94 -0
- data/test/unit/wiki_url_generator_test.rb +31 -0
- data/vendor/motiro-installer.rb +159 -0
- data/vendor/plugins/globalize/LICENSE +9 -0
- data/vendor/plugins/globalize/README +49 -0
- data/vendor/plugins/globalize/data/country_data.csv +240 -0
- data/vendor/plugins/globalize/data/language_data.csv +188 -0
- data/vendor/plugins/globalize/data/translation_data.csv +3421 -0
- data/vendor/plugins/globalize/generators/globalize/USAGE +10 -0
- data/vendor/plugins/globalize/generators/globalize/globalize_generator.rb +42 -0
- data/vendor/plugins/globalize/generators/globalize/templates/migration.rb.gz +0 -0
- data/vendor/plugins/globalize/generators/globalize/templates/tiny_migration.rb.gz +0 -0
- data/vendor/plugins/globalize/init.rb +30 -0
- data/vendor/plugins/globalize/lib/globalize/localization/core_ext.rb +170 -0
- data/vendor/plugins/globalize/lib/globalize/localization/core_ext_hooks.rb +33 -0
- data/vendor/plugins/globalize/lib/globalize/localization/db_translate.rb +494 -0
- data/vendor/plugins/globalize/lib/globalize/localization/db_view_translator.rb +152 -0
- data/vendor/plugins/globalize/lib/globalize/localization/locale.rb +173 -0
- data/vendor/plugins/globalize/lib/globalize/localization/rfc_3066.rb +40 -0
- data/vendor/plugins/globalize/lib/globalize/models/country.rb +24 -0
- data/vendor/plugins/globalize/lib/globalize/models/currency.rb +188 -0
- data/vendor/plugins/globalize/lib/globalize/models/language.rb +84 -0
- data/vendor/plugins/globalize/lib/globalize/models/model_translation.rb +4 -0
- data/vendor/plugins/globalize/lib/globalize/models/translation.rb +9 -0
- data/vendor/plugins/globalize/lib/globalize/models/view_translation.rb +14 -0
- data/vendor/plugins/globalize/lib/globalize/rails/action_mailer.rb +125 -0
- data/vendor/plugins/globalize/lib/globalize/rails/action_view.rb +79 -0
- data/vendor/plugins/globalize/lib/globalize/rails/active_record.rb +129 -0
- data/vendor/plugins/globalize/lib/globalize/rails/active_record_helper.rb +33 -0
- data/vendor/plugins/globalize/populators/pop_dates.rb +81 -0
- data/vendor/plugins/globalize/populators/pop_migration.rb +18 -0
- data/vendor/plugins/globalize/populators/pop_pluralization.rb +26 -0
- data/vendor/plugins/globalize/populators/pop_seps.rb +32 -0
- data/vendor/plugins/globalize/tasks/data.rake +130 -0
- data/vendor/plugins/globalize/test/action_mailer_test/globalize_mailer/test.en-US.plain.text.rhtml +1 -0
- data/vendor/plugins/globalize/test/action_mailer_test/globalize_mailer/test.en.plain.text.rhtml +1 -0
- data/vendor/plugins/globalize/test/action_mailer_test/globalize_mailer/test.he.plain.text.rhtml +1 -0
- data/vendor/plugins/globalize/test/action_mailer_test/globalize_mailer/test.plain.text.rhtml +1 -0
- data/vendor/plugins/globalize/test/action_mailer_test.rb +54 -0
- data/vendor/plugins/globalize/test/config/database.yml.default +16 -0
- data/vendor/plugins/globalize/test/config/database.yml.example +22 -0
- data/vendor/plugins/globalize/test/core_ext_test.rb +61 -0
- data/vendor/plugins/globalize/test/currency_test.rb +141 -0
- data/vendor/plugins/globalize/test/date_helper_test.rb +634 -0
- data/vendor/plugins/globalize/test/db/schema.rb +90 -0
- data/vendor/plugins/globalize/test/db_translation_test.rb +374 -0
- data/vendor/plugins/globalize/test/fixtures/globalize_categories.yml +7 -0
- data/vendor/plugins/globalize/test/fixtures/globalize_categories_products.yml +7 -0
- data/vendor/plugins/globalize/test/fixtures/globalize_countries.yml +41 -0
- data/vendor/plugins/globalize/test/fixtures/globalize_languages.yml +64 -0
- data/vendor/plugins/globalize/test/fixtures/globalize_manufacturers.yml +5 -0
- data/vendor/plugins/globalize/test/fixtures/globalize_products.yml +29 -0
- data/vendor/plugins/globalize/test/fixtures/globalize_simples.yml +5 -0
- data/vendor/plugins/globalize/test/fixtures/globalize_translations.yml +354 -0
- data/vendor/plugins/globalize/test/locale_test.rb +27 -0
- data/vendor/plugins/globalize/test/mime_responds_test.rb +358 -0
- data/vendor/plugins/globalize/test/model_test.rb +17 -0
- data/vendor/plugins/globalize/test/standard_data_test_helper.rb +33 -0
- data/vendor/plugins/globalize/test/test_helper.rb +19 -0
- data/vendor/plugins/globalize/test/test_standard_data.rb +54 -0
- data/vendor/plugins/globalize/test/validation_test.rb +29 -0
- data/vendor/plugins/globalize/test/view_picking_test.rb +49 -0
- data/vendor/plugins/globalize/test/view_translation_test.rb +237 -0
- data/vendor/plugins/globalize/test/views/layouts/standard.rhtml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/all_types_with_layout.rhtml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/all_types_with_layout.rjs +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults.en.rhtml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults.en.rjs +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults.en.rxml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults.fr.rhtml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults.fr.rjs +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults.fr.rxml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults.rhtml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults.rjs +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults.rxml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults_with_type_list.en.rhtml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults_with_type_list.en.rjs +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults_with_type_list.en.rxml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults_with_type_list.fr.rhtml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults_with_type_list.fr.rjs +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults_with_type_list.fr.rxml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults_with_type_list.rhtml +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults_with_type_list.rjs +1 -0
- data/vendor/plugins/globalize/test/views/respond_to/using_defaults_with_type_list.rxml +1 -0
- data/vendor/plugins/globalize/test/views/test.he-IL.rhtml +1 -0
- data/vendor/plugins/globalize/test/views/test.rhtml +1 -0
- data/vendor/plugins/globalize/test/views/test2.he.rhtml +1 -0
- data/vendor/plugins/globalize/test/views/test2.rhtml +1 -0
- data/vendor/plugins/test_xml/MIT-LICENSE +20 -0
- data/vendor/plugins/test_xml/README +20 -0
- data/vendor/plugins/test_xml/Rakefile +22 -0
- data/vendor/plugins/test_xml/init.rb +7 -0
- data/vendor/plugins/test_xml/lib/xml_assertions.rb +22 -0
- data/vendor/plugins/test_xml/test/test_xml_test.rb +40 -0
- metadata +505 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Motiro - A project tracking tool
|
|
2
|
+
# Copyright (C) 2006-2007 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
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
19
|
+
|
|
20
|
+
require 'local_svn'
|
|
21
|
+
|
|
22
|
+
class LocalSubversionRepositoryTest < Test::Unit::TestCase
|
|
23
|
+
|
|
24
|
+
def setup
|
|
25
|
+
@repo = LocalSubversionRepository.new
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_readable_to_anonymous
|
|
29
|
+
assert_equal '', execute("svn ls #{@repo.url}") # no error message
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_create_and_destroy
|
|
33
|
+
@repo.destroy
|
|
34
|
+
|
|
35
|
+
assert '' != execute("svn ls #{@repo.url}") # some error message
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_make_remote_dir
|
|
39
|
+
@repo.mkdir('testdir', 'directory for tests created')
|
|
40
|
+
|
|
41
|
+
assert "testdir/\n" == execute("svn ls #{@repo.url}")
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_make_local_dir
|
|
45
|
+
@repo.mkdir('not_yet_commited_dir')
|
|
46
|
+
|
|
47
|
+
assert '' == execute("svn ls #{@repo.url}")
|
|
48
|
+
|
|
49
|
+
@repo.commit('created a new dir')
|
|
50
|
+
|
|
51
|
+
assert_equal "not_yet_commited_dir/\n", execute("svn ls #{@repo.url}")
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_add_file
|
|
55
|
+
@repo.add_file('local_file.txt', "the file is stored locally until\n" +
|
|
56
|
+
"I choose to commit it")
|
|
57
|
+
|
|
58
|
+
assert '' == execute("svn ls #{@repo.url}")
|
|
59
|
+
|
|
60
|
+
@repo.commit('added a file')
|
|
61
|
+
|
|
62
|
+
assert_equal "local_file.txt\n", execute("svn ls #{@repo.url}")
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def test_modify_file_with_put
|
|
66
|
+
@repo.put_file('local_file.txt', "this is line number 1\n" +
|
|
67
|
+
"this is line number 2\n")
|
|
68
|
+
|
|
69
|
+
assert '' == execute("svn ls #{@repo.url}")
|
|
70
|
+
|
|
71
|
+
@repo.commit('added a new file')
|
|
72
|
+
|
|
73
|
+
assert_equal "local_file.txt\n", execute("svn ls #{@repo.url}")
|
|
74
|
+
|
|
75
|
+
@repo.put_file('local_file.txt', "this is line number 1\n" +
|
|
76
|
+
"this is the new line number 2\n")
|
|
77
|
+
|
|
78
|
+
@repo.commit('added a new file')
|
|
79
|
+
|
|
80
|
+
regexp = Regexp.new("Index: local_file.txt\n" +
|
|
81
|
+
"===================================================================\n" +
|
|
82
|
+
"--- local_file.txt\t\\([^1]+1\\)\n" +
|
|
83
|
+
"\\+\\+\\+ local_file.txt\t\\([^2]+2\\)\n" +
|
|
84
|
+
"@@ -1,2 \\+1,2 @@\n" +
|
|
85
|
+
" this is line number 1\n" +
|
|
86
|
+
"-this is line number 2\n" +
|
|
87
|
+
"\\+this is the new line number 2")
|
|
88
|
+
|
|
89
|
+
assert_not_nil regexp.match(execute("svn diff -r1:2 #{@repo.url}"))
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def test_remote_copy
|
|
93
|
+
@repo.add_file('fileA.txt', 'contents')
|
|
94
|
+
@repo.commit('added file A')
|
|
95
|
+
|
|
96
|
+
@repo.copy('fileA.txt', 'fileB.txt', 'copied file A to B')
|
|
97
|
+
|
|
98
|
+
assert_equal "fileA.txt\nfileB.txt\n", execute("svn ls #{@repo.url}")
|
|
99
|
+
regexp = /A \/fileB.txt \(\w+ \/fileA.txt:1\)$/
|
|
100
|
+
assert_not_nil regexp.match(execute("svn log #{@repo.url} -vr2"))
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def test_remote_move
|
|
104
|
+
@repo.add_file('fileA.txt', 'contents')
|
|
105
|
+
@repo.commit('added file A')
|
|
106
|
+
|
|
107
|
+
@repo.move('fileA.txt', 'fileC.txt', 'moved file A to C')
|
|
108
|
+
|
|
109
|
+
assert_equal "fileC.txt\n", execute("svn ls #{@repo.url}")
|
|
110
|
+
regexp = /A \/fileC.txt \(\w+ \/fileA.txt:1\)$/
|
|
111
|
+
assert_not_nil regexp.match(execute("svn log #{@repo.url} -vr2"))
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def teardown
|
|
115
|
+
@repo.destroy
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
private
|
|
119
|
+
|
|
120
|
+
def execute(command_line)
|
|
121
|
+
pio = IO.popen("#{command_line} 2>&1")
|
|
122
|
+
return pio.read
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Motiro - A project tracking tool
|
|
2
|
+
# Copyright (C) 2006-2007 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
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
19
|
+
|
|
20
|
+
require 'platform_thread'
|
|
21
|
+
|
|
22
|
+
class PlatformThreadTest < Test::Unit::TestCase
|
|
23
|
+
|
|
24
|
+
def test_uses_win32_process_under_win32
|
|
25
|
+
FlexMock.use 'platform', 'process' do |platform, process|
|
|
26
|
+
platform.should_receive(:OS).and_return(:win32).zero_or_more_times
|
|
27
|
+
process.should_receive(:fork_win32_process).and_return(333).once
|
|
28
|
+
process.should_receive(:kill_win32_process).with(9, 333).once
|
|
29
|
+
|
|
30
|
+
thr = PlatformThread.new(platform, process) do; end
|
|
31
|
+
thr.kill
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_uses_threads_under_unix
|
|
36
|
+
FlexMock.use 'platform', 'process', 'thread' do |platform, process, thread|
|
|
37
|
+
platform.should_receive(:OS).and_return(:unix).zero_or_more_times
|
|
38
|
+
process.should_receive(:new_thread).and_return(thread).once
|
|
39
|
+
thread.should_receive(:kill).once
|
|
40
|
+
|
|
41
|
+
thr = PlatformThread.new(platform, process) do; end
|
|
42
|
+
thr.kill
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Motiro - A project tracking tool
|
|
2
|
+
# Copyright (C) 2006-2007 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
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
19
|
+
|
|
20
|
+
require 'stubio'
|
|
21
|
+
|
|
22
|
+
class StubIOTest < Test::Unit::TestCase
|
|
23
|
+
|
|
24
|
+
attr_accessor :stbio
|
|
25
|
+
|
|
26
|
+
def setup
|
|
27
|
+
@stbio = StubIO.new(initial_value)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_can_read_initial_value
|
|
31
|
+
assert_equal initial_value, stbio.read
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_read_initial_value_with_read_and_received_input_with_string
|
|
35
|
+
stbio << received_input
|
|
36
|
+
|
|
37
|
+
assert_equal initial_value, stbio.read
|
|
38
|
+
assert_equal received_input, stbio.string
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def initial_value; 'initial value'; end
|
|
42
|
+
def received_input; 'received input'; end
|
|
43
|
+
|
|
44
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
|
|
3
|
+
require 'models/headline'
|
|
4
|
+
|
|
5
|
+
class MockHeadline < Headline
|
|
6
|
+
|
|
7
|
+
include Test::Unit::Assertions
|
|
8
|
+
|
|
9
|
+
@@obj_count = 0
|
|
10
|
+
|
|
11
|
+
def initialize
|
|
12
|
+
super(:author => 'unknown',
|
|
13
|
+
:happened_at => [2006 + @@obj_count, 3, 8],
|
|
14
|
+
:description => 'untitled')
|
|
15
|
+
@expected_times_save_called = 0
|
|
16
|
+
@actual_times_save_called = 0
|
|
17
|
+
|
|
18
|
+
@@obj_count += 1
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def expect_save
|
|
22
|
+
@expected_times_save_called += 1
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def save
|
|
26
|
+
@actual_times_save_called += 1
|
|
27
|
+
super
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def verify
|
|
31
|
+
assert_equal @expected_times_save_called, @actual_times_save_called
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
|
|
3
|
+
require 'core/reporter'
|
|
4
|
+
|
|
5
|
+
class MockSubversionReporter < MotiroReporter
|
|
6
|
+
|
|
7
|
+
include Test::Unit::Assertions
|
|
8
|
+
|
|
9
|
+
def initialize
|
|
10
|
+
@actual_times_latest_headlines_called = 0
|
|
11
|
+
@expected_times_latest_headlines_called = 0
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def expect_latest_headlines(&action)
|
|
15
|
+
@action = action if block_given?
|
|
16
|
+
@expected_times_latest_headlines_called += 1
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def latest_headlines
|
|
20
|
+
@actual_times_latest_headlines_called += 1
|
|
21
|
+
@action.call
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def verify
|
|
25
|
+
assert_equal @expected_times_latest_headlines_called,
|
|
26
|
+
@actual_times_latest_headlines_called
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
class StubConnectionSettingsProvider
|
|
2
|
+
|
|
3
|
+
def initialize(params=Hash.new)
|
|
4
|
+
@confs = { :repo => 'http://svn.fake.domain.org/fake_repo',
|
|
5
|
+
:package_size => 5,
|
|
6
|
+
:update_interval => 10,
|
|
7
|
+
:active_reporter_ids => ['subversion'] }
|
|
8
|
+
@confs.update(params)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def repo_url
|
|
12
|
+
@confs[:repo]
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def method_missing(method_id)
|
|
16
|
+
@confs[method_id]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Motiro - A project tracking tool
|
|
2
|
+
# Copyright (C) 2006-2007 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 TestingUrlGenerator
|
|
19
|
+
|
|
20
|
+
def generate_url_for(page_name)
|
|
21
|
+
"http://test.host/wiki/show/#{page_name}"
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
data/test/test_helper.rb
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
ENV["RAILS_ENV"] = "test"
|
|
2
|
+
|
|
3
|
+
$:.push File.expand_path(File.dirname(__FILE__))
|
|
4
|
+
$:.push File.expand_path(File.dirname(__FILE__) + '/lib')
|
|
5
|
+
$:.push File.expand_path(File.dirname(__FILE__) + '/../app')
|
|
6
|
+
|
|
7
|
+
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
|
8
|
+
require 'test_help'
|
|
9
|
+
|
|
10
|
+
require 'rubygems'
|
|
11
|
+
require 'flexmock'
|
|
12
|
+
|
|
13
|
+
class Test::Unit::TestCase
|
|
14
|
+
# Transactional fixtures accelerate your tests by wrapping each test method
|
|
15
|
+
# in a transaction that's rolled back on completion. This ensures that the
|
|
16
|
+
# test database remains unchanged so your fixtures don't have to be reloaded
|
|
17
|
+
# between every test method. Fewer database queries means faster tests.
|
|
18
|
+
#
|
|
19
|
+
# Read Mike Clark's excellent walkthrough at
|
|
20
|
+
# http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
|
|
21
|
+
#
|
|
22
|
+
# Every Active Record database supports transactions except MyISAM tables
|
|
23
|
+
# in MySQL. Turn off transactional fixtures in this case; however, if you
|
|
24
|
+
# don't care one way or the other, switching from MyISAM to InnoDB tables
|
|
25
|
+
# is recommended.
|
|
26
|
+
self.use_transactional_fixtures = false
|
|
27
|
+
|
|
28
|
+
# Instantiated fixtures are slow, but give you @david where otherwise you
|
|
29
|
+
# would need people(:david). If you don't want to migrate your existing
|
|
30
|
+
# test cases which use the @david style and don't mind the speed hit (each
|
|
31
|
+
# instantiated fixtures translates to a database query per test method),
|
|
32
|
+
# then set this back to true.
|
|
33
|
+
self.use_instantiated_fixtures = false
|
|
34
|
+
|
|
35
|
+
# Add more helper methods to be used by all tests here...
|
|
36
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Motiro - A project tracking tool
|
|
2
|
+
# Copyright (C) 2006-2007 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
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
19
|
+
|
|
20
|
+
require 'stub_hash'
|
|
21
|
+
|
|
22
|
+
require 'core/cache_reporter_fetcher'
|
|
23
|
+
|
|
24
|
+
class CacheReporterFetcherTest < Test::Unit::TestCase
|
|
25
|
+
|
|
26
|
+
def test_fetched_reporters_are_cache_reporters
|
|
27
|
+
underlying_reporter = { :cache? => true, :name => 'mock_reporter'}
|
|
28
|
+
underlying_fetcher = {:active_reporters => [underlying_reporter] }
|
|
29
|
+
|
|
30
|
+
reporters = CacheReporterFetcher.new(underlying_fetcher).active_reporters
|
|
31
|
+
|
|
32
|
+
assert_equal 1, reporters.size
|
|
33
|
+
assert_equal CacheReporter, reporters.first.class
|
|
34
|
+
assert_equal 'mock_reporter', reporters.first.name
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_bypass_caching_for_reporters_who_dont_want_caching
|
|
38
|
+
underlying_reporter = { :cache? => false, :name => 'mock_reporter'}
|
|
39
|
+
underlying_fetcher = {:active_reporters => [underlying_reporter] }
|
|
40
|
+
|
|
41
|
+
reporters = CacheReporterFetcher.new(underlying_fetcher).active_reporters
|
|
42
|
+
|
|
43
|
+
assert_equal underlying_reporter, reporters.first
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Motiro - A project tracking tool
|
|
2
|
+
# Copyright (C) 2006-2007 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
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
19
|
+
|
|
20
|
+
require 'stub_hash'
|
|
21
|
+
require 'stubs/svn_settings'
|
|
22
|
+
require 'mocks/headline'
|
|
23
|
+
|
|
24
|
+
require 'core/cache_reporter'
|
|
25
|
+
|
|
26
|
+
class CacheReporterTest < Test::Unit::TestCase
|
|
27
|
+
|
|
28
|
+
def test_latest_headlines
|
|
29
|
+
FlexMock.use do |mock_headline_class|
|
|
30
|
+
settings = StubConnectionSettingsProvider.new(:package_size => 6)
|
|
31
|
+
underlying_reporter = {:name => 'mail_list' }
|
|
32
|
+
|
|
33
|
+
mock_headline_class.should_receive(:latest).
|
|
34
|
+
with(6, 'mail_list').
|
|
35
|
+
once
|
|
36
|
+
|
|
37
|
+
reporter = CacheReporter.new(underlying_reporter, settings, mock_headline_class)
|
|
38
|
+
reporter.latest_headlines
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_retrieve_all_headlines
|
|
43
|
+
FlexMock.use do |mock_headline_class|
|
|
44
|
+
settings = StubConnectionSettingsProvider.new(:package_size => 6)
|
|
45
|
+
underlying_reporter = {:name => 'mail_list'}
|
|
46
|
+
|
|
47
|
+
mock_headline_class.should_receive(:find).
|
|
48
|
+
with(:all, :conditions => ['reported_by = ?', 'mail_list'],
|
|
49
|
+
:order => 'happened_at DESC').
|
|
50
|
+
once
|
|
51
|
+
|
|
52
|
+
reporter = CacheReporter.new(underlying_reporter, settings, mock_headline_class)
|
|
53
|
+
reporter.headlines
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_headline
|
|
58
|
+
FlexMock.use do |mock_headline_class|
|
|
59
|
+
settings = StubConnectionSettingsProvider.new(:package_size => 6)
|
|
60
|
+
underlying_reporter = {:name => 'mail_list' }
|
|
61
|
+
|
|
62
|
+
mock_headline_class.should_receive(:find_with_reporter_and_rid).
|
|
63
|
+
with('mail_list', 'm18').
|
|
64
|
+
returns(MockHeadline.new).
|
|
65
|
+
once
|
|
66
|
+
|
|
67
|
+
reporter = CacheReporter.new(underlying_reporter, settings, mock_headline_class)
|
|
68
|
+
reporter.headline('m18')
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def test_mimics_underlying_reporter_name
|
|
73
|
+
svn_cache = CacheReporter.new({ :name => 'svn'})
|
|
74
|
+
darcs_cache = CacheReporter.new({ :name => 'darcs'})
|
|
75
|
+
|
|
76
|
+
assert_equal 'svn', svn_cache.name
|
|
77
|
+
assert_equal 'darcs', darcs_cache.name
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def test_mimics_underlying_reporter_title
|
|
81
|
+
title = 'My reporter title'
|
|
82
|
+
r = CacheReporter.new(:channel_title => title)
|
|
83
|
+
|
|
84
|
+
assert_equal title, r.channel_title
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def test_mimics_underlying_reporter_request_parameter_generation
|
|
88
|
+
FlexMock.use do |reporter|
|
|
89
|
+
reporter.should_receive(:params_for).with('reporter_id').once.
|
|
90
|
+
and_return({})
|
|
91
|
+
|
|
92
|
+
r = CacheReporter.new(reporter)
|
|
93
|
+
assert_equal({}, r.params_for('reporter_id'))
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
2
|
+
|
|
3
|
+
require 'local_svn'
|
|
4
|
+
require 'svn_excerpts'
|
|
5
|
+
|
|
6
|
+
require 'stubs/svn_settings'
|
|
7
|
+
|
|
8
|
+
require 'core/chief_editor'
|
|
9
|
+
require 'core/reporter_driver'
|
|
10
|
+
|
|
11
|
+
require 'reporters/subversion_reporter'
|
|
12
|
+
|
|
13
|
+
class CachingTest < Test::Unit::TestCase
|
|
14
|
+
|
|
15
|
+
def setup
|
|
16
|
+
clean_database
|
|
17
|
+
create_fixture_objects
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_recaches_failures
|
|
21
|
+
@connection.should_receive(:log).
|
|
22
|
+
with_any_args.
|
|
23
|
+
returns(R6 + "-------------\n")
|
|
24
|
+
|
|
25
|
+
diff = '' # simulate connection timeout
|
|
26
|
+
|
|
27
|
+
@connection.mock_handle(:diff) do
|
|
28
|
+
diff
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
@connection.should_receive(:info).
|
|
32
|
+
with('/trunk/src/test/stubs/svn_connection.rb', '6').
|
|
33
|
+
returns(R6C1INFO)
|
|
34
|
+
|
|
35
|
+
@connection.should_receive(:info).
|
|
36
|
+
with('/trunk/src/test/unit/headline_test.rb', '6').
|
|
37
|
+
returns(R6C2INFO)
|
|
38
|
+
|
|
39
|
+
@driver.tick
|
|
40
|
+
|
|
41
|
+
headlines = @chief_editor.latest_news_from(@reporter.name)
|
|
42
|
+
changes = headlines.first.changes
|
|
43
|
+
assert_nil changes.first.diff
|
|
44
|
+
|
|
45
|
+
diff = R6DIFF # connection is back
|
|
46
|
+
|
|
47
|
+
@driver.tick
|
|
48
|
+
|
|
49
|
+
headlines = @chief_editor.latest_news_from(@reporter.name)
|
|
50
|
+
changes = headlines.first.changes
|
|
51
|
+
assert_not_nil changes.first.diff
|
|
52
|
+
assert_equal R6C1DIFF, changes.first.diff
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def teardown
|
|
56
|
+
clean_database
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
private
|
|
60
|
+
|
|
61
|
+
def clean_database
|
|
62
|
+
Headline.delete_all
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def create_fixture_objects
|
|
66
|
+
@connection = FlexMock.new
|
|
67
|
+
settings = StubConnectionSettingsProvider.new(:update_interval => 12)
|
|
68
|
+
@reporter = SubversionReporter.new(@connection)
|
|
69
|
+
|
|
70
|
+
fetcher = FlexMock.new
|
|
71
|
+
fetcher.should_receive(:active_reporters).returns([@reporter])
|
|
72
|
+
|
|
73
|
+
@driver = ReporterDriver.new(fetcher)
|
|
74
|
+
|
|
75
|
+
@chief_editor = ChiefEditor.new(settings, fetcher)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
end
|