hydra-head 4.1.3 → 5.0.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- metadata +28 -617
- data/.gitignore +0 -73
- data/.gitmodules +0 -4
- data/Gemfile +0 -14
- data/HISTORY.textile +0 -99
- data/INSTALL_PREREQ.textile +0 -3
- data/LICENSE +0 -14
- data/README.textile +0 -129
- data/Rakefile +0 -5
- data/app/assets/images/hydra/powered_by_hydra.png +0 -0
- data/app/assets/images/hydra/search-button.png +0 -0
- data/app/assets/javascripts/date-picker/booking/index.html +0 -368
- data/app/assets/javascripts/date-picker/calendarHTML.txt +0 -84
- data/app/assets/javascripts/date-picker/css/datepicker.css +0 -511
- data/app/assets/javascripts/date-picker/css/demo.css +0 -229
- data/app/assets/javascripts/date-picker/index.html +0 -798
- data/app/assets/javascripts/date-picker/js/datepicker.js +0 -2898
- data/app/assets/javascripts/date-picker/js/datepicker.packed.js +0 -1
- data/app/assets/javascripts/date-picker/js/lang/ar.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/cs.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/da.js +0 -10
- data/app/assets/javascripts/date-picker/js/lang/de.js +0 -10
- data/app/assets/javascripts/date-picker/js/lang/en.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/eo.js +0 -13
- data/app/assets/javascripts/date-picker/js/lang/es.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/et.js +0 -23
- data/app/assets/javascripts/date-picker/js/lang/fi.js +0 -7
- data/app/assets/javascripts/date-picker/js/lang/fr.js +0 -69
- data/app/assets/javascripts/date-picker/js/lang/he.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/hu.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/id.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/it.js +0 -11
- data/app/assets/javascripts/date-picker/js/lang/kr.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/lt.js +0 -8
- data/app/assets/javascripts/date-picker/js/lang/lv.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/nl.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/no.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/pl.js +0 -10
- data/app/assets/javascripts/date-picker/js/lang/pt-br.js +0 -11
- data/app/assets/javascripts/date-picker/js/lang/pt.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/ru.js +0 -11
- data/app/assets/javascripts/date-picker/js/lang/se.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/si.js +0 -9
- data/app/assets/javascripts/date-picker/js/lang/tr.js +0 -9
- data/app/assets/javascripts/date-picker/language/index.html +0 -240
- data/app/assets/javascripts/date-picker/media/Thumbs.db +0 -0
- data/app/assets/javascripts/date-picker/media/backstripes.gif +0 -0
- data/app/assets/javascripts/date-picker/media/bg_header.jpg +0 -0
- data/app/assets/javascripts/date-picker/media/bullet1.gif +0 -0
- data/app/assets/javascripts/date-picker/media/bullet2.gif +0 -0
- data/app/assets/javascripts/date-picker/media/cal-grey.gif +0 -0
- data/app/assets/javascripts/date-picker/media/cal.gif +0 -0
- data/app/assets/javascripts/date-picker/media/gradient-e5e5e5-ffffff.gif +0 -0
- data/app/assets/javascripts/hydra/hydra-head.js +0 -195
- data/app/assets/javascripts/hydra/mediashelf.datepicker.js +0 -39
- data/app/assets/javascripts/hydra/mediashelf.placeholder.js +0 -67
- data/app/assets/javascripts/jquery.form.js +0 -1076
- data/app/assets/javascripts/jquery.ui.datepicker.js +0 -1793
- data/app/assets/javascripts/spin.min.js +0 -2
- data/app/assets/stylesheets/hydra/html_refactor.css +0 -79
- data/app/assets/stylesheets/hydra/hydrangea-split-button.css +0 -18
- data/app/assets/stylesheets/hydra/hydrangea.css +0 -288
- data/app/assets/stylesheets/hydra/ie-styles.css +0 -149
- data/app/assets/stylesheets/hydra/styles.css +0 -946
- data/app/assets/stylesheets/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-icons_217bc0_256x240.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-icons_469bdd_256x240.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-icons_6da8d5_256x240.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-icons_d8e7f3_256x240.png +0 -0
- data/app/assets/stylesheets/redmond/images/ui-icons_f9bd01_256x240.png +0 -0
- data/app/assets/stylesheets/redmond/jquery-ui-1.8.5.custom.css +0 -572
- data/app/controllers/downloads_controller.rb +0 -20
- data/app/controllers/hydra/application_controller.rb +0 -5
- data/app/controllers/hydra/assets_controller.rb +0 -12
- data/app/controllers/hydra/contributors_controller.rb +0 -115
- data/app/controllers/hydra/file_assets_controller.rb +0 -3
- data/app/controllers/hydra/permissions_controller.rb +0 -117
- data/app/controllers/user_sessions_controller.rb +0 -13
- data/app/helpers/application_helper.rb +0 -3
- data/app/helpers/article_metadata_helper.rb +0 -4
- data/app/helpers/blacklight_helper.rb +0 -4
- data/app/helpers/downloads_helper.rb +0 -4
- data/app/helpers/facets_helper.rb +0 -4
- data/app/helpers/generic_content_objects_helper.rb +0 -4
- data/app/helpers/hydra/application_helper_behavior.rb +0 -8
- data/app/helpers/hydra/article_metadata_helper_behavior.rb +0 -95
- data/app/helpers/hydra/blacklight_helper_behavior.rb +0 -128
- data/app/helpers/hydra/downloads_helper_behavior.rb +0 -24
- data/app/helpers/hydra/facets_helper_behavior.rb +0 -34
- data/app/helpers/hydra/generic_content_objects_helper_behavior.rb +0 -17
- data/app/helpers/hydra/hydra_assets_helper_behavior.rb +0 -76
- data/app/helpers/hydra/hydra_fedora_metadata_helper_behavior.rb +0 -379
- data/app/helpers/hydra/hydra_helper_behavior.rb +0 -195
- data/app/helpers/hydra/hydra_uploader_helper_behavior.rb +0 -23
- data/app/helpers/hydra/inline_editable_metadata_helper_behavior.rb +0 -21
- data/app/helpers/hydra/javascript_includes_helper_behavior.rb +0 -94
- data/app/helpers/hydra/personalization_helper_behavior.rb +0 -49
- data/app/helpers/hydra/release_process_helper_behavior.rb +0 -37
- data/app/helpers/hydra_assets_helper.rb +0 -4
- data/app/helpers/hydra_fedora_metadata_helper.rb +0 -4
- data/app/helpers/hydra_helper.rb +0 -4
- data/app/helpers/hydra_uploader_helper.rb +0 -4
- data/app/helpers/inline_editable_metadata_helper.rb +0 -4
- data/app/helpers/javascript_includes_helper.rb +0 -4
- data/app/helpers/personalization_helper.rb +0 -4
- data/app/helpers/release_process_helper.rb +0 -4
- data/app/models/file_asset.rb +0 -5
- data/app/models/generic_content.rb +0 -26
- data/app/models/generic_image.rb +0 -67
- data/app/models/hydra/datastream/properties.rb +0 -24
- data/app/models/mods_asset.rb +0 -24
- data/app/models/superuser.rb +0 -14
- data/app/models/user_attribute.rb +0 -37
- data/app/models/uses_default_partials.rb +0 -23
- data/app/views/_add_assets_links.html.erb +0 -14
- data/app/views/_flash_msg.html.erb +0 -5
- data/app/views/_user_util_links.html.erb +0 -31
- data/app/views/catalog/_citation.html.erb +0 -11
- data/app/views/catalog/_constraints_element.html.erb +0 -34
- data/app/views/catalog/_delete_partials/_default.html.erb +0 -22
- data/app/views/catalog/_document_list.html.erb +0 -11
- data/app/views/catalog/_edit_partials/_default.html.erb +0 -57
- data/app/views/catalog/_edit_partials/_default_details.html.erb +0 -13
- data/app/views/catalog/_facets.html.erb +0 -37
- data/app/views/catalog/_home.html.erb +0 -6
- data/app/views/catalog/_home_text.html.erb +0 -4
- data/app/views/catalog/_index_partials/_default.html.erb +0 -20
- data/app/views/catalog/_index_partials/_default_details.html.erb +0 -14
- data/app/views/catalog/_index_partials/_default_group.html.erb +0 -15
- data/app/views/catalog/_opensearch_response_metadata.html.erb +0 -2
- data/app/views/catalog/_show_partials/_default.html.erb +0 -21
- data/app/views/catalog/_show_partials/_default_details.html.erb +0 -15
- data/app/views/catalog/_show_partials/_facets.html.erb +0 -52
- data/app/views/catalog/_sms_form.html.erb +0 -21
- data/app/views/catalog/_sort_and_per_page.html.erb +0 -23
- data/app/views/catalog/_uva_tabs.html.erb +0 -10
- data/app/views/catalog/about.html.erb +0 -0
- data/app/views/catalog/show.html.erb +0 -40
- data/app/views/contributors/_add_contributor_split_button.html.erb +0 -10
- data/app/views/contributors/_edit_conference.html.erb +0 -29
- data/app/views/contributors/_edit_organization.html.erb +0 -29
- data/app/views/contributors/_edit_person.html.erb +0 -39
- data/app/views/contributors/_index.html.erb +0 -11
- data/app/views/contributors/_new.html.erb +0 -10
- data/app/views/contributors/_show_conference.html.erb +0 -12
- data/app/views/contributors/_show_organization.html.erb +0 -21
- data/app/views/contributors/_show_person.html.erb +0 -17
- data/app/views/contributors/new.html.erb +0 -14
- data/app/views/downloads/index.html.erb +0 -1
- data/app/views/generic_content_objects/_contributor_form.html.erb +0 -11
- data/app/views/generic_content_objects/_description_form.html.erb +0 -7
- data/app/views/generic_content_objects/_edit_description.html.erb +0 -23
- data/app/views/generic_content_objects/_new.html.erb +0 -0
- data/app/views/generic_content_objects/_show_description.html.erb +0 -41
- data/app/views/generic_contents/_edit.html.erb +0 -10
- data/app/views/generic_contents/_index.html.erb +0 -21
- data/app/views/generic_contents/_show.html.erb +0 -6
- data/app/views/generic_contents/_show_content.html.erb +0 -7
- data/app/views/generic_images/_edit.html.erb +0 -36
- data/app/views/generic_images/_index.html.erb +0 -24
- data/app/views/generic_images/_show.html.erb +0 -13
- data/app/views/generic_images/_show_all.html.erb +0 -14
- data/app/views/generic_images/_show_content.html.erb +0 -7
- data/app/views/hydra/file_assets/_asset_saved_flash.html.erb +0 -2
- data/app/views/hydra/file_assets/_deletable_result.html.erb +0 -5
- data/app/views/hydra/file_assets/_file_assets_form.html.erb +0 -11
- data/app/views/hydra/file_assets/_index.html.erb +0 -29
- data/app/views/hydra/file_assets/_new.html.erb +0 -6
- data/app/views/hydra/file_assets/_result.html.erb +0 -11
- data/app/views/hydra/file_assets/index.html.erb +0 -5
- data/app/views/hydra/permissions/_edit_person_permissions.html.erb +0 -30
- data/app/views/hydra/permissions/_index.html.erb +0 -46
- data/app/views/hydra/permissions/_new.html.erb +0 -14
- data/app/views/hydra/permissions/_permissions_form.html.erb +0 -23
- data/app/views/hydra/permissions/index.html.erb +0 -1
- data/app/views/hydra/permissions/new.html.erb +0 -1
- data/app/views/layouts/hydra-head.html.erb +0 -47
- data/app/views/mods_assets/_additional_info_form.html.erb +0 -44
- data/app/views/mods_assets/_contributor_form.html.erb +0 -14
- data/app/views/mods_assets/_edit.html.erb +0 -10
- data/app/views/mods_assets/_edit_description.html.erb +0 -73
- data/app/views/mods_assets/_edit_journal.html.erb +0 -57
- data/app/views/mods_assets/_index.html.erb +0 -1
- data/app/views/mods_assets/_index_list.html.erb +0 -37
- data/app/views/mods_assets/_index_table.html.erb +0 -7
- data/app/views/mods_assets/_progress_box.html.erb +0 -82
- data/app/views/mods_assets/_publication_form.html.erb +0 -13
- data/app/views/mods_assets/_show.html.erb +0 -39
- data/app/views/mods_assets/_show_additional_info.html.erb +0 -17
- data/app/views/mods_assets/_show_contributors.html.erb +0 -7
- data/app/views/mods_assets/_show_description.html.erb +0 -35
- data/app/views/mods_assets/_show_file_assets.html.erb +0 -22
- data/app/views/mods_assets/_show_journal.html.erb +0 -42
- data/app/views/mods_assets/_show_permissions.html.erb +0 -15
- data/app/views/mods_assets/_show_publication.html.erb +0 -8
- data/app/views/shared/_delete_asset_confirmation.html.erb +0 -17
- data/app/views/user_sessions/_login_form.html.erb +0 -10
- data/app/views/user_sessions/logged_out.html.erb +0 -1
- data/config/fedora.yml +0 -15
- data/config/jetty.yml +0 -6
- data/config/locales/hydra.en.yml +0 -7
- data/config/role_map_cucumber.yml +0 -10
- data/config/role_map_development.yml +0 -12
- data/config/role_map_production.yml +0 -2
- data/config/role_map_test.yml +0 -14
- data/config/routes.rb +0 -12
- data/config/solr.yml +0 -9
- data/config/solr_mappings.yml +0 -22
- data/db/migrate/20101105214243_add_user_attributes_table.rb +0 -15
- data/db/migrate/20101108192527_create_superusers.rb +0 -12
- data/fedora_conf/conf/development/fedora.fcfg +0 -1021
- data/fedora_conf/conf/test/fedora.fcfg +0 -1021
- data/hydra-head.gemspec +0 -41
- data/init.rb +0 -4
- data/install.rb +0 -1
- data/lib/application_helper.rb +0 -3
- data/lib/generators/hydra/assets_generator.rb +0 -50
- data/lib/generators/hydra/cucumber_support_generator.rb +0 -29
- data/lib/generators/hydra/head_generator.rb +0 -165
- data/lib/generators/hydra/hyhead_fixtures_generator.rb +0 -27
- data/lib/generators/hydra/templates/catalog_controller.rb +0 -162
- data/lib/generators/hydra/templates/config/fedora.yml +0 -14
- data/lib/generators/hydra/templates/config/initializers/action_dispatch_http_upload_monkey_patch.rb +0 -12
- data/lib/generators/hydra/templates/config/initializers/hydra_config.rb +0 -44
- data/lib/generators/hydra/templates/config/role_map_cucumber.yml +0 -10
- data/lib/generators/hydra/templates/config/role_map_development.yml +0 -12
- data/lib/generators/hydra/templates/config/role_map_production.yml +0 -2
- data/lib/generators/hydra/templates/config/role_map_test.yml +0 -15
- data/lib/generators/hydra/templates/config/solr.yml +0 -10
- data/lib/generators/hydra/templates/config/solr_mappings.yml +0 -22
- data/lib/generators/hydra/templates/fedora_conf/conf/development/fedora.fcfg +0 -1021
- data/lib/generators/hydra/templates/fedora_conf/conf/test/fedora.fcfg +0 -1021
- data/lib/generators/hydra/templates/migrations/create_superusers.rb +0 -12
- data/lib/generators/hydra/templates/solr_conf/conf/schema.xml +0 -124
- data/lib/generators/hydra/templates/solr_conf/conf/solrconfig.xml +0 -394
- data/lib/generators/hydra/templates/solr_conf/solr.xml +0 -35
- data/lib/hydra-head.rb +0 -29
- data/lib/hydra-head/controller.rb +0 -29
- data/lib/hydra-head/engine.rb +0 -29
- data/lib/hydra-head/routes.rb +0 -90
- data/lib/hydra-head/version.rb +0 -4
- data/lib/hydra.rb +0 -52
- data/lib/hydra/assets.rb +0 -7
- data/lib/hydra/assets_controller_helper.rb +0 -122
- data/lib/hydra/catalog.rb +0 -11
- data/lib/hydra/controller.rb +0 -26
- data/lib/hydra/controller/assets_controller_behavior.rb +0 -143
- data/lib/hydra/controller/catalog_controller_behavior.rb +0 -56
- data/lib/hydra/controller/controller_behavior.rb +0 -59
- data/lib/hydra/controller/file_assets_behavior.rb +0 -144
- data/lib/hydra/controller/repository_controller_behavior.rb +0 -119
- data/lib/hydra/controller/upload_behavior.rb +0 -139
- data/lib/hydra/file_assets.rb +0 -11
- data/lib/hydra/file_assets_helper.rb +0 -12
- data/lib/hydra/generic_content.rb +0 -130
- data/lib/hydra/generic_image.rb +0 -112
- data/lib/hydra/generic_user_attributes.rb +0 -41
- data/lib/hydra/global_configurable.rb +0 -46
- data/lib/hydra/model_methods.rb +0 -104
- data/lib/hydra/model_mixins.rb +0 -8
- data/lib/hydra/model_mixins/common_metadata.rb +0 -25
- data/lib/hydra/model_mixins/solr_document_extension.rb +0 -24
- data/lib/hydra/models/file_asset.rb +0 -78
- data/lib/hydra/repository_controller.rb +0 -28
- data/lib/hydra/rights_metadata.rb +0 -194
- data/lib/hydra/solr.rb +0 -9
- data/lib/hydra/submission_workflow.rb +0 -138
- data/lib/hydra/superuser_attributes.rb +0 -19
- data/lib/hydra/ui.rb +0 -6
- data/lib/hydra/ui/controller.rb +0 -46
- data/lib/hydra/workflow.rb +0 -5
- data/lib/hydra/workflow/controller.rb +0 -3
- data/lib/mediashelf/active_fedora_helper.rb +0 -73
- data/lib/prev_next_links.rb +0 -33
- data/lib/railties/active-fedora.rake +0 -1
- data/lib/railties/hydra-fixtures.rake +0 -50
- data/lib/railties/hydra_jetty.rake +0 -53
- data/lib/user_attributes_loader.rb +0 -26
- data/solr/conf/schema.xml +0 -116
- data/solr/conf/solrconfig.xml +0 -311
- data/solr/solr.xml +0 -35
- data/solr_conf/conf/schema.xml +0 -124
- data/solr_conf/conf/solrconfig.xml +0 -394
- data/solr_conf/solr.xml +0 -35
- data/tasks/active-fedora.rake +0 -1
- data/tasks/hydra-head-fixtures.rake +0 -58
- data/tasks/hydra-head.rake +0 -209
- data/tasks/hydra_jetty.rake +0 -53
- data/tasks/hyhead_rspec.rake +0 -57
- data/tasks/replicator.rake +0 -27
- data/tasks/solrizer-fedora.rake +0 -53
- data/tasks/solrizer.rake +0 -13
- data/test_support/etc/Gemfile +0 -46
- data/test_support/etc/common_metadata_asset.rb +0 -18
- data/test_support/features/absent_model_edit.feature +0 -27
- data/test_support/features/absent_model_search_result.feature +0 -18
- data/test_support/features/absent_model_show.feature +0 -27
- data/test_support/features/button_add_assets.feature +0 -22
- data/test_support/features/button_add_generic_content.feature +0 -11
- data/test_support/features/button_add_image.feature +0 -11
- data/test_support/features/button_add_mods_asset.feature +0 -11
- data/test_support/features/button_delete_asset.feature +0 -13
- data/test_support/features/contributor_add.feature +0 -44
- data/test_support/features/default_partials_edit.feature +0 -27
- data/test_support/features/default_partials_search_result.feature +0 -22
- data/test_support/features/default_partials_show.feature +0 -24
- data/test_support/features/file_upload.feature +0 -80
- data/test_support/features/generic_content_create.feature +0 -7
- data/test_support/features/generic_content_edit.feature +0 -21
- data/test_support/features/generic_content_search_result.feature +0 -22
- data/test_support/features/generic_content_show.feature +0 -20
- data/test_support/features/generic_image_create.feature +0 -7
- data/test_support/features/generic_image_edit.feature +0 -21
- data/test_support/features/generic_image_search_result.feature +0 -22
- data/test_support/features/generic_image_show.feature +0 -20
- data/test_support/features/home_page.feature +0 -9
- data/test_support/features/html_validity.feature +0 -43
- data/test_support/features/mods_asset_contributors_edit.feature +0 -88
- data/test_support/features/mods_asset_create.feature +0 -17
- data/test_support/features/mods_asset_edit.feature +0 -65
- data/test_support/features/mods_asset_edit_without_permission.feature +0 -15
- data/test_support/features/mods_asset_search_result.feature +0 -24
- data/test_support/features/mods_asset_show.feature +0 -90
- data/test_support/features/nonexistent_object_show.feature +0 -9
- data/test_support/features/permissions_add.feature +0 -16
- data/test_support/features/permissions_edit.feature +0 -65
- data/test_support/features/step_definitions/catalog_index_steps.rb +0 -14
- data/test_support/features/step_definitions/create_asset_steps.rb +0 -3
- data/test_support/features/step_definitions/edit_metadata_steps.rb +0 -72
- data/test_support/features/step_definitions/file_list_steps.rb +0 -36
- data/test_support/features/step_definitions/html_validity_steps.rb +0 -64
- data/test_support/features/step_definitions/hydra_metadata_steps.rb +0 -3
- data/test_support/features/step_definitions/hydra_steps.rb +0 -8
- data/test_support/features/step_definitions/inline_editable_edit_steps.rb +0 -77
- data/test_support/features/step_definitions/search_steps.rb +0 -88
- data/test_support/features/step_definitions/searching_steps.rb +0 -22
- data/test_support/features/step_definitions/show_document_steps.rb +0 -89
- data/test_support/features/step_definitions/user_steps.rb +0 -42
- data/test_support/features/step_definitions/web_steps.rb +0 -223
- data/test_support/features/support/env.rb +0 -57
- data/test_support/features/support/paths.rb +0 -85
- data/test_support/features/switch_users.feature +0 -14
- data/test_support/features/view_catalog_index.feature +0 -18
- data/test_support/fixtures/empty_file.txt +0 -0
- data/test_support/fixtures/hydra_test_default_partials.foxml.xml +0 -80
- data/test_support/fixtures/hydra_test_generic_content.foxml.xml +0 -138
- data/test_support/fixtures/hydra_test_generic_image.foxml.xml +0 -395
- data/test_support/fixtures/hydra_test_no_model.foxml.xml +0 -79
- data/test_support/fixtures/hydrangea_fixture_archivist_only_mods_article.foxml.xml +0 -1212
- data/test_support/fixtures/hydrangea_fixture_file_asset1.foxml.xml +0 -4946
- data/test_support/fixtures/hydrangea_fixture_mods_article1.foxml.xml +0 -234
- data/test_support/fixtures/hydrangea_fixture_mods_article2.foxml.xml +0 -177
- data/test_support/fixtures/hydrangea_fixture_mods_article3.foxml.xml +0 -170
- data/test_support/fixtures/hydrangea_fixture_mods_dataset1.foxml.xml +0 -187
- data/test_support/fixtures/hydrangea_fixture_uploaded_svg1.foxml.xml +0 -676
- data/test_support/fixtures/hydrus_admin_class1.foxml.xml +0 -176
- data/test_support/fixtures/image.jp2 +0 -0
- data/test_support/fixtures/libra-oa_1.foxml.xml +0 -2324
- data/test_support/fixtures/libra-oa_2.foxml.xml +0 -2422
- data/test_support/fixtures/libra-oa_7.foxml.xml +0 -1735
- data/test_support/fixtures/small_file.txt +0 -1
- data/test_support/spec/controllers/catalog_controller_spec.rb +0 -138
- data/test_support/spec/controllers/catalog_controller_viewing_context_spec.rb +0 -67
- data/test_support/spec/controllers/catalog_valid_html_spec.rb +0 -123
- data/test_support/spec/controllers/contributors_controller_spec.rb +0 -67
- data/test_support/spec/controllers/file_assets_controller_spec.rb +0 -194
- data/test_support/spec/controllers/hydra-assets_controller_spec.rb +0 -151
- data/test_support/spec/controllers/hydra_controller_spec.rb +0 -43
- data/test_support/spec/controllers/hydra_ui_controller_spec.rb +0 -21
- data/test_support/spec/controllers/permissions_controller_spec.rb +0 -39
- data/test_support/spec/controllers/user_sessions_controller_spec.rb +0 -35
- data/test_support/spec/factories.rb +0 -11
- data/test_support/spec/helpers/access_controls_enforcement_spec.rb +0 -119
- data/test_support/spec/helpers/access_controls_evaluation_spec.rb +0 -26
- data/test_support/spec/helpers/assets_controller_helper_spec.rb +0 -63
- data/test_support/spec/helpers/blacklight_helper_spec.rb +0 -60
- data/test_support/spec/helpers/file_assets_helper_spec.rb +0 -116
- data/test_support/spec/helpers/generic_content_objects_helper_spec.rb +0 -17
- data/test_support/spec/helpers/hydra-repository_controller_spec.rb +0 -54
- data/test_support/spec/helpers/hydra_assets_helper_spec.rb +0 -143
- data/test_support/spec/helpers/hydra_fedora_metadata_helper_spec.rb +0 -255
- data/test_support/spec/helpers/hydra_helper_spec.rb +0 -105
- data/test_support/spec/helpers/hydra_model_methods_spec.rb +0 -88
- data/test_support/spec/helpers/hydra_uploader_helper_spec.rb +0 -26
- data/test_support/spec/helpers/javascript_includes_helper_spec.rb +0 -51
- data/test_support/spec/integration/file_asset_spec.rb +0 -68
- data/test_support/spec/lib/catalog_spec.rb +0 -23
- data/test_support/spec/lib/global_configurable_spec.rb +0 -98
- data/test_support/spec/lib/hydra_submission_workflow_spec.rb +0 -141
- data/test_support/spec/lib/model_methods_spec.rb +0 -29
- data/test_support/spec/models/file_asset_spec.rb +0 -25
- data/test_support/spec/models/generic_content_spec.rb +0 -39
- data/test_support/spec/models/generic_image_spec.rb +0 -75
- data/test_support/spec/models/mods_asset_spec.rb +0 -20
- data/test_support/spec/models/solr_document_spec.rb +0 -17
- data/test_support/spec/models/user_spec.rb +0 -94
- data/test_support/spec/rcov.opts +0 -3
- data/test_support/spec/spec.opts +0 -4
- data/test_support/spec/spec_helper.rb +0 -63
- data/test_support/spec/support/matchers/helper_matcher.rb +0 -14
- data/test_support/spec/support/matchers/solr_matchers.rb +0 -60
- data/test_support/spec/unit/hydra-head-engine_spec.rb +0 -8
- data/test_support/spec/unit/hydra-head_spec.rb +0 -8
@@ -1 +0,0 @@
|
|
1
|
-
small
|
@@ -1,138 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
-
require 'mocha'
|
3
|
-
|
4
|
-
|
5
|
-
# See cucumber tests (ie. /features/edit_document.feature) for more tests, including ones that test the edit method & view
|
6
|
-
# You can run the cucumber tests with
|
7
|
-
#
|
8
|
-
# cucumber --tags @edit
|
9
|
-
# or
|
10
|
-
# rake cucumber
|
11
|
-
|
12
|
-
describe CatalogController do
|
13
|
-
before :all do
|
14
|
-
@behavior = Hydra::Controller::CatalogControllerBehavior.deprecation_behavior
|
15
|
-
Hydra::Controller::CatalogControllerBehavior.deprecation_behavior = :silence
|
16
|
-
end
|
17
|
-
|
18
|
-
after :all do
|
19
|
-
Hydra::Controller::CatalogControllerBehavior.deprecation_behavior = @behavior
|
20
|
-
end
|
21
|
-
|
22
|
-
before do
|
23
|
-
#controller.stubs(:protect_from_forgery).returns("meh")
|
24
|
-
session[:user]='bob'
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should use CatalogController" do
|
28
|
-
controller.should be_an_instance_of(CatalogController)
|
29
|
-
end
|
30
|
-
|
31
|
-
|
32
|
-
describe "Paths Generated by Custom Routes:" do
|
33
|
-
# paths generated by custom routes
|
34
|
-
it "should map {:controller=>'catalog', :action=>'index'} to GET /catalog" do
|
35
|
-
{ :get => "/catalog" }.should route_to(:controller => 'catalog', :action => 'index')
|
36
|
-
end
|
37
|
-
it "should map {:controller=>'catalog', :action=>'show', :id=>'test:3'} to GET /catalog/test:3" do
|
38
|
-
{ :get => "/catalog/test:3" }.should route_to(:controller => 'catalog', :action => 'show', :id=>'test:3')
|
39
|
-
end
|
40
|
-
it "should map {:controller=>'catalog', :action=>'edit', :id=>'test:3'} to GET /catalog/test:3" do
|
41
|
-
{ :get => "/catalog/test:3/edit" }.should route_to(:controller => 'catalog', :action => 'edit', :id=>'test:3')
|
42
|
-
end
|
43
|
-
|
44
|
-
it "should map catalog_path" do
|
45
|
-
# catalog_path.should == '/catalog'
|
46
|
-
catalog_path("test:3").should == '/catalog/test:3'
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should not choke on objects with periods in ids (ie Fedora system objects)" do
|
51
|
-
pending "Need to override blacklight routes"
|
52
|
-
|
53
|
-
## We could do something like this to remove the catalog/show route and replace it with a route that allows dots (e.g. resources :catalog, :id=> /.+/)
|
54
|
-
# def add_route
|
55
|
-
# new_route = ActionController::Routing::Routes.builder.build(name, route_options)
|
56
|
-
# ActionController::Routing::Routes.routes.insert(0, new_route)
|
57
|
-
# end
|
58
|
-
|
59
|
-
# def remove_route
|
60
|
-
# ActionController::Routing::Routes.routes.reject! { |r| r.instance_variable_get(:@requirements)[:slug_id] == id }
|
61
|
-
# end
|
62
|
-
|
63
|
-
catalog_path("fedora-system:FedoraObject-3.0").should == '/catalog/fedora-system:FedoraObject-3.0'
|
64
|
-
{ :get => "/catalog/fedora-system:FedoraObject-3.0" }.should route_to(:controller => 'catalog', :action => 'show', :id=>'fedora-system:FedoraObject-3.0')
|
65
|
-
end
|
66
|
-
|
67
|
-
describe "index" do
|
68
|
-
|
69
|
-
describe "access controls" do
|
70
|
-
before(:all) do
|
71
|
-
@public_only_results = Blacklight.solr.find Hash[:fq=>"access_t:public"]
|
72
|
-
# @public_only_results = Blacklight.solr.find Hash[:phrases=>{:access_t=>"public"}]
|
73
|
-
# @private_only_results = Blacklight.solr.find Hash[:phrases=>{:access_t=>"private"}]
|
74
|
-
@private_only_results = Blacklight.solr.find Hash[:fq=>"access_t:private"]
|
75
|
-
end
|
76
|
-
|
77
|
-
it "should only return public documents if role does not have permissions" do
|
78
|
-
controller.stubs(:current_user).returns(nil)
|
79
|
-
get :index
|
80
|
-
assigns(:document_list).count.should == @public_only_results.docs.count
|
81
|
-
end
|
82
|
-
it "should return all documents if role does have permissions" do
|
83
|
-
mock_user = FactoryGirl.create(:user, :email=>"BigWig@example.com")
|
84
|
-
# session[:superuser_mode] = true
|
85
|
-
mock_user.stubs(:is_being_superuser?).returns(true)
|
86
|
-
#sign_in mock_user
|
87
|
-
controller.stubs(:current_user).returns(mock_user)
|
88
|
-
get :index
|
89
|
-
### This fails when there are more than 10 public documents in the solr index
|
90
|
-
### TODO: instead, expect a certain query(especially the :fq component) to solr
|
91
|
-
assigns(:document_list).count.should > @public_only_results.docs.count
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
describe "edit" do
|
97
|
-
|
98
|
-
it "should trigger show action" do
|
99
|
-
controller.expects(:show)
|
100
|
-
controller.stubs(:enforce_access_controls)
|
101
|
-
controller.stubs(:load_fedora_document)
|
102
|
-
get :edit, :id=>'hydrangea:fixture_mods_article1'
|
103
|
-
end
|
104
|
-
it "should render show template (which then delegates to edit partials)" do
|
105
|
-
controller.stubs(:enforce_access_controls)
|
106
|
-
controller.stubs(:load_fedora_document)
|
107
|
-
get :edit, :id=>'hydrangea:fixture_mods_article1'
|
108
|
-
response.should render_template("show")
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
describe "filters" do
|
113
|
-
describe "index" do
|
114
|
-
it "should trigger enforce_index_permissions" do
|
115
|
-
controller.expects(:add_access_controls_to_solr_params)
|
116
|
-
controller.expects(:enforce_index_permissions)
|
117
|
-
get :index
|
118
|
-
end
|
119
|
-
end
|
120
|
-
describe "show" do
|
121
|
-
it "should trigger enforce_show_permissions and load_fedora_document" do
|
122
|
-
controller.stubs(:current_user).returns(nil)
|
123
|
-
controller.expects(:load_fedora_document)
|
124
|
-
controller.expects(:enforce_show_permissions)
|
125
|
-
get :show, :id=>'test:3'
|
126
|
-
end
|
127
|
-
end
|
128
|
-
describe "edit" do
|
129
|
-
it "should trigger enforce_edit_permissions and load_fedora_document" do
|
130
|
-
controller.stubs(:current_user).returns(nil)
|
131
|
-
controller.expects(:load_fedora_document)
|
132
|
-
controller.expects(:enforce_edit_permissions)
|
133
|
-
get :edit, :id=>'test:3'
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
end
|
@@ -1,67 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
-
|
3
|
-
|
4
|
-
# See cucumber tests (ie. /features/edit_document.feature) for more tests, including ones that test the edit method & view
|
5
|
-
# You can run the cucumber tests with
|
6
|
-
#
|
7
|
-
# cucumber --tags @edit
|
8
|
-
# or
|
9
|
-
# rake cucumber
|
10
|
-
|
11
|
-
describe CatalogController do
|
12
|
-
before :all do
|
13
|
-
@behavior = Hydra::Controller::CatalogControllerBehavior.deprecation_behavior
|
14
|
-
Hydra::Controller::CatalogControllerBehavior.deprecation_behavior = :silence
|
15
|
-
end
|
16
|
-
|
17
|
-
after :all do
|
18
|
-
Hydra::Controller::CatalogControllerBehavior.deprecation_behavior = @behavior
|
19
|
-
end
|
20
|
-
|
21
|
-
|
22
|
-
before do
|
23
|
-
controller.stubs(:load_fedora_document)
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "show" do
|
27
|
-
it "should redirect to edit view if session is in edit context and user has edit permission" do
|
28
|
-
controller.stubs(:can?).returns(true)
|
29
|
-
controller.session[:viewing_context] = "edit"
|
30
|
-
get(:show, {:id=>"hydrangea:fixture_mods_article1"})
|
31
|
-
response.should redirect_to(:action => 'edit')
|
32
|
-
end
|
33
|
-
it "should allow you to reset the session context to browse using :viewing_context param" do
|
34
|
-
controller.stubs(:can?).returns(true)
|
35
|
-
controller.session[:viewing_context] = "edit"
|
36
|
-
get(:show, :id=>"hydrangea:fixture_mods_article1", :viewing_context=>"browse")
|
37
|
-
session[:viewing_context].should == "browse"
|
38
|
-
response.should_not redirect_to(:action => 'edit')
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should quietly switch session state to browse if user does not have edit permissions" do
|
42
|
-
controller.stubs(:can?).with(:edit, anything()).returns(false)
|
43
|
-
controller.stubs(:can?).with(:read, anything()).returns(true)
|
44
|
-
controller.session[:viewing_context] = "edit"
|
45
|
-
get(:show, {:id=>"hydrangea:fixture_mods_article1"})
|
46
|
-
session[:viewing_context].should == "browse"
|
47
|
-
response.should_not redirect_to(:action => 'edit')
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
describe "edit" do
|
52
|
-
it "should enforce edit permissions, redirecting to show action and resetting session context if user does not have edit permissions" do
|
53
|
-
mock_user = FactoryGirl.build(:user, :email => "patron1@example.com")
|
54
|
-
sign_in mock_user
|
55
|
-
|
56
|
-
get :edit, :id=>"hydrangea:fixture_mods_article1"
|
57
|
-
response.should redirect_to(:action => 'show')
|
58
|
-
flash[:alert].should == "You do not have sufficient privileges to edit this document. You have been redirected to the read-only view."
|
59
|
-
end
|
60
|
-
it "should render normally if user has edit permissions" do
|
61
|
-
controller.expects(:can?).with(:edit, anything()).returns(true)
|
62
|
-
get :edit, :id=>"hydrangea:fixture_mods_article1"
|
63
|
-
response.should_not redirect_to(:action => 'show')
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
@@ -1,123 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
-
require 'mocha'
|
3
|
-
|
4
|
-
# This uses nokogiri to check formedness. It's slightly less strict than the markup_validit
|
5
|
-
# currently not being used.
|
6
|
-
def well_formed(html)
|
7
|
-
begin
|
8
|
-
Nokogiri::XML(html.gsub("&", "&" )) { |config| config.strict } #Literal & in text are not allowed, but we don't care.
|
9
|
-
return "ok"
|
10
|
-
rescue Nokogiri::XML::SyntaxError => e
|
11
|
-
# Write the offensive HTML to a file in tmp/html_validity_failures with a filename based on Time.now.iso8601
|
12
|
-
html_failures_dir = File.expand_path(File.dirname(__FILE__) + '/../../tmp/html_validity_failures')
|
13
|
-
FileUtils.mkdir_p(html_failures_dir)
|
14
|
-
filename = Time.now.iso8601(3).gsub(":","")+".html"
|
15
|
-
file_path = File.join(html_failures_dir, filename)
|
16
|
-
file = File.open(file_path, "w")
|
17
|
-
file.write(html)
|
18
|
-
return "#{e.inspect} -- Line: #{e.line} -- Level: #{e.level} -- Code: #{e.code}. HTML Saved to RAILS_ROOT/tmp/html_validity_failures/#{filename}"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
# This checks document for validity (if required) and well formedness
|
25
|
-
# Pass in a html string. IF you want to check for XHTML validity, do rake spec HTML_VALIDITY=true. Otherwise only document form is checked
|
26
|
-
# by nokogiri.
|
27
|
-
def document_check(html, html_validity=ENV["HTML_VALIDITY"])
|
28
|
-
if html_validity == "true" || html_validity == true
|
29
|
-
html.should be_xhtml_transitional
|
30
|
-
end
|
31
|
-
well_formed(html).should == "ok"
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
describe CatalogController do
|
36
|
-
before :all do
|
37
|
-
@behavior = Hydra::Controller::ControllerBehavior.deprecation_behavior
|
38
|
-
Hydra::Controller::ControllerBehavior.deprecation_behavior = :silence
|
39
|
-
end
|
40
|
-
|
41
|
-
after :all do
|
42
|
-
Hydra::Controller::ControllerBehavior.deprecation_behavior = @behavior
|
43
|
-
end
|
44
|
-
describe "Home Page" do
|
45
|
-
|
46
|
-
it "Should have Valid HTML when not logged in" do
|
47
|
-
controller.stubs(:current_user).returns(nil)
|
48
|
-
get("index", "controller"=>"catalog")
|
49
|
-
document_check(response.body)
|
50
|
-
end
|
51
|
-
|
52
|
-
it "Should have Valid HTML when I'm logged in" do
|
53
|
-
mock_user = FactoryGirl.build(:user, :email=>"archivist1@example.com")
|
54
|
-
mock_user.stubs(:can_be_superuser?).returns(true)
|
55
|
-
mock_user.stubs(:is_being_superuser?).returns(true)
|
56
|
-
|
57
|
-
sign_in mock_user
|
58
|
-
get("index", "controller"=>"catalog")
|
59
|
-
document_check(response.body)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
describe "Document Pages" do
|
64
|
-
|
65
|
-
before(:each) do
|
66
|
-
mock_user = FactoryGirl.build(:user, :email=>"archivist1@example.com")
|
67
|
-
mock_user.stubs(:can_be_superuser?).returns(true)
|
68
|
-
mock_user.stubs(:is_being_superuser?).returns(true)
|
69
|
-
sign_in mock_user
|
70
|
-
end
|
71
|
-
|
72
|
-
#Article Data Type
|
73
|
-
it "Should have valid html when in Article Edit Show" do
|
74
|
-
controller.session[:viewing_context] = "edit"
|
75
|
-
get(:show, {:id=>"hydrangea:fixture_mods_article1"}, :action=>"edit")
|
76
|
-
document_check(response.body)
|
77
|
-
end
|
78
|
-
|
79
|
-
it "Should have valid html when in Article Browse Show" do
|
80
|
-
|
81
|
-
controller.session[:viewing_context] = "browse"
|
82
|
-
get(:show, {:id=>"hydrangea:fixture_mods_article1"}, :action=>"browse")
|
83
|
-
document_check(response.body)
|
84
|
-
end
|
85
|
-
|
86
|
-
#Data Set Data Type
|
87
|
-
it "Should have valid html when in Dataset Edit Show" do
|
88
|
-
controller.session[:viewing_context] = "edit"
|
89
|
-
get(:show, {:id=>"hydrangea:fixture_mods_dataset1"}, :action=>"edit")
|
90
|
-
document_check(response.body)
|
91
|
-
end
|
92
|
-
|
93
|
-
it "Should have valid html when in Dataset Browse Show" do
|
94
|
-
controller.session[:viewing_context] = "browse"
|
95
|
-
get(:show, {:id=>"hydrangea:fixture_mods_dataset1"}, :action=>"browse")
|
96
|
-
document_check(response.body)
|
97
|
-
end
|
98
|
-
|
99
|
-
#APO datatype hydrus:admin_class1
|
100
|
-
it "Should have valid html when in Dataset Edit Show" do
|
101
|
-
controller.session[:viewing_context] = "edit"
|
102
|
-
get(:show, {:id=>"hydrus:admin_class1"}, :action=>"edit")
|
103
|
-
document_check(response.body)
|
104
|
-
end
|
105
|
-
|
106
|
-
it "Should have valid html when in Dataset Browse Show" do
|
107
|
-
controller.session[:viewing_context] = "browse"
|
108
|
-
get(:show, {:id=>"hydrus:admin_class1"}, :action=>"browse")
|
109
|
-
File.open('/tmp/out.xml', 'w') { |f| f << response.body }
|
110
|
-
document_check(response.body)
|
111
|
-
|
112
|
-
end
|
113
|
-
|
114
|
-
# The delete view should be the same for all data types
|
115
|
-
it "Should have valid html when in Dataset Delete" do
|
116
|
-
get(:show, {:id=>"hydrangea:fixture_mods_dataset1"}, :action=>"delete")
|
117
|
-
document_check(response.body)
|
118
|
-
end
|
119
|
-
|
120
|
-
|
121
|
-
end #Document pages
|
122
|
-
|
123
|
-
end
|
@@ -1,67 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
-
|
3
|
-
|
4
|
-
# See cucumber tests (ie. /features/edit_document.feature) for more tests, including ones that test the edit method & view
|
5
|
-
# You can run the cucumber tests with
|
6
|
-
#
|
7
|
-
# cucumber --tags @edit
|
8
|
-
# or
|
9
|
-
# rake cucumber
|
10
|
-
|
11
|
-
describe Hydra::ContributorsController do
|
12
|
-
before :all do
|
13
|
-
@behavior = Hydra::ContributorsController.deprecation_behavior
|
14
|
-
Hydra::ContributorsController.deprecation_behavior = :silence
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
after :all do
|
19
|
-
Hydra::ContributorsController.deprecation_behavior = @behavior
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
describe "create" do
|
24
|
-
it "should support adding new person / contributor / organization nodes" do
|
25
|
-
mock_document = mock("document")
|
26
|
-
# stub out access controlls enforcement
|
27
|
-
controller.expects(:enforce_access_controls).at_least_once.returns(true)
|
28
|
-
["person","conference","organization"].each do |type|
|
29
|
-
mock_document.expects(:insert_contributor).with(type).returns(["foo node",989])
|
30
|
-
mock_document.expects(:save)
|
31
|
-
ModsAsset.expects(:find).with("_PID_").returns(mock_document)
|
32
|
-
post :create, :asset_id=>"_PID_", :controller => "contributors", :content_type => "mods_asset", :contributor_type=>type
|
33
|
-
response.should redirect_to edit_catalog_path('_PID_', :anchor=>"#{type}_989")
|
34
|
-
end
|
35
|
-
end
|
36
|
-
it "should return inline html if format is inline" do
|
37
|
-
mock_document = mock("document")
|
38
|
-
# stub out access controlls enforcement
|
39
|
-
controller.expects(:enforce_access_controls).at_least_once.returns(true)
|
40
|
-
["person","conference","organization"].each do |type|
|
41
|
-
mock_document.expects(:insert_contributor).with(type).returns(["foo node","foo index"])
|
42
|
-
mock_document.expects(:save)
|
43
|
-
ModsAsset.expects(:find).with("_PID_").returns(mock_document)
|
44
|
-
post :create, :asset_id=>"_PID_", :controller => "contributors", :content_type => "mods_asset", :contributor_type=>type, :format=>"inline"
|
45
|
-
response.should render_template "contributors/_edit_#{type}"
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe "destroy" do
|
51
|
-
it "should delete the contributor corresponding to contributor_type and index" do
|
52
|
-
mock_dataset = mock("Dataset")
|
53
|
-
mock_dataset.expects(:remove_contributor).with("conference", "3")
|
54
|
-
mock_dataset.expects(:save)
|
55
|
-
ModsAsset.expects(:find).with("_PID_").returns(mock_dataset)
|
56
|
-
# stub out authorize!
|
57
|
-
controller.expects(:authorize!).with(:edit, mock_dataset)
|
58
|
-
delete :destroy, :asset_id=>"_PID_", :content_type => "mods_asset", :contributor_type=>"conference", :index=>"3"
|
59
|
-
end
|
60
|
-
it "should now allow non-authed users to destroy contributors" do
|
61
|
-
mock_dataset = mock("Dataset")
|
62
|
-
ModsAsset.expects(:find).with("_PID_").returns(mock_dataset)
|
63
|
-
lambda{delete :destroy, :asset_id=>"_PID_", :content_type => "mods_asset", :contributor_type=>"conference", :index=>"3"}.should raise_error(CanCan::AccessDenied)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
@@ -1,194 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
-
|
3
|
-
describe Hydra::FileAssetsController do
|
4
|
-
include Devise::TestHelpers
|
5
|
-
before do
|
6
|
-
session[:user]='bob'
|
7
|
-
end
|
8
|
-
|
9
|
-
it "should be restful" do
|
10
|
-
{ :get => "/hydra/file_assets" }.should route_to(:controller=>'hydra/file_assets', :action=>'index')
|
11
|
-
{ :get => "/hydra/file_assets/3" }.should route_to(:controller=>'hydra/file_assets', :action=>'show', :id=>"3")
|
12
|
-
{ :delete=> "/hydra/file_assets/3" }.should route_to(:controller=>'hydra/file_assets', :action=>'destroy', :id=>"3")
|
13
|
-
{ :put=>"/hydra/file_assets/3" }.should route_to(:controller=>'hydra/file_assets', :action=>'update', :id=>"3")
|
14
|
-
{ :get => "/hydra/file_assets/3/edit" }.should route_to(:controller=>'hydra/file_assets', :action=>'edit', :id=>"3")
|
15
|
-
{ :get =>"/hydra/file_assets/new" }.should route_to(:controller=>'hydra/file_assets', :action=>'new')
|
16
|
-
{ :post => "/hydra/file_assets" }.should route_to(:controller=>'hydra/file_assets', :action=>'create')
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
|
-
describe "index" do
|
21
|
-
|
22
|
-
it "should find all file assets in the repo if no container_id is provided" do
|
23
|
-
ActiveFedora::SolrService.expects(:query).with('active_fedora_model_s:FileAsset', {}).returns("solr result")
|
24
|
-
controller.stubs(:load_permissions_from_solr)
|
25
|
-
ActiveFedora::Base.expects(:new).never
|
26
|
-
xhr :get, :index
|
27
|
-
assigns[:solr_result].should == "solr result"
|
28
|
-
end
|
29
|
-
it "should find all file assets belonging to a given container object if asset_id is provided" do
|
30
|
-
pid = 'hydrangea:fixture_mods_article3'
|
31
|
-
xhr :get, :index, :asset_id=>pid
|
32
|
-
assigns[:response][:response][:docs].first["id"].should == "hydrangea:fixture_file_asset1"
|
33
|
-
assigns[:document_list].first.id.should == "hydrangea:fixture_file_asset1"
|
34
|
-
|
35
|
-
assigns[:container_response][:response][:docs].first["id"].should == "hydrangea:fixture_mods_article3"
|
36
|
-
assigns[:document].id.should == "hydrangea:fixture_mods_article3"
|
37
|
-
assigns[:solr_result].first["id"].should == "hydrangea:fixture_file_asset1"
|
38
|
-
assigns[:container].should == ModsAsset.find('hydrangea:fixture_mods_article3')
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
describe "new" do
|
44
|
-
it "should set :container_id to value of :container_id if available" do
|
45
|
-
xhr :get, :new, :asset_id=>"_PID_"
|
46
|
-
@controller.params[:asset_id].should == "_PID_"
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe "show" do
|
51
|
-
it "should redirect back if current_user does not have read or edit permissions" do
|
52
|
-
mock_user = mock("User")
|
53
|
-
mock_user.stubs(:email).returns("fake_user@example.com")
|
54
|
-
mock_user.stubs(:is_being_superuser?).returns(false)
|
55
|
-
mock_user.stubs(:persisted?).returns(true)
|
56
|
-
mock_user.stubs(:new_record?).returns(false)
|
57
|
-
controller.stubs(:current_user).returns(mock_user)
|
58
|
-
request.env["HTTP_REFERER"] = "http://example.com/?q=search"
|
59
|
-
get(:show, :id=>"hydrangea:fixture_file_asset1")
|
60
|
-
response.should redirect_to(root_url)
|
61
|
-
end
|
62
|
-
it "should redirect to the login page if the user is not logged in" do
|
63
|
-
mock_user = mock("User")
|
64
|
-
mock_user.stubs(:email).returns("fake_user@example.com")
|
65
|
-
mock_user.stubs(:is_being_superuser?).returns(false)
|
66
|
-
mock_user.stubs(:persisted?).returns(false)
|
67
|
-
mock_user.stubs(:new_record?).returns(true)
|
68
|
-
controller.stubs(:current_user).returns(mock_user)
|
69
|
-
request.env["HTTP_REFERER"] = "http://example.com/?q=search"
|
70
|
-
get(:show, :id=>"hydrangea:fixture_file_asset1")
|
71
|
-
response.should redirect_to("http://test.host/users/sign_in")
|
72
|
-
session['user_return_to'].should =~ /fixture_file_asset1/
|
73
|
-
end
|
74
|
-
it "should redirect to index view if the file does not exist" do
|
75
|
-
get(:show, :id=>"example:invalid_object")
|
76
|
-
response.should redirect_to(:action => 'index')
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
describe "create" do
|
81
|
-
it "should create and save a file asset from the given params" do
|
82
|
-
# stub out authorize! call
|
83
|
-
controller.expects(:authorize!).with(:edit, "example:invalid_object").returns(true)
|
84
|
-
mock_fa = mock("FileAsset")
|
85
|
-
mock_file = mock("File")
|
86
|
-
mock_fa.stubs(:pid).returns("foo:pid")
|
87
|
-
controller.expects(:create_and_save_file_assets_from_params).returns([mock_fa])
|
88
|
-
xhr :post, :create, :Filedata=>[mock_file], :Filename=>"Foo File", :id => "example:invalid_object"
|
89
|
-
end
|
90
|
-
it "if container_id is provided, should associate the created file asset wtih the container" do
|
91
|
-
# stub out authorize! call
|
92
|
-
controller.expects(:authorize!).with(:edit, "_PID_").returns(true)
|
93
|
-
stub_fa = stub("FileAsset", :save)
|
94
|
-
stub_fa.stubs(:pid).returns("foo:pid")
|
95
|
-
stub_fa.stubs(:label).returns("Foo File")
|
96
|
-
mock_file = mock("File")
|
97
|
-
controller.expects(:create_and_save_file_assets_from_params).returns([stub_fa])
|
98
|
-
controller.expects(:associate_file_asset_with_container)
|
99
|
-
xhr :post, :create, :Filedata=>[mock_file], :Filename=>"Foo File", :container_id=>"_PID_"
|
100
|
-
end
|
101
|
-
it "should redirect back to edit view if no Filedata is provided but container_id is provided" do
|
102
|
-
# stub out authorize! call
|
103
|
-
controller.expects(:authorize!).with(:edit, "_PID_").returns(true)
|
104
|
-
controller.expects(:model_config).at_least_once.returns(controller.workflow_config[:mods_assets])
|
105
|
-
xhr :post, :create, :container_id=>"_PID_", :wf_step=>"files"
|
106
|
-
response.should redirect_to edit_catalog_path("_PID_", :wf_step=>"permissions")
|
107
|
-
request.flash[:notice].should == "You must specify a file to upload."
|
108
|
-
end
|
109
|
-
it "should display a message that you need to select a file to upload if no Filedata is provided" do
|
110
|
-
# stub out authorize! call
|
111
|
-
controller.expects(:authorize!).returns(true)
|
112
|
-
xhr :post, :create
|
113
|
-
request.flash[:notice].include?("You must specify a file to upload.").should be_true
|
114
|
-
end
|
115
|
-
it "should throw an error if you don't have the ability to edit the parent object" do
|
116
|
-
lambda{xhr :post, :create, :id => "hydrangea:fixture_mods_dataset1"}.should raise_error(CanCan::AccessDenied)
|
117
|
-
end
|
118
|
-
|
119
|
-
end
|
120
|
-
|
121
|
-
describe "destroy" do
|
122
|
-
it "should delete the asset identified by pid" do
|
123
|
-
# stub out authorize! call
|
124
|
-
controller.expects(:authorize!).returns(true)
|
125
|
-
mock_obj = mock("asset", :delete)
|
126
|
-
ActiveFedora::Base.expects(:find).with("__PID__", :cast=>true).returns(mock_obj)
|
127
|
-
delete(:destroy, :id => "__PID__")
|
128
|
-
end
|
129
|
-
it "should remove container relationship and perform proper garbage collection" do
|
130
|
-
pending "relies on ActiveFedora implementing Base.file_objects_remove"
|
131
|
-
mock_container = mock("asset")
|
132
|
-
mock_container.expects(:file_objects_remove).with("_file_asset_pid_")
|
133
|
-
FileAsset.expects(:garbage_collect).with("_file_asset_pid_")
|
134
|
-
ActiveFedora::Base.expects(:find).with("_container_pid_", :cast=>true).returns(mock_container)
|
135
|
-
delete(:destroy, :id => "_file_asset_pid_", :asset_id=>"_container_pid_")
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
describe "integration tests - " do
|
140
|
-
before(:all) do
|
141
|
-
class TestObj < ActiveFedora::Base
|
142
|
-
include ActiveFedora::FileManagement
|
143
|
-
end
|
144
|
-
|
145
|
-
ActiveFedora::SolrService.register(ActiveFedora.solr_config[:url])
|
146
|
-
@test_container = TestObj.new
|
147
|
-
@test_container.add_relationship(:is_member_of, "info:fedora/foo:1")
|
148
|
-
@test_container.add_relationship(:has_collection_member, "info:fedora/foo:2")
|
149
|
-
@test_container.save
|
150
|
-
|
151
|
-
@test_fa = FileAsset.new
|
152
|
-
@test_fa.add_relationship(:is_part_of, @test_container)
|
153
|
-
@test_fa.save
|
154
|
-
end
|
155
|
-
|
156
|
-
after(:all) do
|
157
|
-
@test_container.delete
|
158
|
-
@test_fa.delete
|
159
|
-
Object.send(:remove_const, :TestObj)
|
160
|
-
end
|
161
|
-
|
162
|
-
describe "index" do
|
163
|
-
it "should retrieve the container object and its file assets" do
|
164
|
-
#xhr :get, :index, :container_id=>@test_container.pid
|
165
|
-
get :index, {:asset_id=>@test_container.pid}
|
166
|
-
@controller.params[:asset_id].should_not be_nil
|
167
|
-
assigns(:solr_result).should_not be_nil
|
168
|
-
#puts assigns(:solr_result).inspect
|
169
|
-
assigns(:container).file_objects(:response_format=>:id_array).should include(@test_fa.pid)
|
170
|
-
assigns(:container).file_objects(:response_format=>:id_array).should include("foo:2")
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|
174
|
-
describe "create" do
|
175
|
-
before :each do
|
176
|
-
mock_user = mock("User")
|
177
|
-
mock_user.stubs(:user_key).returns('user@example.com')
|
178
|
-
mock_warden = mock("Warden")
|
179
|
-
mock_warden.stubs(:authenticate).returns(mock_user)
|
180
|
-
request.env['warden'] = mock_warden
|
181
|
-
end
|
182
|
-
|
183
|
-
it "should set is_part_of relationship on the new File Asset pointing back at the container" do
|
184
|
-
# stub out authorize! call
|
185
|
-
controller.expects(:authorize!).returns(true)
|
186
|
-
test_file = fixture_file_upload('/small_file.txt', 'text/plain')
|
187
|
-
filename = "My File Name"
|
188
|
-
post :create, {:Filedata=>[test_file], :Filename=>filename, :container_id=>@test_container.pid}
|
189
|
-
assigns(:file_asset).ids_for_outbound(:is_part_of).should == [@test_container.pid]
|
190
|
-
retrieved_fa = FileAsset.find(@test_fa.pid).ids_for_outbound(:is_part_of).should == [@test_container.pid]
|
191
|
-
end
|
192
|
-
end
|
193
|
-
end
|
194
|
-
end
|