barkest_core 1.5.3.0
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.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/Gemfile +22 -0
- data/Gemfile.lock +254 -0
- data/MIT-LICENSE +20 -0
- data/README.md +364 -0
- data/Rakefile +37 -0
- data/app/assets/fonts/barkest_core/ArchivoNarrow-Bold.ttf +0 -0
- data/app/assets/fonts/barkest_core/ArchivoNarrow-BoldItalic.ttf +0 -0
- data/app/assets/fonts/barkest_core/ArchivoNarrow-Italic.ttf +0 -0
- data/app/assets/fonts/barkest_core/ArchivoNarrow-Regular.ttf +0 -0
- data/app/assets/images/barkest_core/.keep +0 -0
- data/app/assets/images/barkest_core/barcode-B.svg +181 -0
- data/app/assets/javascripts/barkest_core/.keep +0 -0
- data/app/assets/javascripts/barkest_core/application.js +22 -0
- data/app/assets/javascripts/barkest_core/bootstrap-datepicker.js +1800 -0
- data/app/assets/javascripts/barkest_core/field_init.js +7 -0
- data/app/assets/javascripts/barkest_core/jquery.doubleScroll.js +112 -0
- data/app/assets/javascripts/barkest_core/masked_edit.js +25 -0
- data/app/assets/javascripts/barkest_core/system_status.js.erb +201 -0
- data/app/assets/stylesheets/barkest_core/.keep +0 -0
- data/app/assets/stylesheets/barkest_core/application.css +17 -0
- data/app/assets/stylesheets/barkest_core/custom.css.scss +264 -0
- data/app/assets/stylesheets/barkest_core/datepicker3.css +790 -0
- data/app/controllers/.keep +0 -0
- data/app/controllers/access_groups_controller.rb +74 -0
- data/app/controllers/account_activations_controller.rb +29 -0
- data/app/controllers/application_controller.rb +5 -0
- data/app/controllers/barkest_core/application_controller_base.rb +113 -0
- data/app/controllers/barkest_core/engine_controller_base.rb +15 -0
- data/app/controllers/barkest_core/testsub_controller.rb +21 -0
- data/app/controllers/contact_controller.rb +32 -0
- data/app/controllers/log_view_controller.rb +31 -0
- data/app/controllers/password_resets_controller.rb +126 -0
- data/app/controllers/sessions_controller.rb +64 -0
- data/app/controllers/status_controller.rb +150 -0
- data/app/controllers/system_config_controller.rb +238 -0
- data/app/controllers/system_update_controller.rb +164 -0
- data/app/controllers/test_access_controller.rb +44 -0
- data/app/controllers/test_report_controller.rb +75 -0
- data/app/controllers/users_controller.rb +218 -0
- data/app/helpers/.keep +0 -0
- data/app/helpers/barkest_core/application_helper.rb +134 -0
- data/app/helpers/barkest_core/form_helper.rb +469 -0
- data/app/helpers/barkest_core/html_helper.rb +70 -0
- data/app/helpers/barkest_core/misc_helper.rb +68 -0
- data/app/helpers/barkest_core/pdf_helper.rb +180 -0
- data/app/helpers/barkest_core/recaptcha_helper.rb +115 -0
- data/app/helpers/barkest_core/sessions_helper.rb +94 -0
- data/app/helpers/barkest_core/status_helper.rb +118 -0
- data/app/helpers/barkest_core/users_helper.rb +32 -0
- data/app/mailers/.keep +0 -0
- data/app/mailers/application_mailer.rb +5 -0
- data/app/mailers/barkest_core/application_mailer_base.rb +30 -0
- data/app/mailers/barkest_core/contact_form.rb +20 -0
- data/app/mailers/barkest_core/user_mailer.rb +44 -0
- data/app/models/.keep +0 -0
- data/app/models/access_group.rb +121 -0
- data/app/models/access_group_group_member.rb +13 -0
- data/app/models/access_group_user_member.rb +11 -0
- data/app/models/barkest_core/auth_config.rb +95 -0
- data/app/models/barkest_core/authorize_failure.rb +7 -0
- data/app/models/barkest_core/contact_message.rb +37 -0
- data/app/models/barkest_core/database_config.rb +223 -0
- data/app/models/barkest_core/db_table.rb +21 -0
- data/app/models/barkest_core/email_config.rb +132 -0
- data/app/models/barkest_core/global_status.rb +267 -0
- data/app/models/barkest_core/log_entry.rb +101 -0
- data/app/models/barkest_core/log_view_options.rb +51 -0
- data/app/models/barkest_core/ms_sql_db_definition.rb +441 -0
- data/app/models/barkest_core/ms_sql_definition.rb +221 -0
- data/app/models/barkest_core/ms_sql_function.rb +423 -0
- data/app/models/barkest_core/not_logged_in.rb +7 -0
- data/app/models/barkest_core/pdf_table_builder.rb +407 -0
- data/app/models/barkest_core/self_update_config.rb +37 -0
- data/app/models/barkest_core/user_alert.rb +29 -0
- data/app/models/barkest_core/user_alert_generators.rb +58 -0
- data/app/models/barkest_core/user_manager.rb +404 -0
- data/app/models/barkest_core/work_path.rb +74 -0
- data/app/models/disable_user.rb +18 -0
- data/app/models/ldap_access_group.rb +15 -0
- data/app/models/system_config.rb +99 -0
- data/app/models/user.rb +405 -0
- data/app/models/user_login_history.rb +11 -0
- data/app/views/.keep +0 -0
- data/app/views/access_groups/_form.html.erb +19 -0
- data/app/views/access_groups/edit.html.erb +2 -0
- data/app/views/access_groups/index.html.erb +32 -0
- data/app/views/access_groups/new.html.erb +2 -0
- data/app/views/access_groups/show.html.erb +4 -0
- data/app/views/barkest_core/contact_form/contact.html.erb +16 -0
- data/app/views/barkest_core/contact_form/contact.text.erb +13 -0
- data/app/views/barkest_core/testsub/_links.html.erb +5 -0
- data/app/views/barkest_core/testsub/page1.html.erb +3 -0
- data/app/views/barkest_core/testsub/page2.html.erb +2 -0
- data/app/views/barkest_core/testsub/page3.html.erb +2 -0
- data/app/views/barkest_core/user_mailer/account_activation.html.erb +7 -0
- data/app/views/barkest_core/user_mailer/account_activation.text.erb +6 -0
- data/app/views/barkest_core/user_mailer/invalid_password_reset.html.erb +3 -0
- data/app/views/barkest_core/user_mailer/invalid_password_reset.text.erb +5 -0
- data/app/views/barkest_core/user_mailer/password_reset.html.erb +8 -0
- data/app/views/barkest_core/user_mailer/password_reset.text.erb +7 -0
- data/app/views/contact/index.html.erb +24 -0
- data/app/views/layouts/_footer_copyright.html.erb +1 -0
- data/app/views/layouts/_menu_admin.html.erb +5 -0
- data/app/views/layouts/_menu_anon.html.erb +0 -0
- data/app/views/layouts/_menu_auth.html.erb +3 -0
- data/app/views/layouts/_menu_footer.html.erb +1 -0
- data/app/views/layouts/_nav_logo.html.erb +1 -0
- data/app/views/layouts/application.html.erb +2 -0
- data/app/views/layouts/barkest_core/_application.html.erb +24 -0
- data/app/views/layouts/barkest_core/_footer.html.erb +18 -0
- data/app/views/layouts/barkest_core/_header.html.erb +38 -0
- data/app/views/layouts/barkest_core/_html_mailer.html.erb +11 -0
- data/app/views/layouts/barkest_core/_menu_account.html.erb +14 -0
- data/app/views/layouts/barkest_core/_menu_sample.html.erb +1 -0
- data/app/views/layouts/barkest_core/_messages.html.erb +4 -0
- data/app/views/layouts/barkest_core/_shim.html.erb +4 -0
- data/app/views/layouts/barkest_core/_subheader.html.erb +1 -0
- data/app/views/layouts/barkest_core/_text_mailer.text.erb +4 -0
- data/app/views/layouts/mailer.html.erb +1 -0
- data/app/views/layouts/mailer.text.erb +1 -0
- data/app/views/log_view/index.html.erb +100 -0
- data/app/views/password_resets/edit.html.erb +20 -0
- data/app/views/password_resets/new.html.erb +14 -0
- data/app/views/sessions/new.html.erb +27 -0
- data/app/views/shared/_error_messages.html.erb +29 -0
- data/app/views/shared/_generic_user_alert.html.erb +4 -0
- data/app/views/status/current.html.erb +34 -0
- data/app/views/status/test.html.erb +50 -0
- data/app/views/system_config/index.html.erb +25 -0
- data/app/views/system_config/show_auth.html.erb +28 -0
- data/app/views/system_config/show_database.html.erb +36 -0
- data/app/views/system_config/show_email.html.erb +21 -0
- data/app/views/system_config/show_self_update.html.erb +13 -0
- data/app/views/system_update/index.html.erb +31 -0
- data/app/views/system_update/new.html.erb +2 -0
- data/app/views/test_access/allow_anon.html.erb +2 -0
- data/app/views/test_access/require_admin.html.erb +2 -0
- data/app/views/test_access/require_group_x.html.erb +2 -0
- data/app/views/test_access/require_user.html.erb +2 -0
- data/app/views/test_report/index.csv.csvrb +23 -0
- data/app/views/test_report/index.html.erb +6 -0
- data/app/views/test_report/index.pdf.prawn +50 -0
- data/app/views/test_report/index.xlsx.axlsx +28 -0
- data/app/views/users/_user.html.erb +57 -0
- data/app/views/users/_user_details.html.erb +15 -0
- data/app/views/users/_user_details_for_list.html.erb +1 -0
- data/app/views/users/_user_form.html.erb +13 -0
- data/app/views/users/disable_confirm.html.erb +19 -0
- data/app/views/users/edit.html.erb +15 -0
- data/app/views/users/index.html.erb +9 -0
- data/app/views/users/new.html.erb +10 -0
- data/app/views/users/show.html.erb +46 -0
- data/bin/rails +12 -0
- data/config/routes.rb +3 -0
- data/db/migrate/20160617172539_create_access_groups.rb +10 -0
- data/db/migrate/20160617172725_create_users.rb +26 -0
- data/db/migrate/20160617172833_create_user_login_histories.rb +12 -0
- data/db/migrate/20160622151720_create_access_group_user_members.rb +9 -0
- data/db/migrate/20160622151925_create_access_group_group_members.rb +9 -0
- data/db/migrate/20160701005706_create_ldap_access_groups.rb +11 -0
- data/db/migrate/20161108155029_create_system_configs.rb +11 -0
- data/db/seeds/barkest_core_01_create_users.rb +42 -0
- data/db/seeds.rb +53 -0
- data/lib/barkest_core/concerns/association_with_defaults.rb +55 -0
- data/lib/barkest_core/concerns/boolean_parser.rb +88 -0
- data/lib/barkest_core/concerns/date_parser.rb +181 -0
- data/lib/barkest_core/concerns/email_tester.rb +55 -0
- data/lib/barkest_core/concerns/encrypted_fields.rb +156 -0
- data/lib/barkest_core/concerns/named_model.rb +73 -0
- data/lib/barkest_core/concerns/number_parser.rb +145 -0
- data/lib/barkest_core/concerns/utc_conversion.rb +60 -0
- data/lib/barkest_core/engine.rb +105 -0
- data/lib/barkest_core/extensions/active_record_extensions.rb +120 -0
- data/lib/barkest_core/extensions/application_configuration_extensions.rb +38 -0
- data/lib/barkest_core/extensions/application_extensions.rb +50 -0
- data/lib/barkest_core/extensions/axlsx_extenstions.rb +157 -0
- data/lib/barkest_core/extensions/fixture_set_extensions.rb +107 -0
- data/lib/barkest_core/extensions/generator_extensions.rb +271 -0
- data/lib/barkest_core/extensions/main_app_extensions.rb +35 -0
- data/lib/barkest_core/extensions/prawn_document_extensions.rb +367 -0
- data/lib/barkest_core/extensions/prawn_table_extensions.rb +131 -0
- data/lib/barkest_core/extensions/router_extensions.rb +106 -0
- data/lib/barkest_core/extensions/simple_formatter_extensions.rb +66 -0
- data/lib/barkest_core/extensions/test_case_extensions.rb +348 -0
- data/lib/barkest_core/extensions/time_extensions.rb +164 -0
- data/lib/barkest_core/handlers/csv_handler.rb +30 -0
- data/lib/barkest_core/version.rb +3 -0
- data/lib/barkest_core.rb +324 -0
- data/lib/generators/barkest/install_generator.rb +102 -0
- data/lib/generators/barkest_core/actions/01_patch_application_controller.rb +55 -0
- data/lib/generators/barkest_core/actions/02_patch_application_mailer.rb +56 -0
- data/lib/generators/barkest_core/actions/03_patch_assets.rb +62 -0
- data/lib/generators/barkest_core/actions/04_patch_layouts.rb +36 -0
- data/lib/generators/barkest_core/actions/05_patch_routes.rb +93 -0
- data/lib/generators/barkest_core/actions/06_patch_seeds.rb +60 -0
- data/lib/generators/barkest_core/actions/07_copy_migrations.rb +51 -0
- data/lib/generators/barkest_core/actions/08_configure_database.rb +52 -0
- data/lib/generators/barkest_core/actions/09_configure_secrets.rb +29 -0
- data/lib/generators/barkest_core/actions/99_patch_gitignore.rb +57 -0
- data/lib/generators/barkest_core/install_generator.rb +17 -0
- data/test/barkest_core_test.rb +83 -0
- data/test/controllers/access_groups_controller_test.rb +53 -0
- data/test/controllers/contact_controller_test.rb +10 -0
- data/test/controllers/sessions_controller_test.rb +10 -0
- data/test/controllers/users_controller_test.rb +10 -0
- data/test/dummy/.gitignore +10 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/images/.keep +0 -0
- data/test/dummy/app/assets/javascripts/application.js +14 -0
- data/test/dummy/app/assets/stylesheets/application.css +16 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/controllers/concerns/.keep +0 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/mailers/.keep +0 -0
- data/test/dummy/app/mailers/application_mailer.rb +3 -0
- data/test/dummy/app/models/.keep +0 -0
- data/test/dummy/app/models/concerns/.keep +0 -0
- data/test/dummy/app/views/layouts/application.html.erb +1 -0
- data/test/dummy/app/views/layouts/mailer.html.erb +1 -0
- data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/test/dummy/app/views/system_config/show_fake.html.erb +3 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +29 -0
- data/test/dummy/config/application.rb +27 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +47 -0
- data/test/dummy/config/environments/production.rb +79 -0
- data/test/dummy/config/environments/test.rb +44 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/db_updater_ext.rb +33 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/sys_config_ext.rb +12 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +60 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/schema.rb +95 -0
- data/test/dummy/db/seeds/barkest_core_01_create_users.rb +42 -0
- data/test/dummy/db/seeds.rb +51 -0
- data/test/dummy/lib/assets/.keep +0 -0
- data/test/dummy/log/.keep +0 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/sql/my_test_view.sql +3 -0
- data/test/fixtures/access_groups.yml +21 -0
- data/test/fixtures/users.yml +71 -0
- data/test/helpers/barkest_core/sessions_helper_test.rb +22 -0
- data/test/integration/access_group_mgmt_test.rb +33 -0
- data/test/integration/access_test.rb +24 -0
- data/test/integration/account_activations_access_test.rb +12 -0
- data/test/integration/contact_test.rb +98 -0
- data/test/integration/extra_partial_test.rb +41 -0
- data/test/integration/log_view_access_test.rb +12 -0
- data/test/integration/password_resets_test.rb +101 -0
- data/test/integration/reports_test.rb +53 -0
- data/test/integration/status_access_test.rb +27 -0
- data/test/integration/system_config_access_test.rb +24 -0
- data/test/integration/system_update_access_test.rb +19 -0
- data/test/integration/users_access_test.rb +34 -0
- data/test/integration/users_edit_test.rb +178 -0
- data/test/integration/users_index_test.rb +62 -0
- data/test/integration/users_login_test.rb +67 -0
- data/test/integration/users_signup_test.rb +54 -0
- data/test/mailers/.keep +0 -0
- data/test/mailers/barkest_core/contact_form_test.rb +28 -0
- data/test/mailers/barkest_core/user_mailer_test.rb +43 -0
- data/test/mailers/previews/barkest_core/contact_form_preview.rb +17 -0
- data/test/mailers/previews/barkest_core/user_mailer_preview.rb +26 -0
- data/test/models/access_group_group_member_test.rb +28 -0
- data/test/models/access_group_test.rb +114 -0
- data/test/models/access_group_user_member_test.rb +28 -0
- data/test/models/barkest_core/auth_config_test.rb +57 -0
- data/test/models/barkest_core/bool_parser_test.rb +28 -0
- data/test/models/barkest_core/contact_message_test.rb +61 -0
- data/test/models/barkest_core/database_config_test.rb +33 -0
- data/test/models/barkest_core/date_parser_test.rb +110 -0
- data/test/models/barkest_core/email_config_test.rb +57 -0
- data/test/models/barkest_core/global_status_test.rb +50 -0
- data/test/models/barkest_core/ms_sql_db_updater_test.rb +115 -0
- data/test/models/barkest_core/ms_sql_definition_test.rb +102 -0
- data/test/models/barkest_core/ms_sql_function_test.rb +131 -0
- data/test/models/barkest_core/number_parser_test.rb +29 -0
- data/test/models/barkest_core/self_update_config_test.rb +29 -0
- data/test/models/barkest_core/user_alert_test.rb +19 -0
- data/test/models/barkest_core/user_manager_test.rb +34 -0
- data/test/models/barkest_core/work_path_test.rb +26 -0
- data/test/models/disable_user_test.rb +27 -0
- data/test/models/generic_time_test.rb +66 -0
- data/test/models/ldap_access_group_test.rb +31 -0
- data/test/models/pdf_table_builder_test.rb +6 -0
- data/test/models/system_config_test.rb +78 -0
- data/test/models/user_login_history_test.rb +37 -0
- data/test/models/user_test.rb +130 -0
- data/test/test_helper.rb +63 -0
- metadata +798 -0
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
|
2
|
+
|
|
3
|
+
one_one_one:
|
|
4
|
+
name: Group 1-1-1
|
|
5
|
+
|
|
6
|
+
one_one:
|
|
7
|
+
name: Group 1-1
|
|
8
|
+
members: one_one_one
|
|
9
|
+
|
|
10
|
+
one_two:
|
|
11
|
+
name: Group 1-2
|
|
12
|
+
|
|
13
|
+
one:
|
|
14
|
+
name: Group 1
|
|
15
|
+
members: one_one, one_two
|
|
16
|
+
|
|
17
|
+
two:
|
|
18
|
+
name: Group 2
|
|
19
|
+
|
|
20
|
+
three:
|
|
21
|
+
name: Group 3
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
|
2
|
+
admin:
|
|
3
|
+
name: Mike Smith
|
|
4
|
+
email: msmith@example.com
|
|
5
|
+
system_admin: true
|
|
6
|
+
password_digest: <%= User.digest('password') %>
|
|
7
|
+
activated: true
|
|
8
|
+
activated_at: <%= Time.zone.now %>
|
|
9
|
+
|
|
10
|
+
one:
|
|
11
|
+
name: Number One
|
|
12
|
+
email: num.one@example.com
|
|
13
|
+
system_admin: false
|
|
14
|
+
password_digest: <%= User.digest('password') %>
|
|
15
|
+
activated: true
|
|
16
|
+
activated_at: <%= Time.zone.now %>
|
|
17
|
+
|
|
18
|
+
two:
|
|
19
|
+
name: Number Two
|
|
20
|
+
email: num.two@example.com
|
|
21
|
+
system_admin: false
|
|
22
|
+
password_digest: <%= User.digest('password') %>
|
|
23
|
+
activation_digest: <%= User.digest('valid-token') %>
|
|
24
|
+
|
|
25
|
+
standard:
|
|
26
|
+
name: John Doe
|
|
27
|
+
email: jdoe@example.com
|
|
28
|
+
password_digest: <%= User.digest('password') %>
|
|
29
|
+
activated: true
|
|
30
|
+
activated_at: <%= Time.zone.now %>
|
|
31
|
+
groups: one, two
|
|
32
|
+
|
|
33
|
+
basic:
|
|
34
|
+
name: Jane Smith
|
|
35
|
+
email: jsmith@example.com
|
|
36
|
+
password_digest: <%= User.digest('password') %>
|
|
37
|
+
activated: true
|
|
38
|
+
activated_at: <%= Time.zone.now %>
|
|
39
|
+
|
|
40
|
+
disabled:
|
|
41
|
+
name: Tim Thompson
|
|
42
|
+
email: tt@example.com
|
|
43
|
+
enabled: false
|
|
44
|
+
activated: true
|
|
45
|
+
activated_at: <%= Time.zone.now %>
|
|
46
|
+
disabled_at: <%= Time.zone.now - 4.weeks %>
|
|
47
|
+
password_digest: <%= User.digest('password') %>
|
|
48
|
+
|
|
49
|
+
recently_disabled:
|
|
50
|
+
name: Fred Flintstone
|
|
51
|
+
email: fred@example.com
|
|
52
|
+
enabled: false
|
|
53
|
+
disabled_at: <%= Time.zone.now - 2.days %>
|
|
54
|
+
password_digest: <%= User.digest('password') %>
|
|
55
|
+
|
|
56
|
+
ldap:
|
|
57
|
+
name: Miss Piggy
|
|
58
|
+
email: piggy@example.com
|
|
59
|
+
password_digest: <%= User.digest(User.new_token) %>
|
|
60
|
+
ldap: true
|
|
61
|
+
activated: true
|
|
62
|
+
activated_at: <%= Time.zone.now %>
|
|
63
|
+
|
|
64
|
+
<% 30.times do |n| %>
|
|
65
|
+
user_<%= n + 3 %>:
|
|
66
|
+
name: <%= "User #{n}" %>
|
|
67
|
+
email: <%= "user-#{n}@example.com" %>
|
|
68
|
+
password_digest: <%= User.digest('password') %>
|
|
69
|
+
activated: true
|
|
70
|
+
activated_at: <%= Time.zone.now %>
|
|
71
|
+
<% end %>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
module BarkestCore
|
|
4
|
+
class SessionsHelperTest < ActionView::TestCase
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@user = users(:standard)
|
|
8
|
+
remember(@user)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
test 'current_user returns right user when session is nil' do
|
|
12
|
+
assert_equal @user, current_user
|
|
13
|
+
assert is_logged_in?
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
test 'current_user returns nil when remember digest is wrong' do
|
|
17
|
+
@user.update_attribute(:remember_digest, User.digest(User.new_token))
|
|
18
|
+
assert_nil current_user
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class AccessGroupMgmtTest < ActionDispatch::IntegrationTest
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@admin = users(:admin)
|
|
7
|
+
@group = access_groups(:one)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# group management paths.
|
|
11
|
+
access_tests_for [ :index, :new, :create, :show, :edit, :update, :destroy ],
|
|
12
|
+
controller: 'access_groups',
|
|
13
|
+
create_params: { access_group: { name: 'Test Group X'} },
|
|
14
|
+
update_params: { access_group: { name: 'Test Group X'} },
|
|
15
|
+
allow_anon: false,
|
|
16
|
+
allow_any_user: false,
|
|
17
|
+
allow_admin: true
|
|
18
|
+
|
|
19
|
+
test 'update should require name' do
|
|
20
|
+
log_in_as @admin
|
|
21
|
+
patch access_group_path(@group), access_group: { name: '' }
|
|
22
|
+
assert_template 'access_groups/edit'
|
|
23
|
+
assert_select 'div#error_explanation'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
test 'create should require name' do
|
|
27
|
+
log_in_as @admin
|
|
28
|
+
post access_groups_path, access_group: { name: '' }
|
|
29
|
+
assert_template 'access_groups/new'
|
|
30
|
+
assert_select 'div#error_explanation'
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class AccessTest < ActionDispatch::IntegrationTest
|
|
4
|
+
|
|
5
|
+
# paths that are designed for access testing.
|
|
6
|
+
access_tests_for :allow_anon,
|
|
7
|
+
url_helper: 'barkest_core_test_access_allow_anon_path',
|
|
8
|
+
allow_anon: true,
|
|
9
|
+
allow_any_user: true
|
|
10
|
+
|
|
11
|
+
access_tests_for :require_user,
|
|
12
|
+
url_helper: 'barkest_core_test_access_require_user_path',
|
|
13
|
+
allow_any_user: true
|
|
14
|
+
|
|
15
|
+
access_tests_for :require_group_x,
|
|
16
|
+
url_helper: 'barkest_core_test_access_require_group_x_path',
|
|
17
|
+
allow_groups: ['group 1', 'group 2', 'group 3']
|
|
18
|
+
|
|
19
|
+
access_tests_for :require_admin,
|
|
20
|
+
url_helper: 'barkest_core_test_access_require_admin_path',
|
|
21
|
+
deny_groups: ['group 1', 'group 2', 'group 3' ]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class AccountActivationsAccessTest < ActionDispatch::IntegrationTest
|
|
4
|
+
access_tests_for :edit,
|
|
5
|
+
controller: 'account_activations',
|
|
6
|
+
url_helper: 'edit_account_activation_url(\'valid-token\', email: users(:two).email)',
|
|
7
|
+
allow_anon: true,
|
|
8
|
+
allow_any_user: false,
|
|
9
|
+
allow_admin: false,
|
|
10
|
+
success: 'user_path(users(:two))'
|
|
11
|
+
|
|
12
|
+
end
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class ContactTest < ActionDispatch::IntegrationTest
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
ActionMailer::Base.deliveries.clear
|
|
7
|
+
@msg = {
|
|
8
|
+
your_name: 'John Smith',
|
|
9
|
+
your_email: 'john.smith@example.com',
|
|
10
|
+
related_to: 'Other',
|
|
11
|
+
subject: 'Just a thought',
|
|
12
|
+
body: 'I just wanted to reach out and say hi.',
|
|
13
|
+
}
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
access_tests_for :index,
|
|
17
|
+
url_helper: 'contact_path',
|
|
18
|
+
allow_anon: true,
|
|
19
|
+
allow_any_user: true
|
|
20
|
+
|
|
21
|
+
test 'valid contact message' do
|
|
22
|
+
get contact_path
|
|
23
|
+
assert_template 'contact/index'
|
|
24
|
+
|
|
25
|
+
post contact_path, barkest_core_contact_message: @msg
|
|
26
|
+
|
|
27
|
+
assert_redirected_to root_url
|
|
28
|
+
follow_redirect!
|
|
29
|
+
|
|
30
|
+
assert_not flash.empty?
|
|
31
|
+
assert_equal 1, ActionMailer::Base.deliveries.size
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
test 'alternate valid contact message' do
|
|
35
|
+
get contact_path
|
|
36
|
+
assert_template 'contact/index'
|
|
37
|
+
|
|
38
|
+
@msg[:related_to] = 'General Message'
|
|
39
|
+
@msg.delete(:subject)
|
|
40
|
+
|
|
41
|
+
post contact_path, barkest_core_contact_message: @msg
|
|
42
|
+
|
|
43
|
+
assert_redirected_to root_url
|
|
44
|
+
follow_redirect!
|
|
45
|
+
|
|
46
|
+
assert_not flash.empty?
|
|
47
|
+
assert_equal 1, ActionMailer::Base.deliveries.size
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
test 'invalid contact message' do
|
|
51
|
+
get contact_path
|
|
52
|
+
assert_template 'contact/index'
|
|
53
|
+
|
|
54
|
+
# body is required
|
|
55
|
+
post contact_path, barkest_core_contact_message: @msg.except(:body)
|
|
56
|
+
assert_template 'contact/index'
|
|
57
|
+
assert_select 'div#error_explanation'
|
|
58
|
+
|
|
59
|
+
# subject is required if 'related_to' is 'other'
|
|
60
|
+
post contact_path, barkest_core_contact_message: @msg.except(:subject)
|
|
61
|
+
assert_template 'contact/index'
|
|
62
|
+
assert_select 'div#error_explanation'
|
|
63
|
+
|
|
64
|
+
# related_to is required
|
|
65
|
+
post contact_path, barkest_core_contact_message: @msg.except(:related_to)
|
|
66
|
+
assert_template 'contact/index'
|
|
67
|
+
assert_select 'div#error_explanation'
|
|
68
|
+
|
|
69
|
+
# your_email is required
|
|
70
|
+
post contact_path, barkest_core_contact_message: @msg.except(:your_email)
|
|
71
|
+
assert_template 'contact/index'
|
|
72
|
+
assert_select 'div#error_explanation'
|
|
73
|
+
|
|
74
|
+
# your_email must be valid.
|
|
75
|
+
post contact_path, barkest_core_contact_message: @msg.merge(your_email: 'invalid')
|
|
76
|
+
assert_template 'contact/index'
|
|
77
|
+
assert_select 'div#error_explanation'
|
|
78
|
+
|
|
79
|
+
post contact_path, barkest_core_contact_message: @msg.merge(your_email: 'invalid@localhost')
|
|
80
|
+
assert_template 'contact/index'
|
|
81
|
+
assert_select 'div#error_explanation'
|
|
82
|
+
|
|
83
|
+
# your_name is required
|
|
84
|
+
post contact_path, barkest_core_contact_message: @msg.except(:your_name)
|
|
85
|
+
assert_template 'contact/index'
|
|
86
|
+
assert_select 'div#error_explanation'
|
|
87
|
+
|
|
88
|
+
# just for good measure, make sure the base @msg value is still good.
|
|
89
|
+
# if it is not then the previous tests are all invalid.
|
|
90
|
+
# so this final test must pass to validate the prior tests.
|
|
91
|
+
post contact_path, barkest_core_contact_message: @msg
|
|
92
|
+
assert_redirected_to root_url
|
|
93
|
+
|
|
94
|
+
# and after all those tests, there should be exactly one message that was processed.
|
|
95
|
+
assert_equal 1, ActionMailer::Base.deliveries.size
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class ExtraPartialTest < ActionDispatch::IntegrationTest
|
|
4
|
+
|
|
5
|
+
test 'should not have templates' do
|
|
6
|
+
get root_url
|
|
7
|
+
assert_template partial: 'layouts/barkest_core/_subheader', count: 0
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
test 'should have subheader template' do
|
|
11
|
+
get barkest_core_testsub_page1_url
|
|
12
|
+
assert_template 'layouts/barkest_core/_subheader'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
test 'should allow partial registration' do
|
|
16
|
+
partial = 'layouts/barkest_core/menu_sample'
|
|
17
|
+
template = 'layouts/barkest_core/_menu_sample'
|
|
18
|
+
|
|
19
|
+
# shouldn't be registered yet, so count should be zero.
|
|
20
|
+
get root_url
|
|
21
|
+
assert_template partial: template, count: 0
|
|
22
|
+
|
|
23
|
+
BarkestCore.register_footer_menu partial
|
|
24
|
+
get root_url
|
|
25
|
+
assert_template partial: template, count: 1
|
|
26
|
+
|
|
27
|
+
BarkestCore.register_anon_menu partial
|
|
28
|
+
get root_url
|
|
29
|
+
assert_template partial: template, count: 2
|
|
30
|
+
|
|
31
|
+
BarkestCore.register_auth_menu partial
|
|
32
|
+
get root_url
|
|
33
|
+
assert_template partial: template, count: 2 # nobody is logged in, count should still be 2
|
|
34
|
+
|
|
35
|
+
log_in_as users(:standard)
|
|
36
|
+
get root_url
|
|
37
|
+
assert_template partial: template, count: 3
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
end
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
class PasswordResetsTest < ActionDispatch::IntegrationTest
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
ActionMailer::Base.deliveries.clear
|
|
7
|
+
@user = users(:standard)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
access_tests_for :new,
|
|
11
|
+
allow_anon: true,
|
|
12
|
+
allow_admin: false
|
|
13
|
+
|
|
14
|
+
# nobody should be able to access this path, in the actual integration test it should work.
|
|
15
|
+
access_tests_for :edit,
|
|
16
|
+
url_helper: 'edit_password_reset_path(\'invalid-token\')',
|
|
17
|
+
anon_failure: 'root_url',
|
|
18
|
+
allow_anon: false,
|
|
19
|
+
allow_admin: false
|
|
20
|
+
|
|
21
|
+
test 'password resets' do
|
|
22
|
+
get new_password_reset_path
|
|
23
|
+
assert_template 'password_resets/new'
|
|
24
|
+
|
|
25
|
+
# invalid email
|
|
26
|
+
post password_resets_path, password_reset: { email: 'nobody@example.com' }
|
|
27
|
+
assert_not flash.empty?
|
|
28
|
+
assert_redirected_to root_url
|
|
29
|
+
assert_equal 1, ActionMailer::Base.deliveries.size
|
|
30
|
+
email = ActionMailer::Base.deliveries.last
|
|
31
|
+
assert_match 'email address is not associated with an existing account', email.body.encoded
|
|
32
|
+
|
|
33
|
+
# valid email
|
|
34
|
+
post password_resets_path, password_reset: { email: @user.email }
|
|
35
|
+
assert_not_equal @user.reset_digest, @user.reload.reset_digest
|
|
36
|
+
user = assigns(:user)
|
|
37
|
+
assert_equal 2, ActionMailer::Base.deliveries.size
|
|
38
|
+
email = ActionMailer::Base.deliveries.last
|
|
39
|
+
assert_match edit_password_reset_path(id: user.reset_token, email: user.email), email.body.encoded
|
|
40
|
+
assert_not flash.empty?
|
|
41
|
+
assert_redirected_to root_url
|
|
42
|
+
|
|
43
|
+
# wrong email
|
|
44
|
+
get edit_password_reset_path(user.reset_token, email: 'nobody@example.com')
|
|
45
|
+
assert_redirected_to root_url
|
|
46
|
+
|
|
47
|
+
# inactive user
|
|
48
|
+
user.toggle!(:activated)
|
|
49
|
+
get edit_password_reset_path(user.reset_token, email: user.email)
|
|
50
|
+
assert_redirected_to root_url
|
|
51
|
+
user.toggle!(:activated)
|
|
52
|
+
|
|
53
|
+
# disabled user
|
|
54
|
+
user.toggle!(:enabled)
|
|
55
|
+
get edit_password_reset_path(user.reset_token, email: user.email)
|
|
56
|
+
assert_redirected_to root_url
|
|
57
|
+
user.toggle!(:enabled)
|
|
58
|
+
|
|
59
|
+
# wrong token
|
|
60
|
+
get edit_password_reset_path('wrong token', email: user.email)
|
|
61
|
+
assert_redirected_to root_url
|
|
62
|
+
|
|
63
|
+
# right email and token
|
|
64
|
+
get edit_password_reset_path(user.reset_token, email: user.email)
|
|
65
|
+
assert_template 'password_resets/edit'
|
|
66
|
+
assert_select 'input[name=email][type=hidden][value=?]', user.email
|
|
67
|
+
|
|
68
|
+
# invalid password and confirmation
|
|
69
|
+
patch password_reset_path(user.reset_token), email: user.email, user: { password: 'foobar', password_confirmation: 'bar-bq' }
|
|
70
|
+
assert_select 'div#error_explanation'
|
|
71
|
+
|
|
72
|
+
# empty password
|
|
73
|
+
patch password_reset_path(user.reset_token), email: user.email, user: { password: '', password_confirmation: '' }
|
|
74
|
+
assert_select 'div#error_explanation'
|
|
75
|
+
|
|
76
|
+
# valid password & confirmation
|
|
77
|
+
patch password_reset_path(user.reset_token), email: user.email, user: { password: 'foobaz', password_confirmation: 'foobaz' }
|
|
78
|
+
assert is_logged_in?
|
|
79
|
+
assert_not flash.empty?
|
|
80
|
+
assert_redirected_to user
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
test 'expired token' do
|
|
84
|
+
get new_password_reset_path
|
|
85
|
+
post password_resets_path, password_reset: { email: @user.email }
|
|
86
|
+
@user = assigns(:user)
|
|
87
|
+
@user.update_attribute(:reset_sent_at, 3.hours.ago)
|
|
88
|
+
patch password_reset_path(@user.reset_token),
|
|
89
|
+
email: @user.email,
|
|
90
|
+
user: {
|
|
91
|
+
password: 'foobar',
|
|
92
|
+
password_confirmation: 'foobar'
|
|
93
|
+
}
|
|
94
|
+
assert_response :redirect
|
|
95
|
+
follow_redirect!
|
|
96
|
+
assert_not flash.empty?
|
|
97
|
+
regex = /password\sreset\srequest\shas\sexpired/i
|
|
98
|
+
assert_match regex, response.body
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
end
|