hydra-head 3.0.0pre3 → 3.0.0pre4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitmodules +0 -3
- data/.rvmrc +6 -0
- data/BLACKLIGHT_CONFIG.textile +76 -0
- data/CREATE_RAILS_APP.textile +323 -0
- data/DEVELOP_PLUGIN.textile +90 -0
- data/GIT_WORKFLOW.textile +84 -0
- data/Gemfile.lock +82 -66
- data/HISTORY.textile +7 -0
- data/HOW_DO_I.textile +107 -0
- data/HOW_TO_DEFINE_A_HYDRA_CONTROLLER.textile +21 -0
- data/HOW_TO_DEFINE_A_HYDRA_MODEL.textile +64 -0
- data/HOW_TO_GET_STARTED.textile +100 -76
- data/INITIAL_APP_MODS.textile +60 -76
- data/INSTALL_PREREQ.textile +19 -0
- data/LICENSE +14 -0
- data/README.textile +89 -17
- data/README_RAKE_TASKS.textile +107 -0
- data/README_SUBTREE.textile +87 -0
- data/README_TERSE.textile +92 -0
- data/TESTING_PLUGIN.textile +134 -0
- data/app/controllers/assets_controller.rb +34 -4
- data/app/controllers/contributors_controller.rb +49 -1
- data/app/controllers/downloads_controller.rb +36 -0
- data/app/controllers/file_assets_controller.rb +43 -21
- data/app/controllers/generic_content_objects_controller.rb +38 -0
- data/app/controllers/get_controller.rb +39 -0
- data/app/controllers/permissions_controller.rb +33 -4
- data/app/controllers/user_sessions_controller.rb +0 -1
- data/app/helpers/application_helper.rb +183 -0
- data/app/helpers/blacklight_helper.rb +13 -8
- data/app/helpers/hydra_assets_helper.rb +6 -15
- data/app/helpers/hydra_fedora_metadata_helper.rb +51 -67
- data/app/helpers/hydra_helper.rb +35 -11
- data/app/helpers/javascript_includes_helper.rb +2 -4
- data/app/helpers/personalization_helper.rb +44 -0
- data/app/models/generic_content.rb +6 -3
- data/app/models/generic_image.rb +3 -1
- data/app/models/mods_asset.rb +12 -1
- data/app/models/user_attribute.rb +25 -0
- data/app/models/uses_default_partials.rb +14 -0
- data/app/views/_add_assets_links.html.erb +1 -0
- data/app/views/catalog/_edit_partials/_default.html.erb +5 -5
- data/app/views/catalog/_home_text.html.erb +2 -2
- data/app/views/catalog/_index_partials/_default_details.html.erb +10 -7
- data/app/views/catalog/_opensearch_response_metadata.html.erb +2 -0
- data/app/views/catalog/_search_form.html.erb +1 -1
- data/app/views/catalog/_show_partials/_default.html.erb +4 -2
- data/app/views/catalog/_show_partials/_default_details.html.erb +10 -7
- data/app/views/catalog/show.html.erb +20 -28
- data/app/views/contributors/_edit_person.html.erb +26 -29
- data/app/views/contributors/_index.html.erb +6 -7
- data/app/views/contributors/_show_conference.html.erb +5 -15
- data/app/views/contributors/_show_organization.html.erb +8 -16
- data/app/views/file_assets/_file_assets_form.html.erb +11 -0
- data/app/views/file_assets/_index.html.erb +21 -6
- data/app/views/file_assets/_new.html.erb +6 -2
- data/app/views/file_assets/_result.html.erb +2 -2
- data/app/views/fluid_infusion/_uploader.html.erb +4 -5
- data/app/views/generic_content_objects/_contributor_form.html.erb +11 -0
- data/app/views/generic_content_objects/_description_form.html.erb +7 -0
- data/app/views/generic_content_objects/_edit_description.html.erb +14 -41
- data/app/views/generic_content_objects/_show_description.html.erb +38 -63
- data/app/views/generic_contents/_edit.html.erb +1 -45
- data/app/views/generic_contents/_edit.html.erb_ +39 -0
- data/app/views/generic_contents/_index.html.erb +1 -3
- data/app/views/generic_contents/_show.html.erb +4 -14
- data/app/views/generic_contents/_show_content.html.erb +7 -4
- data/app/views/generic_images/_edit.html.erb +26 -32
- data/app/views/generic_images/_show.html.erb +7 -10
- data/app/views/generic_images/_show_all.html.erb +1 -1
- data/app/views/generic_images/_show_content.html.erb +7 -7
- data/app/views/layouts/application.html.erb +33 -41
- data/app/views/layouts/hydra-head.html.erb +52 -7
- data/app/views/mods_assets/_additional_info_form.html.erb +44 -0
- data/app/views/mods_assets/_contributor_form.html.erb +14 -0
- data/app/views/mods_assets/_edit.html.erb +8 -32
- data/app/views/mods_assets/_edit.html.erb_ +63 -0
- data/app/views/mods_assets/_edit_description.html.erb +52 -61
- data/app/views/mods_assets/_edit_journal.html.erb +49 -64
- data/app/views/mods_assets/_publication_form.html.erb +13 -0
- data/app/views/mods_assets/_show.html.erb +18 -23
- data/app/views/mods_assets/_show_additional_info.html.erb +17 -0
- data/app/views/mods_assets/_show_contributors.html.erb +7 -0
- data/app/views/mods_assets/_show_description.html.erb +3 -13
- data/app/views/mods_assets/_show_file_assets.html.erb +22 -0
- data/app/views/mods_assets/_show_journal.html.erb +3 -3
- data/app/views/mods_assets/_show_permissions.html.erb +1 -0
- data/app/views/mods_assets/_show_publication.html.erb +8 -0
- data/app/views/permissions/_edit_person_permissions.html.erb +4 -9
- data/app/views/permissions/_index.html.erb +9 -18
- data/app/views/permissions/_new.html.erb +13 -17
- data/app/views/permissions/_permissions_form.html.erb +24 -0
- data/app/views/user_sessions/_login_form.html.erb +1 -1
- data/assets/images/hydra/powered_by_hydra.png +0 -0
- data/assets/images/hydra/search-button.png +0 -0
- data/assets/javascripts/date-picker/booking/index.html +368 -0
- data/assets/javascripts/date-picker/calendarHTML.txt +84 -0
- data/assets/javascripts/date-picker/css/datepicker.css +511 -0
- data/assets/javascripts/date-picker/css/demo.css +229 -0
- data/assets/javascripts/date-picker/index.html +798 -0
- data/assets/javascripts/date-picker/js/datepicker.js +2898 -0
- data/assets/javascripts/date-picker/js/datepicker.packed.js +1 -0
- data/assets/javascripts/date-picker/js/lang/ar.js +9 -0
- data/assets/javascripts/date-picker/js/lang/cs.js +9 -0
- data/assets/javascripts/date-picker/js/lang/da.js +10 -0
- data/assets/javascripts/date-picker/js/lang/de.js +10 -0
- data/assets/javascripts/date-picker/js/lang/en.js +9 -0
- data/assets/javascripts/date-picker/js/lang/eo.js +13 -0
- data/assets/javascripts/date-picker/js/lang/es.js +9 -0
- data/assets/javascripts/date-picker/js/lang/et.js +23 -0
- data/assets/javascripts/date-picker/js/lang/fi.js +7 -0
- data/assets/javascripts/date-picker/js/lang/fr.js +69 -0
- data/assets/javascripts/date-picker/js/lang/he.js +9 -0
- data/assets/javascripts/date-picker/js/lang/hu.js +9 -0
- data/assets/javascripts/date-picker/js/lang/id.js +9 -0
- data/assets/javascripts/date-picker/js/lang/it.js +11 -0
- data/assets/javascripts/date-picker/js/lang/kr.js +9 -0
- data/assets/javascripts/date-picker/js/lang/lt.js +8 -0
- data/assets/javascripts/date-picker/js/lang/lv.js +9 -0
- data/assets/javascripts/date-picker/js/lang/nl.js +9 -0
- data/assets/javascripts/date-picker/js/lang/no.js +9 -0
- data/assets/javascripts/date-picker/js/lang/pl.js +10 -0
- data/assets/javascripts/date-picker/js/lang/pt-br.js +11 -0
- data/assets/javascripts/date-picker/js/lang/pt.js +9 -0
- data/assets/javascripts/date-picker/js/lang/ru.js +11 -0
- data/assets/javascripts/date-picker/js/lang/se.js +9 -0
- data/assets/javascripts/date-picker/js/lang/si.js +9 -0
- data/assets/javascripts/date-picker/js/lang/tr.js +9 -0
- data/assets/javascripts/date-picker/language/index.html +240 -0
- data/assets/javascripts/date-picker/media/Thumbs.db +0 -0
- data/assets/javascripts/date-picker/media/backstripes.gif +0 -0
- data/assets/javascripts/date-picker/media/bg_header.jpg +0 -0
- data/assets/javascripts/date-picker/media/bullet1.gif +0 -0
- data/assets/javascripts/date-picker/media/bullet2.gif +0 -0
- data/assets/javascripts/date-picker/media/cal-grey.gif +0 -0
- data/assets/javascripts/date-picker/media/cal.gif +0 -0
- data/assets/javascripts/date-picker/media/gradient-e5e5e5-ffffff.gif +0 -0
- data/assets/javascripts/hydra/hydra-head.js +195 -0
- data/assets/javascripts/hydra/mediashelf.datepicker.js +39 -0
- data/assets/javascripts/hydra/mediashelf.placeholder.js +67 -0
- data/assets/javascripts/jquery.form.js +675 -0
- data/assets/javascripts/jquery.ui.datepicker.js +1793 -0
- data/assets/javascripts/spin.min.js +2 -0
- data/assets/stylesheets/hydra/html_refactor.css +115 -0
- data/assets/stylesheets/hydra/hydrangea-split-button.css +18 -0
- data/assets/stylesheets/hydra/hydrangea.css +292 -0
- data/assets/stylesheets/hydra/ie-styles.css +240 -0
- data/assets/stylesheets/hydra/styles.css +2224 -0
- data/assets/stylesheets/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/assets/stylesheets/redmond/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/assets/stylesheets/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- data/assets/stylesheets/redmond/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- data/assets/stylesheets/redmond/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/assets/stylesheets/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- data/assets/stylesheets/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- data/assets/stylesheets/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/assets/stylesheets/redmond/images/ui-icons_217bc0_256x240.png +0 -0
- data/assets/stylesheets/redmond/images/ui-icons_2e83ff_256x240.png +0 -0
- data/assets/stylesheets/redmond/images/ui-icons_469bdd_256x240.png +0 -0
- data/assets/stylesheets/redmond/images/ui-icons_6da8d5_256x240.png +0 -0
- data/assets/stylesheets/redmond/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/assets/stylesheets/redmond/images/ui-icons_d8e7f3_256x240.png +0 -0
- data/assets/stylesheets/redmond/images/ui-icons_f9bd01_256x240.png +0 -0
- data/assets/stylesheets/redmond/jquery-ui-1.8.5.custom.css +572 -0
- data/config/fedora.yml +17 -0
- data/config/role_map_cucumber.yml +10 -0
- data/config/role_map_development.yml +12 -0
- data/config/role_map_production.yml +2 -0
- data/config/role_map_test.yml +14 -0
- data/config/solr.yml +10 -0
- data/config/solr_mappings.yml +22 -0
- data/db/migrate/20101105214243_add_user_attributes_table.rb +15 -0
- data/db/migrate/20101108192527_create_superusers.rb +12 -0
- data/fedora/conf/fedora.fcfg +1021 -0
- data/hydra-head.gemspec +7 -4
- data/init.rb +4 -0
- data/install.rb +1 -0
- data/lib/blacklight/catalog_helper.rb +44 -0
- data/lib/blacklight.rb +40 -0
- data/lib/block_mapper.rb +52 -0
- data/lib/djatoka.rb +59 -0
- data/lib/ead_mapper.rb +7 -0
- data/lib/field_maps.rb +507 -0
- data/lib/generators/hydra/assets_generator.rb +51 -0
- data/lib/generators/hydra/head_generator.rb +23 -4
- data/lib/generators/hydra/templates/config/initializers/blacklight_config.rb +2 -2
- data/lib/generators/hydra/templates/config/initializers/hydra_config.rb +26 -0
- data/lib/hydra/access_controls_enforcement.rb +3 -2
- data/lib/hydra/assets_controller_helper.rb +6 -0
- data/lib/hydra/catalog.rb +7 -3
- data/lib/hydra/controller.rb +27 -0
- data/lib/hydra/file_assets_helper.rb +25 -8
- data/lib/hydra/generic_user_attributes.rb +34 -0
- data/lib/hydra/model_methods.rb +4 -2
- data/lib/hydra/mods_article.rb +5 -2
- data/lib/hydra/submission_workflow.rb +137 -0
- data/lib/hydra-head/controller.rb +30 -0
- data/lib/hydra-head/engine.rb +22 -1
- data/lib/hydra-head/routes.rb +14 -3
- data/lib/hydra-head/version.rb +1 -1
- data/lib/hydra-head.rb +3 -3
- data/lib/hydra.rb +1 -1
- data/lib/jetty_cleaner.rb +27 -0
- data/lib/marc_mapper.rb +131 -0
- data/lib/marc_record_ext.rb +97 -0
- data/lib/mediashelf/active_fedora_helper.rb +7 -1
- data/lib/prev_next_links.rb +22 -0
- data/lib/railties/hydra-fixtures.rake +6 -1
- data/lib/railties/hyhead_cucumber.rake +1 -2
- data/lib/railties/hyhead_rspec.rake +7 -7
- data/lib/stanford_blacklight_extensions.rb +6 -0
- data/lib/user_attributes_loader.rb +17 -0
- data/solr/conf/schema.xml +116 -0
- data/solr/conf/solrconfig.xml +311 -0
- data/solr/solr.xml +35 -0
- data/spec/controllers/catalog_valid_html_spec.rb +128 -0
- data/spec-rails2/helpers/hydra_fedora_metadata_helper_spec.rb +219 -0
- data/spec-rails2/spec_helper.rb +88 -0
- data/tasks/hydra-head.rake +2 -4
- data/test_support/etc/Gemfile +6 -5
- data/test_support/features/absent_model_edit.feature +27 -0
- data/test_support/features/absent_model_search_result.feature +24 -0
- data/test_support/features/absent_model_show.feature +27 -0
- data/test_support/features/button_add_assets.feature +2 -2
- data/test_support/features/contributor_add.feature +21 -16
- data/test_support/features/default_partials_edit.feature +27 -0
- data/test_support/features/default_partials_search_result.feature +22 -0
- data/test_support/features/default_partials_show.feature +24 -0
- data/test_support/features/file_upload.feature +55 -22
- data/test_support/features/generic_content_create.feature +7 -0
- data/test_support/features/generic_content_edit.feature +21 -0
- data/test_support/features/generic_content_search_result.feature +22 -0
- data/test_support/features/generic_content_show.feature +20 -0
- data/test_support/features/generic_image_create.feature +7 -0
- data/test_support/features/generic_image_edit.feature +21 -0
- data/test_support/features/generic_image_search_result.feature +22 -0
- data/test_support/features/generic_image_show.feature +20 -0
- data/test_support/features/html_validity.feature +43 -0
- data/test_support/features/mods_asset_contributors_edit.feature +27 -19
- data/test_support/features/mods_asset_create.feature +13 -8
- data/test_support/features/mods_asset_edit.feature +48 -16
- data/test_support/features/mods_asset_edit_without_permission.feature +6 -1
- data/test_support/features/mods_asset_search_result.feature +15 -15
- data/test_support/features/mods_asset_show.feature +56 -5
- data/test_support/features/permissions_add.feature +5 -4
- data/test_support/features/permissions_edit.feature +9 -7
- data/test_support/features/step_definitions/html_validity_steps.rb +57 -0
- data/test_support/features/step_definitions/show_document_steps.rb +1 -1
- data/test_support/features/step_definitions/user_steps.rb +4 -4
- data/test_support/features/support/paths.rb +4 -1
- data/test_support/fixtures/hydra_test_default_partials.foxml.xml +80 -0
- data/test_support/fixtures/hydra_test_generic_content.foxml.xml +138 -0
- data/test_support/fixtures/hydra_test_generic_image.foxml.xml +395 -0
- data/test_support/fixtures/hydra_test_no_model.foxml.xml +79 -0
- data/test_support/fixtures/hydrus_admin_class1.foxml.xml +176 -0
- data/test_support/fixtures/libra-oa_7.foxml.xml +1735 -0
- data/test_support/spec/controllers/assets_controller_spec.rb +5 -4
- data/test_support/spec/controllers/catalog_controller_spec.rb +2 -2
- data/test_support/spec/controllers/file_assets_controller_spec.rb +16 -10
- data/test_support/spec/controllers/hydra_controller_spec.rb +2 -0
- data/test_support/spec/controllers/permissions_controller_spec.rb +1 -1
- data/test_support/spec/helpers/access_controls_enforcement_spec.rb +20 -219
- data/test_support/spec/helpers/blacklight_helper_spec.rb +3 -1
- data/test_support/spec/helpers/file_assets_helper_spec.rb +13 -10
- data/test_support/spec/helpers/hydra_assets_helper_spec.rb +5 -1
- data/test_support/spec/helpers/hydra_djatoka_helper_spec.rb +3 -1
- data/test_support/spec/helpers/hydra_fedora_metadata_helper_spec.rb +102 -69
- data/test_support/spec/helpers/hydra_helper_spec.rb +15 -0
- data/test_support/spec/lib/hydra_submission_workflow_spec.rb +141 -0
- data/test_support/spec/models/generic_image_spec.rb +6 -1
- data/uninstall.rb +1 -0
- data/vendor/cache/actionmailer-3.0.10.gem +0 -0
- data/vendor/cache/actionpack-3.0.10.gem +0 -0
- data/vendor/cache/activemodel-3.0.10.gem +0 -0
- data/vendor/cache/activerecord-3.0.10.gem +0 -0
- data/vendor/cache/activeresource-3.0.10.gem +0 -0
- data/vendor/cache/activesupport-3.0.10.gem +0 -0
- data/vendor/cache/capybara-1.1.1.gem +0 -0
- data/vendor/cache/childprocess-0.2.2.gem +0 -0
- data/vendor/cache/crack-0.3.1.gem +0 -0
- data/vendor/cache/cucumber-1.1.0.gem +0 -0
- data/vendor/cache/cucumber-rails-1.1.1.gem +0 -0
- data/vendor/cache/diff-lcs-1.1.3.gem +0 -0
- data/vendor/cache/equivalent-xml-0.2.8.gem +0 -0
- data/vendor/cache/factory_girl-2.1.2.gem +0 -0
- data/vendor/cache/gherkin-2.5.2.gem +0 -0
- data/vendor/cache/haml-3.1.3.gem +0 -0
- data/vendor/cache/httparty-0.8.1.gem +0 -0
- data/vendor/cache/json-1.6.1.gem +0 -0
- data/vendor/cache/json_pure-1.6.1.gem +0 -0
- data/vendor/cache/launchy-2.0.5.gem +0 -0
- data/vendor/cache/mediashelf-loggable-0.4.7.gem +0 -0
- data/vendor/cache/metaclass-0.0.1.gem +0 -0
- data/vendor/cache/mocha-0.10.0.gem +0 -0
- data/vendor/cache/multi_json-1.0.3.gem +0 -0
- data/vendor/cache/multi_xml-0.4.1.gem +0 -0
- data/vendor/cache/om-1.4.2.gem +0 -0
- data/vendor/cache/polyglot-0.3.2.gem +0 -0
- data/vendor/cache/rack-1.2.4.gem +0 -0
- data/vendor/cache/{rails-3.0.9.gem → rails-3.0.10.gem} +0 -0
- data/vendor/cache/railties-3.0.10.gem +0 -0
- data/vendor/cache/rcov-0.9.11.gem +0 -0
- data/vendor/cache/rdoc-3.10.gem +0 -0
- data/vendor/cache/rest-client-1.6.7.gem +0 -0
- data/vendor/cache/selenium-webdriver-2.8.0.gem +0 -0
- data/vendor/cache/solrizer-1.1.2.gem +0 -0
- data/vendor/cache/solrizer-fedora-1.1.2.gem +0 -0
- data/vendor/cache/sqlite3-1.3.4.gem +0 -0
- data/vendor/cache/term-ansicolor-1.0.7.gem +0 -0
- data/vendor/cache/treetop-1.4.10.gem +0 -0
- data/vendor/cache/tzinfo-0.3.30.gem +0 -0
- data/vendor/cache/will_paginate-3.0.2.gem +0 -0
- data/vendor/cache/xml-simple-1.1.1.gem +0 -0
- metadata +351 -121
- data/lib/engine.rb +0 -30
- data/test_support/features/file_assets_list.feature +0 -32
- data/vendor/cache/actionmailer-3.0.9.gem +0 -0
- data/vendor/cache/actionpack-3.0.9.gem +0 -0
- data/vendor/cache/activemodel-3.0.9.gem +0 -0
- data/vendor/cache/activerecord-3.0.9.gem +0 -0
- data/vendor/cache/activeresource-3.0.9.gem +0 -0
- data/vendor/cache/activesupport-3.0.9.gem +0 -0
- data/vendor/cache/capybara-1.0.0.gem +0 -0
- data/vendor/cache/childprocess-0.2.0.gem +0 -0
- data/vendor/cache/crack-0.1.8.gem +0 -0
- data/vendor/cache/cucumber-1.0.2.gem +0 -0
- data/vendor/cache/cucumber-rails-1.0.2.gem +0 -0
- data/vendor/cache/diff-lcs-1.1.2.gem +0 -0
- data/vendor/cache/equivalent-xml-0.2.7.gem +0 -0
- data/vendor/cache/factory_girl-1.3.3.gem +0 -0
- data/vendor/cache/gherkin-2.4.5.gem +0 -0
- data/vendor/cache/haml-3.1.2.gem +0 -0
- data/vendor/cache/httparty-0.7.8.gem +0 -0
- data/vendor/cache/json-1.5.3.gem +0 -0
- data/vendor/cache/json_pure-1.5.3.gem +0 -0
- data/vendor/cache/launchy-2.0.4.gem +0 -0
- data/vendor/cache/mediashelf-loggable-0.4.3.gem +0 -0
- data/vendor/cache/mocha-0.9.12.gem +0 -0
- data/vendor/cache/om-1.2.5.gem +0 -0
- data/vendor/cache/polyglot-0.3.1.gem +0 -0
- data/vendor/cache/rack-1.2.3.gem +0 -0
- data/vendor/cache/railties-3.0.9.gem +0 -0
- data/vendor/cache/rcov-0.9.9.gem +0 -0
- data/vendor/cache/rdoc-3.8.gem +0 -0
- data/vendor/cache/selenium-webdriver-0.2.2.gem +0 -0
- data/vendor/cache/solrizer-1.1.0.gem +0 -0
- data/vendor/cache/solrizer-fedora-1.1.0.gem +0 -0
- data/vendor/cache/term-ansicolor-1.0.5.gem +0 -0
- data/vendor/cache/treetop-1.4.9.gem +0 -0
- data/vendor/cache/tzinfo-0.3.29.gem +0 -0
- data/vendor/cache/will_paginate-2.3.15.gem +0 -0
- data/vendor/cache/xml-simple-1.1.0.gem +0 -0
@@ -88,8 +88,8 @@ describe AssetsController do
|
|
88
88
|
it "should delete the asset identified by pid" do
|
89
89
|
mock_obj = mock("asset", :delete)
|
90
90
|
mock_obj.expects(:destroy_child_assets).returns([])
|
91
|
-
ActiveFedora::Base.expects(:load_instance_from_solr).with("__PID__").returns(mock_obj)
|
92
|
-
ActiveFedora::ContentModel.expects(:known_models_for).with(mock_obj).returns([ModsAsset])
|
91
|
+
ActiveFedora::Base.expects(:load_instance_from_solr).at_least_once.with("__PID__").returns(mock_obj)
|
92
|
+
ActiveFedora::ContentModel.expects(:known_models_for).at_least_once.with(mock_obj).returns([ModsAsset])
|
93
93
|
ModsAsset.expects(:load_instance_from_solr).with("__PID__").returns(mock_obj)
|
94
94
|
delete(:destroy, :id => "__PID__")
|
95
95
|
end
|
@@ -101,8 +101,9 @@ describe AssetsController do
|
|
101
101
|
it "should withdraw the asset identified by pid" do
|
102
102
|
mock_obj = mock("asset", :delete)
|
103
103
|
mock_obj.expects(:destroy_child_assets).returns([])
|
104
|
-
ActiveFedora::Base.expects(:load_instance_from_solr).with("__PID__").returns(mock_obj)
|
105
|
-
ActiveFedora::
|
104
|
+
ActiveFedora::Base.expects(:load_instance_from_solr).at_least_once.with("__PID__").returns(mock_obj)
|
105
|
+
ActiveFedora::Base
|
106
|
+
ActiveFedora::ContentModel.expects(:known_models_for).at_least_once.with(mock_obj).returns([ModsAsset])
|
106
107
|
ModsAsset.expects(:load_instance_from_solr).with("__PID__").returns(mock_obj)
|
107
108
|
delete(:withdraw, :id => "__PID__")
|
108
109
|
end
|
@@ -67,7 +67,7 @@ describe CatalogController do
|
|
67
67
|
it "should only return public documents if role does not have permissions" do
|
68
68
|
controller.stubs(:current_user).returns(nil)
|
69
69
|
get :index
|
70
|
-
assigns(
|
70
|
+
assigns(:document_list).count.should == @public_only_results.docs.count
|
71
71
|
end
|
72
72
|
it "should return all documents if role does have permissions" do
|
73
73
|
User.any_instance.stubs(:login).returns("BigWig")
|
@@ -75,7 +75,7 @@ describe CatalogController do
|
|
75
75
|
session[:superuser_mode] = true
|
76
76
|
controller.stubs(:current_user).returns(mock_user)
|
77
77
|
get :index
|
78
|
-
assigns
|
78
|
+
assigns(:document_list).count.should > @public_only_results.docs.count
|
79
79
|
end
|
80
80
|
end
|
81
81
|
end
|
@@ -98,25 +98,30 @@ describe FileAssetsController do
|
|
98
98
|
describe "create" do
|
99
99
|
it "should create and save a file asset from the given params" do
|
100
100
|
mock_fa = mock("FileAsset")
|
101
|
+
mock_file = mock("File")
|
102
|
+
mock_fa.expects(:label).returns("Foo File")
|
101
103
|
mock_fa.stubs(:pid).returns("foo:pid")
|
102
|
-
controller.expects(:
|
103
|
-
xhr :post, :create, :Filedata=>
|
104
|
+
controller.expects(:create_and_save_file_assets_from_params).returns([mock_fa])
|
105
|
+
xhr :post, :create, :Filedata=>[mock_file], :Filename=>"Foo File"
|
104
106
|
end
|
105
107
|
it "if container_id is provided, should associate the created file asset wtih the container" do
|
106
108
|
stub_fa = stub("FileAsset", :save)
|
107
109
|
stub_fa.stubs(:pid).returns("foo:pid")
|
108
|
-
|
110
|
+
stub_fa.stubs(:label).returns("Foo File")
|
111
|
+
mock_file = mock("File")
|
112
|
+
controller.expects(:create_and_save_file_assets_from_params).returns([stub_fa])
|
109
113
|
controller.expects(:associate_file_asset_with_container)
|
110
|
-
xhr :post, :create, :Filedata=>
|
114
|
+
xhr :post, :create, :Filedata=>[mock_file], :Filename=>"Foo File", :container_id=>"_PID_"
|
111
115
|
end
|
112
|
-
it "should redirect back to
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
+
it "should redirect back to edit view if no Filedata is provided but container_id is provided" do
|
117
|
+
controller.expects(:model_config).at_least_once.returns(controller.workflow_config[:mods_assets])
|
118
|
+
xhr :post, :create, :container_id=>"_PID_", :wf_step=>"files"
|
119
|
+
response.should redirect_to(:controller=>"catalog", :id=>"_PID_", :action => 'edit', :wf_step=>"permissions")
|
120
|
+
response.flash[:notice].should == "You must specify a file to upload."
|
116
121
|
end
|
117
122
|
it "should display a message that you need to select a file to upload if no Filedata is provided" do
|
118
123
|
xhr :post, :create
|
119
|
-
|
124
|
+
response.flash[:notice].include?("You must specify a file to upload.").should be_true
|
120
125
|
end
|
121
126
|
|
122
127
|
end
|
@@ -180,7 +185,8 @@ describe FileAssetsController do
|
|
180
185
|
|
181
186
|
test_file = fixture("empty_file.txt")
|
182
187
|
filename = "My File Name"
|
183
|
-
|
188
|
+
test_file.expects(:original_filename).twice.returns("My File Name")
|
189
|
+
post :create, {:Filedata=>[test_file], :Filename=>filename, :container_id=>@test_container.pid}
|
184
190
|
assigns(:file_asset).relationships[:self][:is_part_of].should == ["info:fedora/#{@test_container.pid}"]
|
185
191
|
retrieved_fa = FileAsset.load_instance(@test_fa.pid).relationships[:self][:is_part_of].should == ["info:fedora/#{@test_container.pid}"]
|
186
192
|
end
|
@@ -10,6 +10,8 @@ describe Hydra::Controller do
|
|
10
10
|
it "should add the necessary helpers to classes that include it" do
|
11
11
|
HydraControllerTest.expects(:helper).with(:hydra_assets)
|
12
12
|
HydraControllerTest.expects(:helper).with(:hydra_fedora_metadata)
|
13
|
+
HydraControllerTest.expects(:helper).with(:generic_content_objects)
|
14
|
+
HydraControllerTest.stubs(:before_filter)
|
13
15
|
HydraControllerTest.send(:include, Hydra::Controller)
|
14
16
|
end
|
15
17
|
end
|
@@ -68,7 +68,7 @@ describe PermissionsController do
|
|
68
68
|
|
69
69
|
# this is what currently works
|
70
70
|
# post :update, :asset_id=>"_pid_", :actor_type=>"group", :actor_id=>"_group_id_", :permission => {"group"=>"_group_id_","level"=>"discover"}
|
71
|
-
|
71
|
+
|
72
72
|
post :update, :asset_id=>"_pid_", :permission => {"group"=>{"_group_id_"=>"discover"}}
|
73
73
|
end
|
74
74
|
it "should add a rightsMetadata datastream if it doesn't exist"
|
@@ -2,126 +2,34 @@
|
|
2
2
|
require File.expand_path( File.join( File.dirname(__FILE__),'..','spec_helper') )
|
3
3
|
|
4
4
|
describe Hydra::AccessControlsEnforcement do
|
5
|
-
|
6
|
-
@extra_controller_params = {}
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "enforce_access_controls" do
|
10
|
-
describe "[index]" do
|
11
|
-
it "should trigger enforce_index_permissions" do
|
12
|
-
helper.params[:action] = "index"
|
13
|
-
helper.expects(:enforce_index_permissions)
|
14
|
-
helper.enforce_access_controls
|
15
|
-
end
|
16
|
-
end
|
17
|
-
describe "[show]" do
|
18
|
-
it "should trigger enforce_show_permissions" do
|
19
|
-
helper.params[:action] = "show"
|
20
|
-
helper.expects(:enforce_show_permissions)
|
21
|
-
helper.enforce_access_controls
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe "[edit]" do
|
26
|
-
it "should trigger enforce_edit_permissions" do
|
27
|
-
helper.params[:action] = "edit"
|
28
|
-
helper.expects(:enforce_edit_permissions)
|
29
|
-
helper.enforce_access_controls
|
30
|
-
end
|
31
|
-
end
|
32
|
-
describe "[update]" do
|
33
|
-
it "should trigger enforce_update_permissions" do
|
34
|
-
helper.params[:action] = "update"
|
35
|
-
helper.expects(:enforce_update_permissions)
|
36
|
-
helper.enforce_access_controls
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
41
|
-
|
42
|
-
describe "add_access_controls_to_solr_params" do
|
43
|
-
it "should set up gated discovery" do
|
44
|
-
stub_solr_params = {}
|
45
|
-
helper.stubs(:reader?).returns(false)
|
46
|
-
helper.stubs(:params).returns({:action=>:index})
|
47
|
-
helper.expects(:apply_gated_discovery).with(stub_solr_params, {})
|
48
|
-
helper.send(:add_access_controls_to_solr_params, stub_solr_params, {})
|
49
|
-
end
|
50
|
-
it "should make blacklight use the :public_qt response handler if user does not have read permissions" do
|
51
|
-
stub_solr_params = {}
|
52
|
-
helper.stubs(:solr_parameters).returns(stub_solr_params)
|
53
|
-
helper.stubs(:reader?).returns(false)
|
54
|
-
helper.stubs(:params).returns({:action=>:index})
|
55
|
-
helper.stubs(:apply_gated_discovery)
|
56
|
-
helper.send(:add_access_controls_to_solr_params, stub_solr_params, {})
|
57
|
-
stub_solr_params[:qt].should == Blacklight.config[:public_qt]
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
describe "enforce_index_permissions" do
|
62
|
-
it "should be defined but do nothing (currently enforce_index_permissions doesn't do anything but it's there if you want to override)" do
|
63
|
-
# just ensure that calling the method does not raise an error
|
64
|
-
helper.send(:enforce_index_permissions)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "enforce_show_permissions" do
|
69
|
-
it "should deny access to documents if role does not have read permissions" do
|
70
|
-
helper.stubs(:reader?).returns(false)
|
71
|
-
helper.stubs(:params).returns({:action=>:show,:id=>"hydrangea:fixture_mods_article1"}) # the permissions from this are not actually used because we stub the :reader? method
|
72
|
-
helper.expects(:redirect_to).with(:f => nil, :q => nil, :action => 'index')
|
73
|
-
helper.send(:enforce_show_permissions)
|
74
|
-
flash[:notice].should == "You do not have sufficient access privileges to read this document, which has been marked private."
|
75
|
-
end
|
76
|
-
end
|
77
|
-
describe "enforce_edit_permissions" do
|
78
|
-
it "should deny access to documents if role does not have edit permissions" do
|
79
|
-
helper.stubs(:editor?).returns(false)
|
80
|
-
helper.stubs(:params).returns({:action=>:edit,:id=>"hydrangea:fixture_mods_article1"} ) # the permissions from this are not actually used because we stub the :editor? method
|
81
|
-
helper.expects(:redirect_to).with(:action => :show)
|
82
|
-
helper.send(:enforce_edit_permissions)
|
83
|
-
flash[:notice].should == "You do not have sufficient privileges to edit this document. You have been redirected to the read-only view."
|
84
|
-
end
|
85
|
-
end
|
86
|
-
describe "enforce_update_permissions" do
|
87
|
-
it "should deny access to documents if role does not have update permissions" do
|
88
|
-
helper.stubs(:editor?).returns(false)
|
89
|
-
helper.stubs(:params).returns({:action=>:edit,:id=>"hydrangea:fixture_mods_article1"} ) # the permissions from this are not actually used because we stub the :editor? method
|
90
|
-
helper.expects(:redirect_to).with(:action => :show)
|
91
|
-
helper.send(:enforce_update_permissions)
|
92
|
-
flash[:notice].should == "You do not have sufficient privileges to edit this document. You have been redirected to the read-only view."
|
93
|
-
end
|
94
|
-
end
|
95
|
-
describe "apply_gated_discovery" do
|
96
|
-
it "should set the query using build_lucene_query" do
|
97
|
-
stub_solr_params = {}
|
98
|
-
helper.stubs(:solr_parameters).returns(stub_solr_params)
|
99
|
-
user_query = "my important query"
|
100
|
-
helper.stubs(:params).returns({:q=>user_query} )
|
101
|
-
helper.expects(:build_lucene_query).with(user_query).returns("stub lucene query")
|
102
|
-
helper.send(:apply_gated_discovery, stub_solr_params, {})
|
103
|
-
stub_solr_params[:q].should == "stub lucene query"
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
describe "build_lucene_query" do
|
5
|
+
describe "build_lucene_query" do
|
108
6
|
|
109
|
-
|
110
|
-
stub_user = User.new
|
7
|
+
it "should return fields for all roles the user is a member of checking against the discover, access, read fields" do
|
8
|
+
stub_user = User.new :email=>'archivist1@example.com'
|
111
9
|
stub_user.stubs(:is_being_superuser?).returns false
|
112
|
-
stub_user.stubs(:login).returns "archivist1@example.com"
|
113
10
|
helper.stubs(:current_user).returns(stub_user)
|
114
11
|
# This example assumes that archivist1 is in the archivist and researcher groups.
|
115
12
|
# Tried stubbing RoleMapper.roles instead, but that broke 26 other tests because mocha fails to release the expectation.
|
116
13
|
# RoleMapper.stubs(:roles).with(stub_user.login).returns(["archivist", "researcher"])
|
117
|
-
query = helper.send(:build_lucene_query, "
|
14
|
+
query = helper.send(:build_lucene_query, "query_string")
|
15
|
+
# RoleMapper.stubs(:roles).with(stub_user.login).returns(["archivist", "researcher"])
|
16
|
+
# query = helper.send(:build_lucene_query, "string")
|
118
17
|
|
119
18
|
["discover","edit","read"].each do |type|
|
120
19
|
query.should match(/_query_\:\"#{type}_access_group_t\:archivist/) and
|
121
20
|
query.should match(/_query_\:\"#{type}_access_group_t\:researcher/)
|
122
21
|
end
|
123
|
-
|
124
|
-
|
22
|
+
query.should match /^_query_:"\{!dismax qf=\$qf_dismax pf=\$pf_dismax\}query_string" AND NOT _query_:"info\\\\:fedora\/afmodel\\\\:FileAsset"/
|
23
|
+
end
|
24
|
+
it "should not have dismax clause if no user_query is suplied" do
|
25
|
+
stub_user = User.new
|
26
|
+
stub_user.stubs(:is_being_superuser?).returns false
|
27
|
+
helper.stubs(:current_user).returns(stub_user)
|
28
|
+
query = helper.send(:build_lucene_query, nil)
|
29
|
+
query.should match /^NOT _query_:"info\\\\:fedora\/afmodel\\\\:FileAsset"/
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should return fields for all the person specific discover, access, read fields" do
|
125
33
|
stub_user = User.new
|
126
34
|
stub_user.stubs(:is_being_superuser?).returns false
|
127
35
|
helper.stubs(:current_user).returns(stub_user)
|
@@ -129,8 +37,8 @@ describe Hydra::AccessControlsEnforcement do
|
|
129
37
|
["discover","edit","read"].each do |type|
|
130
38
|
query.should match(/_query_\:\"#{type}_access_person_t\:#{stub_user.login}/)
|
131
39
|
end
|
132
|
-
|
133
|
-
|
40
|
+
end
|
41
|
+
describe "for superusers" do
|
134
42
|
it "should return superuser access level" do
|
135
43
|
stub_user = User.new
|
136
44
|
stub_user.stubs(:is_being_superuser?).returns true
|
@@ -149,116 +57,9 @@ describe Hydra::AccessControlsEnforcement do
|
|
149
57
|
query.should_not match(/_query_\:\"#{type}_access_person_t\:\[\* TO \*\]/)
|
150
58
|
end
|
151
59
|
end
|
152
|
-
end
|
153
|
-
end
|
154
|
-
|
155
|
-
it "should have necessary fieldnames from initializer" do
|
156
|
-
Hydra.config[:permissions][:catchall].should_not be_nil
|
157
|
-
Hydra.config[:permissions][:discover][:group].should_not be_nil
|
158
|
-
Hydra.config[:permissions][:discover][:individual].should_not be_nil
|
159
|
-
Hydra.config[:permissions][:read][:group].should_not be_nil
|
160
|
-
Hydra.config[:permissions][:read][:individual].should_not be_nil
|
161
|
-
Hydra.config[:permissions][:edit][:group].should_not be_nil
|
162
|
-
Hydra.config[:permissions][:edit][:individual].should_not be_nil
|
163
|
-
Hydra.config[:permissions][:owner].should_not be_nil
|
164
|
-
Hydra.config[:permissions][:embargo_release_date].should_not be_nil
|
165
|
-
end
|
166
|
-
|
167
|
-
# SPECS FOR SINGLE DOCUMENT REQUESTS
|
168
|
-
describe 'Get Document Permissions By Id' do
|
169
|
-
before(:each) do
|
170
|
-
@doc_id = 'hydrangea:fixture_mods_article1'
|
171
|
-
@bad_id = "redrum"
|
172
|
-
@permissions_solr_response2, @permissions_solr_document = helper.get_permissions_solr_response_for_doc_id(@doc_id)
|
173
|
-
end
|
174
|
-
|
175
|
-
it "should raise Blacklight::InvalidSolrID for an unknown id" do
|
176
|
-
lambda {
|
177
|
-
helper.get_permissions_solr_response_for_doc_id(@bad_id)
|
178
|
-
}.should raise_error(Blacklight::Exceptions::InvalidSolrID)
|
179
|
-
end
|
180
|
-
|
181
|
-
it "should raise Blacklight::InvalidSolrID for nil id" do
|
182
|
-
lambda {
|
183
|
-
helper.get_permissions_solr_response_for_doc_id(nil)
|
184
|
-
}.should raise_error(Blacklight::Exceptions::InvalidSolrID)
|
185
|
-
end
|
186
|
-
|
187
|
-
it "should have a non-nil result for a known id" do
|
188
|
-
@permissions_solr_document.should_not == nil
|
189
|
-
end
|
190
|
-
it "should have a single document in the response for a known id" do
|
191
|
-
@permissions_solr_response2.docs.size.should == 1
|
192
|
-
end
|
193
|
-
it 'should have the expected value in the id field' do
|
194
|
-
@permissions_solr_document.id.should == @doc_id
|
195
|
-
end
|
196
|
-
it 'should have non-nil values for permissions fields that are set on the object' do
|
197
|
-
@permissions_solr_document.get(Hydra.config[:permissions][:catchall]).should_not be_nil
|
198
|
-
@permissions_solr_document.get(Hydra.config[:permissions][:discover][:group]).should_not be_nil
|
199
|
-
@permissions_solr_document.get(Hydra.config[:permissions][:edit][:group]).should_not be_nil
|
200
|
-
@permissions_solr_document.get(Hydra.config[:permissions][:edit][:individual]).should_not be_nil
|
201
|
-
@permissions_solr_document.get(Hydra.config[:permissions][:read][:group]).should_not be_nil
|
202
|
-
|
203
|
-
# @document.get(Hydra.config[:permissions][:discover][:individual]).should_not be_nil
|
204
|
-
# @document.get(Hydra.config[:permissions][:read][:individual]).should_not be_nil
|
205
|
-
# @document.get(Hydra.config[:permissions][:owner]).should_not be_nil
|
206
|
-
# @document.get(Hydra.config[:permissions][:embargo_release_date]).should_not be_nil
|
207
60
|
end
|
208
|
-
|
209
|
-
describe "permissions helpers" do
|
210
|
-
before :each do
|
211
|
-
@hydra_config_hash = { :permissions => {
|
212
|
-
:catchall => "access_t",
|
213
|
-
:discover => {:group =>"discover_access_group_t", :individual=>"discover_access_person_t"},
|
214
|
-
:read => {:group =>"read_foobar_group_t", :individual=>"read_foobar_person_t"},
|
215
|
-
:edit => {:group =>"edit_foobar_group_t", :individual=>"edit_foobar_person_t"},
|
216
|
-
:owner => "depositor_t",
|
217
|
-
:embargo_release_date => "embargo_release_date_dt"
|
218
|
-
}}
|
219
|
-
@stub_user = User.new
|
220
|
-
@stub_user.stubs(:is_being_superuser?).returns false
|
221
|
-
end
|
222
|
-
it "should check fields from Hydra.config when checking read permissions" do
|
223
|
-
Hydra.expects(:config).at_least(2).returns(@hydra_config_hash)
|
224
|
-
@permissions_solr_document.expects(:fetch).with("read_foobar_group_t",nil)
|
225
|
-
@permissions_solr_document.expects(:fetch).with("read_foobar_person_t",nil)
|
226
|
-
@permissions_solr_document.expects(:fetch).with("edit_foobar_group_t",nil)
|
227
|
-
@permissions_solr_document.expects(:fetch).with("edit_foobar_person_t",nil)
|
228
|
-
helper.stubs(:current_user).returns(@stub_user)
|
229
|
-
helper.reader?
|
230
|
-
end
|
231
|
-
it "should check fields from Hydra.config when checking edit permissions" do
|
232
|
-
Hydra.expects(:config).at_least(2).returns(@hydra_config_hash)
|
233
|
-
@permissions_solr_document.expects(:fetch).with("edit_foobar_group_t",nil)
|
234
|
-
@permissions_solr_document.expects(:fetch).with("edit_foobar_person_t",nil)
|
235
|
-
helper.stubs(:current_user).returns(@stub_user)
|
236
|
-
helper.editor?
|
237
|
-
end
|
238
|
-
it "should check fields from Hydra.config when executing test_permissions for editor" do
|
239
|
-
Hydra.expects(:config).at_least(2).returns(@hydra_config_hash)
|
240
|
-
@permissions_solr_document.expects(:fetch).with("edit_foobar_group_t",nil)
|
241
|
-
@permissions_solr_document.expects(:fetch).with("edit_foobar_person_t",nil)
|
242
|
-
helper.stubs(:current_user).returns(@stub_user)
|
243
|
-
helper.test_permission(:edit)
|
244
|
-
end
|
245
|
-
it "should check fields from Hydra.config when executing test_permissions for reader" do
|
246
|
-
Hydra.expects(:config).at_least(2).returns(@hydra_config_hash)
|
247
|
-
@permissions_solr_document.expects(:fetch).with("read_foobar_group_t",nil)
|
248
|
-
@permissions_solr_document.expects(:fetch).with("read_foobar_person_t",nil)
|
249
|
-
@permissions_solr_document.expects(:fetch).with("edit_foobar_group_t",nil)
|
250
|
-
@permissions_solr_document.expects(:fetch).with("edit_foobar_person_t",nil)
|
251
|
-
helper.stubs(:current_user).returns(@stub_user)
|
252
|
-
helper.test_permission(:read)
|
253
|
-
end
|
254
|
-
end
|
255
|
-
end
|
256
61
|
|
257
|
-
|
258
|
-
helper.should respond_to(:reader?)
|
259
|
-
helper.should respond_to(:editor?)
|
260
|
-
helper.should respond_to(:test_permission)
|
261
|
-
end
|
62
|
+
end
|
262
63
|
end
|
263
64
|
|
264
65
|
|
@@ -17,9 +17,11 @@ describe BlacklightHelper do
|
|
17
17
|
describe "render_head_content" do
|
18
18
|
before (:each) do
|
19
19
|
helper.expects(:content_for).with(:head).returns("My added content")
|
20
|
+
head_stuff = ["Something extra", "Stuff for unapi-server"]
|
21
|
+
helper.expects(:extra_head_content).twice().returns(head_stuff)
|
20
22
|
end
|
21
23
|
it "adds the content of content_for(:head) to the output" do
|
22
|
-
helper.render_head_content.should == "
|
24
|
+
helper.render_head_content.should == "Something extraMy added content"
|
23
25
|
end
|
24
26
|
end
|
25
27
|
describe "link_to_document" do
|
@@ -3,12 +3,12 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
3
3
|
describe Hydra::FileAssetsHelper do
|
4
4
|
describe "create_and_save_file_asset_from_params" do
|
5
5
|
it "should create the file asset, add posted blob to it and save the file asset" do
|
6
|
-
helper.stubs(:params).returns( { :Filedata => "" } )
|
7
6
|
mock_fa = mock("file asset")
|
7
|
+
helper.stubs(:params).returns( { :Filedata => [mock_fa] } )
|
8
8
|
mock_fa.expects(:save)
|
9
|
-
helper.expects(:
|
9
|
+
helper.expects(:create_asset_from_file).returns(mock_fa)
|
10
10
|
helper.expects(:add_posted_blob_to_asset)
|
11
|
-
helper.
|
11
|
+
helper.create_and_save_file_assets_from_params
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
@@ -16,34 +16,37 @@ describe Hydra::FileAssetsHelper do
|
|
16
16
|
it "should set object title and label" do
|
17
17
|
mock_file = mock("File")
|
18
18
|
file_name = "Posted Filename.foo"
|
19
|
-
helper.stubs(:params).returns( :Filedata=>mock_file, :Filename=>file_name, "container_id"=>"hydrangea:2973" )
|
19
|
+
helper.stubs(:params).returns( :Filedata=>[mock_file], :Filename=>file_name, "container_id"=>"hydrangea:2973" )
|
20
20
|
mock_fa = mock("file asset")
|
21
|
+
mock_file.expects(:original_filename).returns(file_name)
|
21
22
|
mock_fa.expects(:add_file_datastream).with(mock_file, :label=>file_name, :mimeType=>"mymimetype")
|
22
23
|
mock_fa.expects(:set_title_and_label).with( file_name, :only_if_blank=>true )
|
23
24
|
helper.expects(:mime_type).with(file_name).returns("mymimetype")
|
24
|
-
helper.add_posted_blob_to_asset(mock_fa)
|
25
|
+
helper.add_posted_blob_to_asset(mock_fa,mock_file)
|
25
26
|
end
|
26
27
|
|
27
28
|
it "should support submissions from swfupload" do
|
28
29
|
mock_file = mock("File")
|
29
30
|
file_name = "Posted Filename.foo"
|
30
|
-
helper.stubs(:params).returns( :Filedata=>mock_file, :Filename=>file_name, "container_id"=>"hydrangea:2973" )
|
31
|
+
helper.stubs(:params).returns( :Filedata=>[mock_file], :Filename=>file_name, "container_id"=>"hydrangea:2973" )
|
31
32
|
mock_fa = mock("file asset")
|
33
|
+
mock_file.expects(:original_filename).returns(file_name)
|
32
34
|
mock_fa.expects(:add_file_datastream).with(mock_file, :label=>file_name, :mimeType=>"mymimetype")
|
33
35
|
mock_fa.stubs(:set_title_and_label)
|
34
36
|
helper.expects(:mime_type).with(file_name).returns("mymimetype")
|
35
|
-
helper.add_posted_blob_to_asset(mock_fa)
|
37
|
+
helper.add_posted_blob_to_asset(mock_fa,mock_file)
|
36
38
|
end
|
37
39
|
it "should support submissions from single-file uploader" do
|
38
40
|
mock_file = mock("File")
|
39
41
|
file_name = "Posted Filename.foo"
|
40
|
-
helper.expects(:filename_from_params).returns(file_name)
|
41
|
-
helper.stubs(:params).returns( :Filedata=>mock_file, :container_id=>"hydrangea:2973" )
|
42
|
+
# helper.expects(:filename_from_params).returns(file_name)
|
43
|
+
helper.stubs(:params).returns( :Filedata=>[mock_file], :container_id=>"hydrangea:2973" )
|
44
|
+
mock_file.expects(:original_filename).returns(file_name)
|
42
45
|
mock_fa = mock("file asset")
|
43
46
|
helper.expects(:mime_type).with(file_name).returns("mymimetype")
|
44
47
|
mock_fa.expects(:add_file_datastream).with(mock_file, :label=>file_name, :mimeType=>"mymimetype")
|
45
48
|
mock_fa.stubs(:set_title_and_label)
|
46
|
-
helper.add_posted_blob_to_asset(mock_fa)
|
49
|
+
helper.add_posted_blob_to_asset(mock_fa,mock_file)
|
47
50
|
end
|
48
51
|
end
|
49
52
|
|
@@ -10,6 +10,9 @@ describe HydraAssetsHelper do
|
|
10
10
|
end
|
11
11
|
it "should generate login links with redirect params if user is not logged in" do
|
12
12
|
helper.expects(:current_user).returns false
|
13
|
+
# rails 3.1.x
|
14
|
+
# helper.link_to_create_asset("Create a foo", "foo_model").should == "<a href=\"/users/sign_in?redirect_params%5Baction%5D=new&redirect_params%5Bcontent_type%5D=foo_model&redirect_params%5Bcontroller%5D=assets\" class=\"create_asset\">Create a foo</a>"
|
15
|
+
# rails 3.0.x
|
13
16
|
helper.link_to_create_asset("Create a foo", "foo_model").should == "<a href=\"/users/sign_in?redirect_params[action]=new&redirect_params[content_type]=foo_model&redirect_params[controller]=assets\" class=\"create_asset\">Create a foo</a>"
|
14
17
|
end
|
15
18
|
end
|
@@ -17,7 +20,8 @@ describe HydraAssetsHelper do
|
|
17
20
|
describe "delete_asset_link" do
|
18
21
|
it "should generate a delete link and confirmation dialog" do
|
19
22
|
generated_html = helper.delete_asset_link("__PID__", "whizbang")
|
20
|
-
|
23
|
+
# "a.delete_asset[href='/catalog/__PID__/delete']", :content=> "Delete this whizbang"
|
24
|
+
generated_html.should have_selector "a.delete_asset_link[href='/catalog/__PID__/delete']", :content=> "Delete this whizbang"
|
21
25
|
generated_html.should be_html_safe
|
22
26
|
# generated_html.should have_tag 'a.inline[href=#delete_dialog]', "Delete this whizbang"
|
23
27
|
# generated_html.should have_tag 'div#delete_dialog' do
|
@@ -24,7 +24,9 @@ describe HydraDjatokaHelper do
|
|
24
24
|
mock_doc = mock("document")
|
25
25
|
mock_doc.expects(:kind_of?).with(SolrDocument).returns(true)
|
26
26
|
mock_doc.expects(:id).returns("myPid")
|
27
|
-
|
27
|
+
# rails 3.1.x
|
28
|
+
# hydra_djatoka_url_for(mock_doc, :scale=>"90").should == "/get/myPid.jp2?image_server%5Bscale%5D=90"
|
29
|
+
# rails 3.0.x
|
28
30
|
hydra_djatoka_url_for(mock_doc, :scale=>"90").should == "/get/myPid.jp2?image_server[scale]=90"
|
29
31
|
end
|
30
32
|
end
|