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,62 @@
|
|
|
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 'live_mode_test'
|
|
19
|
+
require 'darcs_repo'
|
|
20
|
+
|
|
21
|
+
class DarcsAcceptanceTest < SeleniumTestCase
|
|
22
|
+
|
|
23
|
+
include LiveModeTestCase
|
|
24
|
+
|
|
25
|
+
def create_repository; DarcsRepository.new; end
|
|
26
|
+
def repo_type; 'darcs'; end
|
|
27
|
+
|
|
28
|
+
def test_shows_comment_title_and_author_on_front_page
|
|
29
|
+
patch_name = 'Created first project file'
|
|
30
|
+
|
|
31
|
+
@repo.add_file('fileA.txt', 'this is file A')
|
|
32
|
+
@repo.record(patch_name)
|
|
33
|
+
|
|
34
|
+
open '/'
|
|
35
|
+
|
|
36
|
+
assert_text_present patch_name
|
|
37
|
+
assert_text_present @repo.author.match(/@/).pre_match
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_shows_full_text_on_details_page
|
|
41
|
+
patch_title = 'This is the patch title'
|
|
42
|
+
patch_text = patch_title + "\n\n" +
|
|
43
|
+
"This is a short description of some problems faced when " +
|
|
44
|
+
"making this patch and some pointers for future investigation"
|
|
45
|
+
|
|
46
|
+
@repo.add_file('fileB.txt', 'this is file B')
|
|
47
|
+
@repo.record(patch_text)
|
|
48
|
+
|
|
49
|
+
open '/'
|
|
50
|
+
|
|
51
|
+
assert_text_present patch_title
|
|
52
|
+
assert_text_not_present 'This is a short description'
|
|
53
|
+
|
|
54
|
+
click "//a[text() = '#{patch_title}']"
|
|
55
|
+
wait_for_page_to_load(2000)
|
|
56
|
+
|
|
57
|
+
assert_equal "Revision details - #{patch_title} (Motiro)", get_title
|
|
58
|
+
assert_text_present 'This is a short description of some problems faced'
|
|
59
|
+
assert_text_present 'for future investigation'
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
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 'live_mode_test'
|
|
19
|
+
|
|
20
|
+
class EventsAcceptanceTest < AcceptanceTestCase
|
|
21
|
+
|
|
22
|
+
fixtures :users, :headlines
|
|
23
|
+
|
|
24
|
+
def test_no_error_on_development_mode
|
|
25
|
+
open '/report/events?locale=en'
|
|
26
|
+
assert_text_present 'Scheduled events'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_event_addition_disabled_without_authentication
|
|
30
|
+
open('/en')
|
|
31
|
+
assert_element_present "//span[@class = 'disabled' and text() = 'Add']"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_edition_enabled_when_authenticated
|
|
35
|
+
#TODO refactor this to a declarative style
|
|
36
|
+
#see http://www.testing.com/cgi-bin/blog/2005/12/19
|
|
37
|
+
log_as(:bob)
|
|
38
|
+
|
|
39
|
+
assert_element_present "//div[@id='events']//a[text() = 'Add']"
|
|
40
|
+
|
|
41
|
+
click "//div[@id='events']//a[text() = 'Add']"
|
|
42
|
+
wait_for_page_to_load(1500)
|
|
43
|
+
|
|
44
|
+
assert_element_present "//select/option[text() = '2007']"
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
@@ -0,0 +1,92 @@
|
|
|
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 MainPageAcceptanceTest < SeleniumTestCase
|
|
19
|
+
|
|
20
|
+
fixtures :pages
|
|
21
|
+
|
|
22
|
+
def test_report_html
|
|
23
|
+
open '/report/subversion?locale=en'
|
|
24
|
+
assert_text_present 'Latest news from Subversion'
|
|
25
|
+
assert_element_present "//a[@href = '/feed/subversion/en']/img[starts-with(@src, '/images/rss.png')]"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_subversion_on_main
|
|
29
|
+
open('/en')
|
|
30
|
+
assert_element_present "//div[@id = 'subversion']"
|
|
31
|
+
assert get_text("//div[@id = 'subversion']").match(/Latest news from Subversion/)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_events_on_main
|
|
35
|
+
open('/en')
|
|
36
|
+
assert_element_present "//div[@id = 'events']"
|
|
37
|
+
assert get_text("//div[@id = 'events']").match(/Scheduled events/)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_planned_features_on_main
|
|
41
|
+
open('/en')
|
|
42
|
+
assert_element_present "//div[@id = 'nextrelease']"
|
|
43
|
+
assert get_text("//div[@id = 'nextrelease']").match(/Planned features/)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_shows_installation_sucessful_page_with_absent_main_page
|
|
47
|
+
Page.delete_all("name = 'MainPage'")
|
|
48
|
+
|
|
49
|
+
open('/en')
|
|
50
|
+
assert_text_present 'Congratulations! Motiro was installed correctly'
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_switches_languages_when_not_logged_in
|
|
54
|
+
Page.delete_all("name = 'MainPage'")
|
|
55
|
+
|
|
56
|
+
open('/')
|
|
57
|
+
click "//a[@id='pt-BR']"
|
|
58
|
+
wait_for_page_to_load(1000)
|
|
59
|
+
|
|
60
|
+
assert_equal "Motiro: Bem-vindo", get_title
|
|
61
|
+
assert_text_present 'Usu' # TODO Usuário
|
|
62
|
+
assert_text_present 'Senha'
|
|
63
|
+
assert_text_present 'instalou o Motiro corretamente'
|
|
64
|
+
assert_text_present 'Editar (identifique-se, por favor)'
|
|
65
|
+
assert_text_present 'Eventos agendados'
|
|
66
|
+
assert_text_present 'ltimas not' # TODO Últimas notícias do Subversion
|
|
67
|
+
assert_text_present 'cias do Subversion'
|
|
68
|
+
assert_text_present 'Antigas'
|
|
69
|
+
assert_text_present 'Funcionalidades planejadas'
|
|
70
|
+
|
|
71
|
+
click "//a[@id='en']"
|
|
72
|
+
wait_for_page_to_load(1000)
|
|
73
|
+
|
|
74
|
+
assert_equal "Motiro: Welcome", get_title
|
|
75
|
+
assert_text_present 'User'
|
|
76
|
+
assert_text_present 'Password'
|
|
77
|
+
assert_text_present 'Congratulations! Motiro was installed correctly'
|
|
78
|
+
assert_text_present 'Edit (requires authentication)'
|
|
79
|
+
assert_text_present 'Scheduled events'
|
|
80
|
+
assert_text_present 'Latest news from Subversion'
|
|
81
|
+
assert_text_present 'Older'
|
|
82
|
+
assert_text_present 'Planned features'
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def test_do_not_display_breadcrumbs_on_main_page
|
|
86
|
+
open('/')
|
|
87
|
+
|
|
88
|
+
assert_text_not_present 'You are here'
|
|
89
|
+
assert_text_not_present 'Home'
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
end
|
|
@@ -0,0 +1,319 @@
|
|
|
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 'live_mode_test'
|
|
19
|
+
|
|
20
|
+
class SubversionAcceptanceTest < SeleniumTestCase
|
|
21
|
+
|
|
22
|
+
include LiveModeTestCase
|
|
23
|
+
|
|
24
|
+
def test_short_headline
|
|
25
|
+
commit_msg = 'Created my project'
|
|
26
|
+
|
|
27
|
+
@repo.mkdir('myproject', commit_msg)
|
|
28
|
+
|
|
29
|
+
open '/report/subversion?locale=en'
|
|
30
|
+
assert_text_present @repo.username
|
|
31
|
+
assert_text_present commit_msg
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_show_subversion_on_main_page_when_in_development_mode
|
|
35
|
+
commit_msg = 'Created another project'
|
|
36
|
+
|
|
37
|
+
@repo.mkdir('myproject', commit_msg)
|
|
38
|
+
|
|
39
|
+
open '/en'
|
|
40
|
+
assert_text_present 'Latest news from Subversion'
|
|
41
|
+
assert_text_present commit_msg
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_records_revision_description
|
|
45
|
+
commit_title = 'I have created the project dir'
|
|
46
|
+
commit_msg = "#{commit_title}\n" +
|
|
47
|
+
"\n" +
|
|
48
|
+
"This project dir will hold everything needed to build and\n" +
|
|
49
|
+
"deploy our project from source code"
|
|
50
|
+
dir_name = 'myproject'
|
|
51
|
+
|
|
52
|
+
@repo.mkdir(dir_name, commit_msg)
|
|
53
|
+
|
|
54
|
+
open '/report/subversion?locale=en'
|
|
55
|
+
assert_text_present commit_title
|
|
56
|
+
click "//a[text() = \"#{commit_title}\"]"
|
|
57
|
+
wait_for_page_to_load(2000)
|
|
58
|
+
|
|
59
|
+
assert_equal "Revision details - #{commit_title} (Motiro)", get_title
|
|
60
|
+
assert_element_present "//h1[text() = 'Revision r1']"
|
|
61
|
+
assert_text_present commit_title
|
|
62
|
+
assert_text_present 'This project dir will hold everything needed to build and'
|
|
63
|
+
assert_text_present 'deploy our project from source code'
|
|
64
|
+
|
|
65
|
+
assert_element_present "//div[@id='summary']"
|
|
66
|
+
assert_text_present "A /#{dir_name}"
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_shows_diff_output_when_adding_file
|
|
70
|
+
commit_title = 'I have added a file'
|
|
71
|
+
filename = 'a_file.txt'
|
|
72
|
+
file_contents = "These are the file contents"
|
|
73
|
+
diff_output = "@@ -0,0 +1 @@\n" +
|
|
74
|
+
"+#{file_contents}\n"
|
|
75
|
+
|
|
76
|
+
@repo.add_file(filename, file_contents)
|
|
77
|
+
@repo.commit(commit_title)
|
|
78
|
+
|
|
79
|
+
open '/report/subversion?locale=en'
|
|
80
|
+
click "//a[text() = '#{commit_title}']"
|
|
81
|
+
wait_for_page_to_load(2000)
|
|
82
|
+
|
|
83
|
+
assert_element_present "//a[text()='A /#{filename}']"
|
|
84
|
+
assert_element_present "//h2[text()='Changes to a_file.txt']"
|
|
85
|
+
assert_text_present file_contents
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def test_shows_diff_output_when_modifying_file
|
|
89
|
+
test_shows_diff_output_when_adding_file
|
|
90
|
+
diff_output = "@@ -1 +1 @@\n" +
|
|
91
|
+
"-These are the file contents\n" +
|
|
92
|
+
"+These are the modified file contents\n"
|
|
93
|
+
|
|
94
|
+
commit_title = 'I have modified a file'
|
|
95
|
+
@repo.put_file('a_file.txt', "These are the modified file contents\n" )
|
|
96
|
+
@repo.commit(commit_title)
|
|
97
|
+
|
|
98
|
+
open '/report/subversion'
|
|
99
|
+
click "//a[text() = '#{commit_title}']"
|
|
100
|
+
wait_for_page_to_load(1500)
|
|
101
|
+
|
|
102
|
+
assert_text_present 'These are the file contents'
|
|
103
|
+
assert_text_present 'These are the modified file contents'
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def test_showing_invalid_rid_shows_nice_error_message
|
|
107
|
+
commit_msg = 'Creating the project root'
|
|
108
|
+
|
|
109
|
+
@repo.mkdir('projectroot', commit_msg)
|
|
110
|
+
|
|
111
|
+
open '/report/subversion/r104?locale=en'
|
|
112
|
+
assert_equal "Motiro: Welcome", get_title
|
|
113
|
+
assert_text "//div[@id='notice']", 'The article r104 from the Subversion reporter could not be found'
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def test_do_not_show_diff_section_when_adding_directories
|
|
117
|
+
commit_title = 'Creating the project trunk'
|
|
118
|
+
|
|
119
|
+
@repo.mkdir('trunk', commit_title)
|
|
120
|
+
|
|
121
|
+
open '/report/subversion?locale=en'
|
|
122
|
+
click "//a[text() = '#{commit_title}']"
|
|
123
|
+
wait_for_page_to_load(1000)
|
|
124
|
+
|
|
125
|
+
assert_element_not_present "//a[text() = 'A /trunk']"
|
|
126
|
+
assert_text_not_present "Changes to trunk"
|
|
127
|
+
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# TODO what should be the behaviour when removing files?
|
|
131
|
+
# TODO on recorded mode, when something bad happens (like a connection
|
|
132
|
+
# timeout) during headline retrieval, the headlines are carved in
|
|
133
|
+
# stone that way and can't be fixed
|
|
134
|
+
|
|
135
|
+
def test_copy_file
|
|
136
|
+
@repo.add_file('file_number_one.txt', "the content here will be copied to file_number_two\n")
|
|
137
|
+
@repo.commit('added first file')
|
|
138
|
+
|
|
139
|
+
commit_title = 'files copied'
|
|
140
|
+
@repo.copy('file_number_one.txt', 'file_number_two.txt', commit_title)
|
|
141
|
+
|
|
142
|
+
open '/report/subversion?locale=en'
|
|
143
|
+
click "//a[text() = '#{commit_title}']"
|
|
144
|
+
wait_for_page_to_load(2000)
|
|
145
|
+
assert_text_present "Changes to file_number_two.txt"
|
|
146
|
+
assert_text_present "the content here will be copied to file_number_two"
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def test_move_file
|
|
150
|
+
@repo.add_file('file_number_one.txt', "this file will be renamed to file_number_two\n")
|
|
151
|
+
@repo.commit('added first file')
|
|
152
|
+
|
|
153
|
+
commit_title = 'renamed file'
|
|
154
|
+
@repo.move('file_number_one.txt', 'file_number_two.txt', commit_title)
|
|
155
|
+
|
|
156
|
+
open '/report/subversion?locale=en'
|
|
157
|
+
click "//a[text() = '#{commit_title}']"
|
|
158
|
+
wait_for_page_to_load(2000)
|
|
159
|
+
|
|
160
|
+
assert_text_present "Changes to file_number_one.txt"
|
|
161
|
+
assert_text_present "this file will be renamed to file_number_two"
|
|
162
|
+
assert_text_present "Changes to file_number_two.txt"
|
|
163
|
+
assert_text_present "this file will be renamed to file_number_two"
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
def test_shows_only_one_diff_when_selected
|
|
167
|
+
@repo.add_file('file_one.txt', 'son, she said, have I got a little story for you')
|
|
168
|
+
@repo.add_file('file_two.txt', 'what you thought was your daddy was nothing but a...')
|
|
169
|
+
|
|
170
|
+
commit_title = 'added two files'
|
|
171
|
+
@repo.commit(commit_title)
|
|
172
|
+
|
|
173
|
+
open '/report/subversion'
|
|
174
|
+
click "//a[text() = '#{commit_title}']"
|
|
175
|
+
wait_for_page_to_load(1000)
|
|
176
|
+
|
|
177
|
+
click "//a[contains(text(), 'A /file_one.txt')]"
|
|
178
|
+
|
|
179
|
+
#TODO using IDs is a little counter-intuitive, maybe we could try text()
|
|
180
|
+
assert_visible "//div[@id='change17300898']"
|
|
181
|
+
assert_not_visible "//div[@id='change462869942']"
|
|
182
|
+
|
|
183
|
+
click "//a[contains(text(), 'A /file_two.txt')]"
|
|
184
|
+
assert_visible "//div[@id='change462869942']"
|
|
185
|
+
assert_not_visible "//div[@id='change17300898']"
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
def test_shows_diff_only_when_clicked
|
|
189
|
+
@repo.add_file('alive.txt', 'son, she said, have I got a little story for you')
|
|
190
|
+
|
|
191
|
+
commit_title = 'added alive.txt'
|
|
192
|
+
@repo.commit(commit_title)
|
|
193
|
+
|
|
194
|
+
open '/report/subversion'
|
|
195
|
+
click "//a[text() = '#{commit_title}']"
|
|
196
|
+
wait_for_page_to_load(1000)
|
|
197
|
+
|
|
198
|
+
assert_not_visible "//div[@id='changes']"
|
|
199
|
+
assert_not_visible "//div[@id='change-374147303']"
|
|
200
|
+
|
|
201
|
+
click "//a[contains(text(), 'A /alive.txt')]"
|
|
202
|
+
|
|
203
|
+
assert_visible "//div[@id='change-374147303']"
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
def test_translates_page_for_valid_revision_id
|
|
207
|
+
@repo.add_file('daughter.txt', 'alone, listless, breakfast table and an otherwise empty room')
|
|
208
|
+
|
|
209
|
+
commit_title = 'added daughter.txt'
|
|
210
|
+
@repo.commit(commit_title)
|
|
211
|
+
|
|
212
|
+
open '/report/subversion/r1?locale=en'
|
|
213
|
+
|
|
214
|
+
assert_equal "Revision details - #{commit_title} (Motiro)", get_title
|
|
215
|
+
assert_text_present 'Revision r1'
|
|
216
|
+
assert_element_present "//h2[text()='Changes to daughter.txt']"
|
|
217
|
+
|
|
218
|
+
click "//a[@id='pt-BR']"
|
|
219
|
+
wait_for_page_to_load(1000)
|
|
220
|
+
|
|
221
|
+
assert get_title =~ /Detalhes de revis.o - #{commit_title} \(Motiro\)/
|
|
222
|
+
# Revisão r1
|
|
223
|
+
assert_text_present 'Revis'
|
|
224
|
+
assert_text_present 'o r1'
|
|
225
|
+
# Alteraçõµes em dauther.txt
|
|
226
|
+
assert_text_present 'Altera'
|
|
227
|
+
assert_text_present 'es em daughter.txt'
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
def test_translates_page_for_inexistent_revision_id
|
|
231
|
+
@repo.add_file('daughter.txt', 'alone, listless, breakfast table and an otherwise empty room')
|
|
232
|
+
|
|
233
|
+
commit_title = 'added daughter.txt'
|
|
234
|
+
@repo.commit(commit_title)
|
|
235
|
+
|
|
236
|
+
open '/report/subversion/r30?locale=en'
|
|
237
|
+
|
|
238
|
+
assert_equal "Motiro: Welcome", get_title
|
|
239
|
+
assert_text "//div[@id='notice']", 'The article r30 from the Subversion reporter could not be found'
|
|
240
|
+
|
|
241
|
+
open '/report/subversion/r30?locale=pt-BR'
|
|
242
|
+
|
|
243
|
+
assert_text "//div[@id='notice']", /o foi poss/
|
|
244
|
+
assert_text "//div[@id='notice']", /vel encontrar o artigo r30 do rep/
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
def test_select_correct_translation_from_comment
|
|
248
|
+
@repo.add_file('wishlist.txt', 'I wish I was a neutron bomb, for once I could go off')
|
|
249
|
+
|
|
250
|
+
commit_comment = "letras da musica Wishlist do album Yield\n" +
|
|
251
|
+
"\n" +
|
|
252
|
+
"Este album foi originalmente lancado em 1998\n" +
|
|
253
|
+
"\n" +
|
|
254
|
+
"--- en -----------------------------------\n" +
|
|
255
|
+
"\n" +
|
|
256
|
+
"lyrics for the song Wishlist from the album Yield\n" +
|
|
257
|
+
"\n" +
|
|
258
|
+
"This album was originally released in 1998\n"
|
|
259
|
+
|
|
260
|
+
@repo.commit(commit_comment)
|
|
261
|
+
|
|
262
|
+
open '/report/subversion?locale=pt-BR'
|
|
263
|
+
|
|
264
|
+
assert_text_not_present('lyrics')
|
|
265
|
+
|
|
266
|
+
click '//a[text() = "letras da musica Wishlist do album Yield"]'
|
|
267
|
+
wait_for_page_to_load(2000)
|
|
268
|
+
|
|
269
|
+
assert_text_present("letras da musica Wishlist do album Yield")
|
|
270
|
+
assert_text_present('Este album foi originalmente lancado em 1998')
|
|
271
|
+
assert_text_not_present('this')
|
|
272
|
+
assert_text_not_present('originally released')
|
|
273
|
+
|
|
274
|
+
open '/report/subversion?locale=en'
|
|
275
|
+
|
|
276
|
+
assert_text_not_present('letras')
|
|
277
|
+
assert_text_not_present('musica')
|
|
278
|
+
|
|
279
|
+
click '//a[text() = "lyrics for the song Wishlist from the album Yield"]'
|
|
280
|
+
wait_for_page_to_load(2000)
|
|
281
|
+
|
|
282
|
+
assert_text_present("lyrics for the song Wishlist from the album Yield")
|
|
283
|
+
assert_text_present('This album was originally released in 1998')
|
|
284
|
+
assert_text_not_present('musica')
|
|
285
|
+
assert_text_not_present('Este')
|
|
286
|
+
assert_text_not_present('foi originalmente')
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
def test_formats_page_as_wiki_text
|
|
290
|
+
commit_msg = "This is the comment title\n" +
|
|
291
|
+
"\n" +
|
|
292
|
+
"This is the second paragraph"
|
|
293
|
+
|
|
294
|
+
@repo.mkdir('wikitest', commit_msg)
|
|
295
|
+
|
|
296
|
+
open '/report/subversion'
|
|
297
|
+
click "//a[text() = 'This is the comment title']"
|
|
298
|
+
wait_for_page_to_load(2000)
|
|
299
|
+
|
|
300
|
+
assert_element_present "//p[text() = 'This is the second paragraph']"
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
def test_shows_older_revisions
|
|
304
|
+
1.upto 8 do |n|
|
|
305
|
+
@repo.mkdir("directory#{n}", "Created directory n#{n}")
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
open '/en'
|
|
309
|
+
click "//a[text() = 'Older']"
|
|
310
|
+
wait_for_page_to_load(2000)
|
|
311
|
+
|
|
312
|
+
assert_element_present "//a[text() = 'Created directory n1']"
|
|
313
|
+
assert_element_present "//a[text() = 'Created directory n2']"
|
|
314
|
+
assert_element_present "//a[text() = 'Created directory n5']"
|
|
315
|
+
assert_element_present "//a[text() = 'Created directory n7']"
|
|
316
|
+
assert_element_present "//a[text() = 'Created directory n8']"
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
require 'acceptance_test_case'
|
|
20
|
+
|
|
21
|
+
require File.join(File.dirname(__FILE__), 'main_page_test')
|
|
22
|
+
require File.join(File.dirname(__FILE__), 'subversion_test')
|
|
23
|
+
require File.join(File.dirname(__FILE__), 'events_test')
|
|
24
|
+
require File.join(File.dirname(__FILE__), 'wiki_test')
|
|
25
|
+
require File.join(File.dirname(__FILE__), 'darcs_test')
|
|
26
|
+
require File.join(File.dirname(__FILE__), 'account_test')
|
|
27
|
+
|