hydra-head 3.3.0 → 4.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (313) hide show
  1. data/Gemfile +2 -0
  2. data/Gemfile.lock +155 -181
  3. data/HISTORY.textile +5 -0
  4. data/INSTALL_PREREQ.textile +6 -3
  5. data/README.textile +8 -4
  6. data/{assets → app/assets}/images/hydra/powered_by_hydra.png +0 -0
  7. data/{assets → app/assets}/images/hydra/search-button.png +0 -0
  8. data/{assets → app/assets}/javascripts/date-picker/booking/index.html +0 -0
  9. data/{assets → app/assets}/javascripts/date-picker/calendarHTML.txt +0 -0
  10. data/{assets → app/assets}/javascripts/date-picker/css/datepicker.css +0 -0
  11. data/{assets → app/assets}/javascripts/date-picker/css/demo.css +0 -0
  12. data/{assets → app/assets}/javascripts/date-picker/index.html +0 -0
  13. data/{assets → app/assets}/javascripts/date-picker/js/datepicker.js +0 -0
  14. data/{assets → app/assets}/javascripts/date-picker/js/datepicker.packed.js +0 -0
  15. data/{assets → app/assets}/javascripts/date-picker/js/lang/ar.js +0 -0
  16. data/{assets → app/assets}/javascripts/date-picker/js/lang/cs.js +0 -0
  17. data/{assets → app/assets}/javascripts/date-picker/js/lang/da.js +0 -0
  18. data/{assets → app/assets}/javascripts/date-picker/js/lang/de.js +0 -0
  19. data/{assets → app/assets}/javascripts/date-picker/js/lang/en.js +0 -0
  20. data/{assets → app/assets}/javascripts/date-picker/js/lang/eo.js +0 -0
  21. data/{assets → app/assets}/javascripts/date-picker/js/lang/es.js +0 -0
  22. data/{assets → app/assets}/javascripts/date-picker/js/lang/et.js +0 -0
  23. data/{assets → app/assets}/javascripts/date-picker/js/lang/fi.js +0 -0
  24. data/{assets → app/assets}/javascripts/date-picker/js/lang/fr.js +0 -0
  25. data/{assets → app/assets}/javascripts/date-picker/js/lang/he.js +0 -0
  26. data/{assets → app/assets}/javascripts/date-picker/js/lang/hu.js +0 -0
  27. data/{assets → app/assets}/javascripts/date-picker/js/lang/id.js +0 -0
  28. data/{assets → app/assets}/javascripts/date-picker/js/lang/it.js +0 -0
  29. data/{assets → app/assets}/javascripts/date-picker/js/lang/kr.js +0 -0
  30. data/{assets → app/assets}/javascripts/date-picker/js/lang/lt.js +0 -0
  31. data/{assets → app/assets}/javascripts/date-picker/js/lang/lv.js +0 -0
  32. data/{assets → app/assets}/javascripts/date-picker/js/lang/nl.js +0 -0
  33. data/{assets → app/assets}/javascripts/date-picker/js/lang/no.js +0 -0
  34. data/{assets → app/assets}/javascripts/date-picker/js/lang/pl.js +0 -0
  35. data/{assets → app/assets}/javascripts/date-picker/js/lang/pt-br.js +0 -0
  36. data/{assets → app/assets}/javascripts/date-picker/js/lang/pt.js +0 -0
  37. data/{assets → app/assets}/javascripts/date-picker/js/lang/ru.js +0 -0
  38. data/{assets → app/assets}/javascripts/date-picker/js/lang/se.js +0 -0
  39. data/{assets → app/assets}/javascripts/date-picker/js/lang/si.js +0 -0
  40. data/{assets → app/assets}/javascripts/date-picker/js/lang/tr.js +0 -0
  41. data/{assets → app/assets}/javascripts/date-picker/language/index.html +0 -0
  42. data/{assets → app/assets}/javascripts/date-picker/media/Thumbs.db +0 -0
  43. data/{assets → app/assets}/javascripts/date-picker/media/backstripes.gif +0 -0
  44. data/{assets → app/assets}/javascripts/date-picker/media/bg_header.jpg +0 -0
  45. data/{assets → app/assets}/javascripts/date-picker/media/bullet1.gif +0 -0
  46. data/{assets → app/assets}/javascripts/date-picker/media/bullet2.gif +0 -0
  47. data/{assets → app/assets}/javascripts/date-picker/media/cal-grey.gif +0 -0
  48. data/{assets → app/assets}/javascripts/date-picker/media/cal.gif +0 -0
  49. data/{assets → app/assets}/javascripts/date-picker/media/gradient-e5e5e5-ffffff.gif +0 -0
  50. data/{assets → app/assets}/javascripts/hydra/hydra-head.js +0 -0
  51. data/{assets → app/assets}/javascripts/hydra/mediashelf.datepicker.js +0 -0
  52. data/{assets → app/assets}/javascripts/hydra/mediashelf.placeholder.js +0 -0
  53. data/{assets → app/assets}/javascripts/jquery.form.js +0 -0
  54. data/{assets → app/assets}/javascripts/jquery.ui.datepicker.js +0 -0
  55. data/{assets → app/assets}/javascripts/spin.min.js +0 -0
  56. data/{assets → app/assets}/stylesheets/hydra/html_refactor.css +2 -2
  57. data/{assets → app/assets}/stylesheets/hydra/hydrangea-split-button.css +0 -0
  58. data/{assets → app/assets}/stylesheets/hydra/hydrangea.css +0 -0
  59. data/{assets → app/assets}/stylesheets/hydra/ie-styles.css +0 -0
  60. data/{assets → app/assets}/stylesheets/hydra/styles.css +0 -0
  61. data/{assets → app/assets}/stylesheets/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  62. data/{assets → app/assets}/stylesheets/redmond/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
  63. data/{assets → app/assets}/stylesheets/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  64. data/{assets → app/assets}/stylesheets/redmond/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  65. data/{assets → app/assets}/stylesheets/redmond/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  66. data/{assets → app/assets}/stylesheets/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  67. data/{assets → app/assets}/stylesheets/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  68. data/{assets → app/assets}/stylesheets/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  69. data/{assets → app/assets}/stylesheets/redmond/images/ui-icons_217bc0_256x240.png +0 -0
  70. data/{assets → app/assets}/stylesheets/redmond/images/ui-icons_2e83ff_256x240.png +0 -0
  71. data/{assets → app/assets}/stylesheets/redmond/images/ui-icons_469bdd_256x240.png +0 -0
  72. data/{assets → app/assets}/stylesheets/redmond/images/ui-icons_6da8d5_256x240.png +0 -0
  73. data/{assets → app/assets}/stylesheets/redmond/images/ui-icons_cd0a0a_256x240.png +0 -0
  74. data/{assets → app/assets}/stylesheets/redmond/images/ui-icons_d8e7f3_256x240.png +0 -0
  75. data/{assets → app/assets}/stylesheets/redmond/images/ui-icons_f9bd01_256x240.png +0 -0
  76. data/{assets → app/assets}/stylesheets/redmond/jquery-ui-1.8.5.custom.css +0 -0
  77. data/app/controllers/downloads_controller.rb +0 -16
  78. data/app/controllers/hydra/assets_controller.rb +3 -0
  79. data/app/controllers/{contributors_controller.rb → hydra/contributors_controller.rb} +11 -16
  80. data/app/controllers/hydra/file_assets_controller.rb +3 -0
  81. data/app/controllers/hydra/permissions_controller.rb +104 -0
  82. data/app/helpers/hydra/blacklight_helper_behavior.rb +13 -51
  83. data/app/helpers/hydra/downloads_helper_behavior.rb +1 -1
  84. data/app/helpers/hydra/hydra_assets_helper_behavior.rb +5 -6
  85. data/app/helpers/hydra/hydra_fedora_metadata_helper_behavior.rb +0 -1
  86. data/app/helpers/hydra/hydra_helper_behavior.rb +1 -1
  87. data/app/helpers/hydra/hydra_uploader_helper_behavior.rb +1 -1
  88. data/app/models/mods_asset.rb +4 -0
  89. data/app/models/role_mapper.rb +2 -2
  90. data/app/views/catalog/_document_list.html.erb +2 -2
  91. data/app/views/catalog/_edit_partials/_default.html.erb +1 -1
  92. data/app/views/catalog/_edit_partials/_default_details.html.erb +1 -1
  93. data/app/views/catalog/_index_partials/_default.html.erb +1 -1
  94. data/app/views/catalog/_show_partials/_default.html.erb +1 -1
  95. data/app/views/contributors/_add_contributor_split_button.html.erb +4 -4
  96. data/app/views/contributors/_edit_conference.html.erb +1 -1
  97. data/app/views/contributors/_edit_organization.html.erb +1 -1
  98. data/app/views/contributors/_edit_person.html.erb +1 -1
  99. data/app/views/contributors/_index.html.erb +2 -2
  100. data/app/views/contributors/_show_organization.html.erb +2 -2
  101. data/app/views/contributors/new.html.erb +4 -4
  102. data/app/views/generic_content_objects/_description_form.html.erb +2 -2
  103. data/app/views/generic_contents/_index.html.erb +1 -1
  104. data/app/views/generic_images/_edit.html.erb +2 -2
  105. data/app/views/generic_images/_index.html.erb +1 -1
  106. data/app/views/{file_assets → hydra/file_assets}/_asset_saved_flash.html.erb +0 -0
  107. data/app/views/{file_assets → hydra/file_assets}/_deletable_result.html.erb +0 -0
  108. data/app/views/{file_assets → hydra/file_assets}/_file_assets_form.html.erb +3 -3
  109. data/app/views/{file_assets → hydra/file_assets}/_index.html.erb +3 -3
  110. data/app/views/{file_assets → hydra/file_assets}/_new.html.erb +0 -0
  111. data/app/views/{file_assets → hydra/file_assets}/_result.html.erb +1 -1
  112. data/app/views/{file_assets → hydra/file_assets}/index.html.erb +1 -1
  113. data/app/views/{permissions → hydra/permissions}/_edit_person_permissions.html.erb +0 -0
  114. data/app/views/{permissions → hydra/permissions}/_index.html.erb +1 -1
  115. data/app/views/{permissions → hydra/permissions}/_new.html.erb +0 -0
  116. data/app/views/{permissions → hydra/permissions}/_permissions_form.html.erb +5 -6
  117. data/app/views/{permissions → hydra/permissions}/index.html.erb +0 -0
  118. data/app/views/{permissions → hydra/permissions}/new.html.erb +0 -0
  119. data/app/views/layouts/application.html.erb +1 -1
  120. data/app/views/layouts/hydra-head.html.erb +1 -1
  121. data/app/views/mods_assets/_additional_info_form.html.erb +2 -2
  122. data/app/views/mods_assets/_contributor_form.html.erb +1 -1
  123. data/app/views/mods_assets/_edit_description.html.erb +1 -1
  124. data/app/views/mods_assets/_progress_box.html.erb +2 -2
  125. data/app/views/mods_assets/_publication_form.html.erb +1 -1
  126. data/app/views/mods_assets/_show.html.erb +2 -2
  127. data/app/views/mods_assets/_show_description.html.erb +1 -0
  128. data/app/views/mods_assets/_show_file_assets.html.erb +3 -3
  129. data/app/views/shared/_delete_asset_confirmation.html.erb +1 -1
  130. data/config/fedora.yml +9 -3
  131. data/hydra-head.gemspec +12 -42
  132. data/lib/application_controller.rb +6 -7
  133. data/lib/generators/hydra/head_generator.rb +18 -18
  134. data/lib/generators/hydra/templates/catalog_controller.rb +162 -0
  135. data/lib/generators/hydra/templates/config/fedora.yml +9 -3
  136. data/lib/generators/hydra/templates/config/initializers/hydra_config.rb +4 -4
  137. data/lib/hydra-head.rb +0 -1
  138. data/lib/hydra-head/controller.rb +10 -11
  139. data/lib/hydra-head/routes.rb +20 -22
  140. data/lib/hydra-head/version.rb +1 -1
  141. data/lib/hydra.rb +2 -4
  142. data/lib/hydra/assets.rb +16 -26
  143. data/lib/hydra/controller.rb +5 -14
  144. data/lib/hydra/file_assets.rb +36 -33
  145. data/lib/hydra/generic_content.rb +3 -3
  146. data/lib/hydra/image.rb +2 -2
  147. data/lib/hydra/repository_controller.rb +22 -6
  148. data/lib/hydra/rights_metadata.rb +1 -1
  149. data/lib/hydra/submission_workflow.rb +4 -3
  150. data/lib/railties/hydra-fixtures.rake +2 -97
  151. data/tasks/hydra-head-fixtures.rake +0 -34
  152. data/tasks/hydra-head.rake +4 -3
  153. data/test_support/etc/Gemfile +15 -10
  154. data/test_support/etc/rvmrc +1 -1
  155. data/test_support/features/mods_asset_edit.feature +1 -1
  156. data/test_support/features/step_definitions/create_asset_steps.rb +0 -4
  157. data/test_support/features/support/env.rb +1 -1
  158. data/test_support/features/support/paths.rb +13 -13
  159. data/test_support/spec/controllers/contributors_controller_spec.rb +2 -2
  160. data/test_support/spec/controllers/file_assets_controller_spec.rb +22 -24
  161. data/test_support/spec/controllers/{assets_controller_spec.rb → hydra-assets_controller_spec.rb} +26 -11
  162. data/test_support/spec/controllers/hydra_controller_spec.rb +2 -3
  163. data/test_support/spec/controllers/permissions_controller_spec.rb +9 -53
  164. data/test_support/spec/controllers/user_sessions_controller_spec.rb +3 -3
  165. data/test_support/spec/factories.rb +11 -0
  166. data/test_support/spec/helpers/blacklight_helper_spec.rb +6 -13
  167. data/test_support/spec/helpers/hydra-repository_controller_spec.rb +37 -1
  168. data/test_support/spec/helpers/hydra_assets_helper_spec.rb +58 -70
  169. data/test_support/spec/helpers/hydra_helper_spec.rb +2 -2
  170. data/test_support/spec/helpers/hydra_model_methods_spec.rb +4 -4
  171. data/test_support/spec/helpers/hydra_uploader_helper_spec.rb +3 -3
  172. data/test_support/spec/integration/file_asset_spec.rb +5 -4
  173. data/test_support/spec/models/hydra_rights_metadata_spec.rb +7 -1
  174. data/test_support/spec/spec_helper.rb +5 -4
  175. data/vendor/cache/RedCloth-4.2.9.gem +0 -0
  176. data/vendor/cache/actionmailer-3.2.2.gem +0 -0
  177. data/vendor/cache/actionpack-3.2.2.gem +0 -0
  178. data/vendor/cache/{active-fedora-3.3.0.gem → active-fedora-4.0.0.rc13.gem} +0 -0
  179. data/vendor/cache/activemodel-3.2.2.gem +0 -0
  180. data/vendor/cache/activerecord-3.2.2.gem +0 -0
  181. data/vendor/cache/activeresource-3.2.2.gem +0 -0
  182. data/vendor/cache/activesupport-3.2.2.gem +0 -0
  183. data/vendor/cache/{addressable-2.2.6.gem → addressable-2.2.7.gem} +0 -0
  184. data/vendor/cache/arel-3.0.2.gem +0 -0
  185. data/vendor/cache/builder-3.0.0.gem +0 -0
  186. data/vendor/cache/childprocess-0.3.1.gem +0 -0
  187. data/vendor/cache/chunky_png-1.2.5.gem +0 -0
  188. data/vendor/cache/compass-0.12.rc.1.gem +0 -0
  189. data/vendor/cache/cucumber-1.1.9.gem +0 -0
  190. data/vendor/cache/{cucumber-rails-1.2.1.gem → cucumber-rails-1.3.0.gem} +0 -0
  191. data/vendor/cache/daemons-1.1.8.gem +0 -0
  192. data/vendor/cache/devise-2.0.4.gem +0 -0
  193. data/vendor/cache/erubis-2.7.0.gem +0 -0
  194. data/vendor/cache/factory_girl-2.6.1.gem +0 -0
  195. data/vendor/cache/fssm-0.2.8.1.gem +0 -0
  196. data/vendor/cache/gherkin-2.9.0.gem +0 -0
  197. data/vendor/cache/hike-1.2.1.gem +0 -0
  198. data/vendor/cache/httpi-0.9.6.gem +0 -0
  199. data/vendor/cache/i18n-0.6.0.gem +0 -0
  200. data/vendor/cache/journey-1.0.3.gem +0 -0
  201. data/vendor/cache/mail-2.4.3.gem +0 -0
  202. data/vendor/cache/marc-0.4.4.gem +0 -0
  203. data/vendor/cache/mediashelf-loggable-0.4.9.gem +0 -0
  204. data/vendor/cache/mocha-0.10.5.gem +0 -0
  205. data/vendor/cache/multi_json-1.1.0.gem +0 -0
  206. data/vendor/cache/nori-1.1.0.gem +0 -0
  207. data/vendor/cache/om-1.5.3.gem +0 -0
  208. data/vendor/cache/rack-1.4.1.gem +0 -0
  209. data/vendor/cache/rack-cache-1.1.gem +0 -0
  210. data/vendor/cache/rack-ssl-1.3.2.gem +0 -0
  211. data/vendor/cache/rack-test-0.6.1.gem +0 -0
  212. data/vendor/cache/{rails-3.0.11.gem → rails-3.2.2.gem} +0 -0
  213. data/vendor/cache/railties-3.2.2.gem +0 -0
  214. data/vendor/cache/rdf-0.3.5.1.gem +0 -0
  215. data/vendor/cache/rsolr-1.0.6.gem +0 -0
  216. data/vendor/cache/rspec-2.6.0.gem +0 -0
  217. data/vendor/cache/rspec-core-2.6.4.gem +0 -0
  218. data/vendor/cache/rspec-expectations-2.6.0.gem +0 -0
  219. data/vendor/cache/rspec-mocks-2.6.0.gem +0 -0
  220. data/vendor/cache/rspec-rails-2.6.1.gem +0 -0
  221. data/vendor/cache/rubydora-0.5.7.gem +0 -0
  222. data/vendor/cache/rubyzip-0.9.6.1.gem +0 -0
  223. data/vendor/cache/sass-3.1.15.gem +0 -0
  224. data/vendor/cache/sass-rails-3.2.4.gem +0 -0
  225. data/vendor/cache/savon-0.9.9.gem +0 -0
  226. data/vendor/cache/selenium-webdriver-2.20.0.gem +0 -0
  227. data/vendor/cache/solrizer-fedora-1.2.5.gem +0 -0
  228. data/vendor/cache/sprockets-2.1.2.gem +0 -0
  229. data/vendor/cache/sqlite3-1.3.5.gem +0 -0
  230. data/vendor/cache/sqlite3-ruby-1.3.3.gem +0 -0
  231. data/vendor/cache/stomp-1.2.1.gem +0 -0
  232. data/vendor/cache/tilt-1.3.3.gem +0 -0
  233. data/vendor/cache/tzinfo-0.3.32.gem +0 -0
  234. data/vendor/cache/unicode-0.4.2.gem +0 -0
  235. data/vendor/cache/warden-1.1.1.gem +0 -0
  236. data/vendor/cache/wasabi-2.1.0.gem +0 -0
  237. data/vendor/cache/yard-0.7.5.gem +0 -0
  238. metadata +298 -843
  239. data/app/controllers/assets_controller.rb +0 -3
  240. data/app/controllers/file_assets_controller.rb +0 -3
  241. data/app/controllers/permissions_controller.rb +0 -152
  242. data/app/views/generic_contents/_edit.html.erb_ +0 -39
  243. data/app/views/mods_assets/_edit.html.erb_ +0 -63
  244. data/lib/generators/hydra/templates/config/initializers/blacklight_config.rb +0 -253
  245. data/lib/hydra-head/railtie.rb +0 -11
  246. data/lib/mediashelf/active_fedora_helper.rb +0 -68
  247. data/test_support/spec/lib/active_fedora_helper_spec.rb +0 -56
  248. data/vendor/cache/RedCloth-4.2.3.gem +0 -0
  249. data/vendor/cache/abstract-1.0.0.gem +0 -0
  250. data/vendor/cache/actionmailer-3.0.11.gem +0 -0
  251. data/vendor/cache/actionpack-3.0.11.gem +0 -0
  252. data/vendor/cache/activemodel-3.0.11.gem +0 -0
  253. data/vendor/cache/activerecord-3.0.11.gem +0 -0
  254. data/vendor/cache/activeresource-3.0.11.gem +0 -0
  255. data/vendor/cache/activesupport-3.0.11.gem +0 -0
  256. data/vendor/cache/arel-2.0.10.gem +0 -0
  257. data/vendor/cache/blacklight-3.1.2.gem +0 -0
  258. data/vendor/cache/builder-2.1.2.gem +0 -0
  259. data/vendor/cache/childprocess-0.3.0.gem +0 -0
  260. data/vendor/cache/columnize-0.3.6.gem +0 -0
  261. data/vendor/cache/crack-0.3.1.gem +0 -0
  262. data/vendor/cache/cucumber-1.1.4.gem +0 -0
  263. data/vendor/cache/curb-0.7.15.gem +0 -0
  264. data/vendor/cache/daemons-1.1.6.gem +0 -0
  265. data/vendor/cache/database_cleaner-0.7.1.gem +0 -0
  266. data/vendor/cache/devise-1.5.3.gem +0 -0
  267. data/vendor/cache/erubis-2.6.6.gem +0 -0
  268. data/vendor/cache/facets-2.8.4.gem +0 -0
  269. data/vendor/cache/factory_girl-2.5.0.gem +0 -0
  270. data/vendor/cache/gherkin-2.7.6.gem +0 -0
  271. data/vendor/cache/haml-3.1.4.gem +0 -0
  272. data/vendor/cache/httparty-0.8.1.gem +0 -0
  273. data/vendor/cache/httpi-0.9.5.gem +0 -0
  274. data/vendor/cache/i18n-0.5.0.gem +0 -0
  275. data/vendor/cache/json_pure-1.6.5.gem +0 -0
  276. data/vendor/cache/launchy-2.0.5.gem +0 -0
  277. data/vendor/cache/linecache-0.46.gem +0 -0
  278. data/vendor/cache/mail-2.2.19.gem +0 -0
  279. data/vendor/cache/marc-0.4.3.gem +0 -0
  280. data/vendor/cache/mediashelf-loggable-0.4.7.gem +0 -0
  281. data/vendor/cache/mocha-0.10.3.gem +0 -0
  282. data/vendor/cache/multi_json-1.0.4.gem +0 -0
  283. data/vendor/cache/multi_xml-0.4.1.gem +0 -0
  284. data/vendor/cache/nori-1.0.2.gem +0 -0
  285. data/vendor/cache/om-1.5.1.gem +0 -0
  286. data/vendor/cache/rack-1.2.5.gem +0 -0
  287. data/vendor/cache/rack-mount-0.6.14.gem +0 -0
  288. data/vendor/cache/rack-test-0.5.7.gem +0 -0
  289. data/vendor/cache/railties-3.0.11.gem +0 -0
  290. data/vendor/cache/rbx-require-relative-0.0.5.gem +0 -0
  291. data/vendor/cache/rdf-0.3.4.1.gem +0 -0
  292. data/vendor/cache/rsolr-1.0.2.gem +0 -0
  293. data/vendor/cache/rspec-2.8.0.gem +0 -0
  294. data/vendor/cache/rspec-core-2.8.0.gem +0 -0
  295. data/vendor/cache/rspec-expectations-2.8.0.gem +0 -0
  296. data/vendor/cache/rspec-mocks-2.8.0.gem +0 -0
  297. data/vendor/cache/rspec-rails-2.8.1.gem +0 -0
  298. data/vendor/cache/ruby-debug-0.10.4.gem +0 -0
  299. data/vendor/cache/ruby-debug-base-0.10.4.gem +0 -0
  300. data/vendor/cache/rubydora-0.5.1.gem +0 -0
  301. data/vendor/cache/rubyzip-0.9.5.gem +0 -0
  302. data/vendor/cache/savon-0.9.7.gem +0 -0
  303. data/vendor/cache/selenium-webdriver-2.18.0.gem +0 -0
  304. data/vendor/cache/solrizer-fedora-1.2.3.gem +0 -0
  305. data/vendor/cache/sqlite3-ruby-1.2.5.gem +0 -0
  306. data/vendor/cache/stomp-1.2.0.gem +0 -0
  307. data/vendor/cache/trollop-1.16.2.gem +0 -0
  308. data/vendor/cache/tzinfo-0.3.31.gem +0 -0
  309. data/vendor/cache/unicode-0.4.0.gem +0 -0
  310. data/vendor/cache/warden-1.1.0.gem +0 -0
  311. data/vendor/cache/wasabi-2.0.0.gem +0 -0
  312. data/vendor/cache/will_paginate-3.0.2.gem +0 -0
  313. data/vendor/cache/yard-0.7.4.gem +0 -0
@@ -1,33 +1,27 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
- describe FileAssetsController do
3
+ describe Hydra::FileAssetsController do
4
4
  include Devise::TestHelpers
5
5
 
6
6
  before do
7
7
  session[:user]='bob'
8
8
  end
9
9
 
10
- ## Plugin Tests
11
- it "should use FileAssetsController" do
12
- controller.should be_an_instance_of(FileAssetsController)
13
- end
14
10
  it "should be restful" do
15
- { :get => "/file_assets" }.should route_to(:controller=>'file_assets', :action=>'index')
16
- { :get => "/file_assets/3" }.should route_to(:controller=>'file_assets', :action=>'show', :id=>"3")
17
- { :delete=> "/file_assets/3" }.should route_to(:controller=>'file_assets', :action=>'destroy', :id=>"3")
18
- { :put=>"/file_assets/3" }.should route_to(:controller=>'file_assets', :action=>'update', :id=>"3")
19
- { :get => "/file_assets/3/edit" }.should route_to(:controller=>'file_assets', :action=>'edit', :id=>"3")
20
- { :get =>"/file_assets/new" }.should route_to(:controller=>'file_assets', :action=>'new')
21
- { :post => "/file_assets" }.should route_to(:controller=>'file_assets', :action=>'create')
11
+ { :get => "/hydra/file_assets" }.should route_to(:controller=>'hydra/file_assets', :action=>'index')
12
+ { :get => "/hydra/file_assets/3" }.should route_to(:controller=>'hydra/file_assets', :action=>'show', :id=>"3")
13
+ { :delete=> "/hydra/file_assets/3" }.should route_to(:controller=>'hydra/file_assets', :action=>'destroy', :id=>"3")
14
+ { :put=>"/hydra/file_assets/3" }.should route_to(:controller=>'hydra/file_assets', :action=>'update', :id=>"3")
15
+ { :get => "/hydra/file_assets/3/edit" }.should route_to(:controller=>'hydra/file_assets', :action=>'edit', :id=>"3")
16
+ { :get =>"/hydra/file_assets/new" }.should route_to(:controller=>'hydra/file_assets', :action=>'new')
17
+ { :post => "/hydra/file_assets" }.should route_to(:controller=>'hydra/file_assets', :action=>'create')
22
18
 
23
19
  end
24
20
 
25
21
  describe "index" do
26
22
 
27
23
  it "should find all file assets in the repo if no container_id is provided" do
28
- #FileAsset.expects(:find_by_solr).with(:all, {}).returns("solr result")
29
- # Solr::Connection.any_instance.expects(:query).with('conforms_to_field:info\:fedora/afmodel\:FileAsset', {}).returns("solr result")
30
- Solr::Connection.any_instance.expects(:query).with('active_fedora_model_s:FileAsset', {}).returns("solr result")
24
+ ActiveFedora::SolrService.expects(:query).with('active_fedora_model_s:FileAsset', {}).returns("solr result")
31
25
  controller.stubs(:load_permissions_from_solr)
32
26
  ActiveFedora::Base.expects(:new).never
33
27
  xhr :get, :index
@@ -40,7 +34,7 @@ describe FileAssetsController do
40
34
  controller.expects(:get_solr_response_for_doc_id).with('_PID_').returns(["container solr response","container solr doc"])
41
35
  controller.stubs(:load_permissions_from_solr)
42
36
 
43
- ActiveFedora::Base.expects(:load_instance).with("_PID_").returns(mock_container)
37
+ ActiveFedora::Base.expects(:find).with("_PID_").returns(mock_container)
44
38
  xhr :get, :index, :asset_id=>"_PID_"
45
39
  assigns[:response].should == "assets solr response"
46
40
  assigns[:document_list].should == "assets solr list"
@@ -57,7 +51,7 @@ describe FileAssetsController do
57
51
  mock_solr_hash = {"has_collection_member_field"=>["info:fedora/foo:id"]}
58
52
  mock_container = mock("container")
59
53
  mock_container.expects(:collection_members).with(:response_format=>:solr).returns("solr result")
60
- ActiveFedora::Base.expects(:load_instance).with("_PID_").returns(mock_container)
54
+ ActiveFedora::Base.expects(:find).with("_PID_").returns(mock_container)
61
55
  xhr :get, :index, :asset_id=>"_PID_"
62
56
  assigns[:solr_result].should == "solr result"
63
57
  assigns[:container].should == mock_container
@@ -106,7 +100,7 @@ describe FileAssetsController do
106
100
  it "should redirect back to edit view if no Filedata is provided but container_id is provided" do
107
101
  controller.expects(:model_config).at_least_once.returns(controller.workflow_config[:mods_assets])
108
102
  xhr :post, :create, :container_id=>"_PID_", :wf_step=>"files"
109
- response.should redirect_to(:controller=>"catalog", :id=>"_PID_", :action => 'edit', :wf_step=>"permissions")
103
+ response.should redirect_to edit_catalog_path("_PID_", :wf_step=>"permissions")
110
104
  request.flash[:notice].should == "You must specify a file to upload."
111
105
  end
112
106
  it "should display a message that you need to select a file to upload if no Filedata is provided" do
@@ -119,7 +113,7 @@ describe FileAssetsController do
119
113
  describe "destroy" do
120
114
  it "should delete the asset identified by pid" do
121
115
  mock_obj = mock("asset", :delete)
122
- ActiveFedora::Base.expects(:load_instance).with("__PID__").returns(mock_obj)
116
+ ActiveFedora::Base.expects(:find).with("__PID__").returns(mock_obj)
123
117
  delete(:destroy, :id => "__PID__")
124
118
  end
125
119
  it "should remove container relationship and perform proper garbage collection" do
@@ -127,15 +121,19 @@ describe FileAssetsController do
127
121
  mock_container = mock("asset")
128
122
  mock_container.expects(:file_objects_remove).with("_file_asset_pid_")
129
123
  FileAsset.expects(:garbage_collect).with("_file_asset_pid_")
130
- ActiveFedora::Base.expects(:load_instance).with("_container_pid_").returns(mock_container)
124
+ ActiveFedora::Base.expects(:find).with("_container_pid_").returns(mock_container)
131
125
  delete(:destroy, :id => "_file_asset_pid_", :asset_id=>"_container_pid_")
132
126
  end
133
127
  end
134
128
 
135
129
  describe "integration tests - " do
136
130
  before(:all) do
131
+ class TestObj < ActiveFedora::Base
132
+ include ActiveFedora::FileManagement
133
+ end
134
+
137
135
  ActiveFedora::SolrService.register(ActiveFedora.solr_config[:url])
138
- @test_container = ActiveFedora::Base.new
136
+ @test_container = TestObj.new
139
137
  @test_container.add_relationship(:is_member_of, "info:fedora/foo:1")
140
138
  @test_container.add_relationship(:has_collection_member, "info:fedora/foo:2")
141
139
  @test_container.save
@@ -148,6 +146,7 @@ describe FileAssetsController do
148
146
  after(:all) do
149
147
  @test_container.delete
150
148
  @test_fa.delete
149
+ Object.send(:remove_const, :TestObj)
151
150
  end
152
151
 
153
152
  describe "index" do
@@ -172,12 +171,11 @@ describe FileAssetsController do
172
171
  end
173
172
 
174
173
  it "should set is_part_of relationship on the new File Asset pointing back at the container" do
175
- test_file = fixture("small_file.txt")
174
+ test_file = fixture_file_upload('/small_file.txt', 'text/plain')
176
175
  filename = "My File Name"
177
- test_file.expects(:original_filename).twice.returns("My File Name")
178
176
  post :create, {:Filedata=>[test_file], :Filename=>filename, :container_id=>@test_container.pid}
179
177
  assigns(:file_asset).ids_for_outbound(:is_part_of).should == [@test_container.pid]
180
- retrieved_fa = FileAsset.load_instance(@test_fa.pid).ids_for_outbound(:is_part_of).should == [@test_container.pid]
178
+ retrieved_fa = FileAsset.find(@test_fa.pid).ids_for_outbound(:is_part_of).should == [@test_container.pid]
181
179
  end
182
180
  end
183
181
  end
@@ -8,19 +8,34 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
8
8
  # or
9
9
  # rake cucumber
10
10
 
11
- describe AssetsController do
11
+ describe Hydra::AssetsController do
12
12
 
13
13
  before do
14
14
  request.env['WEBAUTH_USER']='bob'
15
15
  end
16
16
 
17
17
  it "should use DocumentController" do
18
- controller.should be_an_instance_of(AssetsController)
18
+ controller.should be_an_instance_of(Hydra::AssetsController)
19
+ end
20
+
21
+ describe "new" do
22
+ before do
23
+ @user = FactoryGirl.create(:user)
24
+ sign_in @user
25
+ @asset = ModsAsset.new
26
+ ModsAsset.stubs(:new).returns(@asset)
27
+ end
28
+ it "should create and redirect with a flash message" do
29
+ get :new, :content_type=>'mods_asset'
30
+ response.should redirect_to edit_catalog_path(@asset, :new_asset=>true)
31
+ flash[:notice].should == "Created a Mods Asset with pid #{@asset.pid}. Now it's ready to be edited."
32
+ end
19
33
  end
20
34
 
21
35
  describe "update" do
22
36
  it "should update the object with the attributes provided" do
23
- mock_document = mock("document")
37
+ mock_document = ModsAsset.new
38
+ mock_document.stubs(:pid => '_PID_')
24
39
  mock_document.stubs(:update_from_computing_id).returns(nil)
25
40
  controller.expects(:check_embargo_date_format).returns(nil)
26
41
 
@@ -37,10 +52,14 @@ describe AssetsController do
37
52
  mock_document.expects(:save)
38
53
  controller.stubs(:display_release_status_notice)
39
54
  put :update, {:id=>"_PID_"}.merge(simple_request_params)
55
+
56
+ response.should redirect_to catalog_path(mock_document.pid, :viewing_context=>"browse")
57
+
40
58
  end
41
59
 
42
60
  it "should support updating OM::XML datastreams" do
43
- mock_document = mock("document")
61
+ mock_document = ModsAsset.new
62
+ mock_document.stubs(:pid => '_PID_')
44
63
  mock_document.stubs(:update_from_computing_id).returns(nil)
45
64
  ModsAsset.expects(:find).with("_PID_").returns(mock_document)
46
65
 
@@ -66,6 +85,7 @@ describe AssetsController do
66
85
  controller.stubs(:display_release_status_notice)
67
86
  put :update, nokogiri_request_params
68
87
  # put :update, :id=>"_PID_", "content_type"=>"mods_asset", "datastream"=>"descMetadata", "field_name"=>"person_0_last_name","parent_select"=>[{":person"=>"0"}, ":last_name"], "child_index"=>"0", "value"=>"Sample New Value"
88
+ response.should redirect_to edit_catalog_path(mock_document.pid, :wf_step=>"publication")
69
89
  end
70
90
 
71
91
  it "should handle complete updates of many fields in many datastreams" do
@@ -88,9 +108,7 @@ describe AssetsController do
88
108
  it "should delete the asset identified by pid" do
89
109
  mock_obj = mock("asset", :delete)
90
110
  mock_obj.expects(:destroy_child_assets).returns([])
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
- ModsAsset.expects(:load_instance_from_solr).with("__PID__").returns(mock_obj)
111
+ ActiveFedora::Base.expects(:find).with("__PID__").returns(mock_obj)
94
112
  delete(:destroy, :id => "__PID__")
95
113
  end
96
114
  end
@@ -101,10 +119,7 @@ describe AssetsController do
101
119
  it "should withdraw the asset identified by pid" do
102
120
  mock_obj = mock("asset", :delete)
103
121
  mock_obj.expects(:destroy_child_assets).returns([])
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])
107
- ModsAsset.expects(:load_instance_from_solr).with("__PID__").returns(mock_obj)
122
+ ActiveFedora::Base.expects(:find).with("__PID__").returns(mock_obj)
108
123
  delete(:withdraw, :id => "__PID__")
109
124
  end
110
125
  end
@@ -25,9 +25,8 @@ describe HydraControllerTest do
25
25
 
26
26
  assigns[:document_fedora].class.should == ModsAsset
27
27
  assigns[:document_fedora].pid.should == 'hydrangea:fixture_mods_article1'
28
- assigns[:file_assets].class.should == Solr::Response::Standard
29
- assigns[:file_assets].hits.size.should == 1
30
- assigns[:file_assets].hits.first["id"].should == "hydrangea:fixture_uploaded_svg1"
28
+ assigns[:file_assets].size.should == 1
29
+ assigns[:file_assets].first["id"].should == "hydrangea:fixture_uploaded_svg1"
31
30
  end
32
31
  end
33
32
  end
@@ -1,64 +1,20 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
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 PermissionsController do
3
+ describe Hydra::PermissionsController do
12
4
  describe "create" do
13
5
  it "should create a new permissions entry" do
14
- stub_solrizer = stub("solrizer", :solrize)
15
- Solrizer::Fedora::Solrizer.stubs(:new).returns(stub_solrizer)
16
- mock_ds = mock("Datastream")
17
- Hydra::RightsMetadata.stubs(:from_xml)
18
- Hydra::RightsMetadata.stubs(:new).returns(mock_ds)
19
- mock_ds.expects(:permissions).with({"person" => "_person_id_"}, "read")
20
- mock_ds.stubs(:content)
21
- mock_ds.stubs(:pid=)
22
- mock_ds.stubs(:dsid=)
23
- mock_ds.stubs(:save)
24
- mock_ds.stubs(:serialize!)
25
- mock_object = mock("object")
26
- mock_object.stubs(:datastreams).returns({"rightsMetadata"=>mock_ds})
27
- mock_inner = mock('Mock Inner')
28
- mock_object.stubs(:inner_object).returns(mock_inner)
29
-
30
- ActiveFedora::Base.expects(:load_instance).with("_pid_").returns(mock_object)
31
-
32
- post :create, :asset_id=>"_pid_", :permission => {"actor_id"=>"_person_id_","actor_type"=>"person","access_level"=>"read"}
6
+ @asset = ModsAsset.create
7
+ post :create, :asset_id=>@asset.pid, :permission => {"actor_id"=>"_person_id_","actor_type"=>"person","access_level"=>"read"}
8
+ ModsAsset.find(@asset.pid).rightsMetadata.individuals.should == {"_person_id_" => "read"}
33
9
  end
34
10
  end
35
11
  describe "update" do
36
12
  it "should call Hydra::RightsMetadata properties setter" do
37
- stub_solrizer = stub("solrizer", :solrize)
38
- Solrizer::Fedora::Solrizer.stubs(:new).returns(stub_solrizer)
39
- mock_ds = mock("Datastream")
40
- Hydra::RightsMetadata.stubs(:from_xml)
41
- Hydra::RightsMetadata.stubs(:new).returns(mock_ds)
42
- mock_ds.expects(:update_permissions).with({"group" => {"_group_id_"=>"discover"}})
43
- mock_ds.stubs(:content)
44
- mock_ds.stubs(:pid=)
45
- mock_ds.stubs(:dsid=)
46
- mock_ds.stubs(:serialize!)
47
- mock_ds.stubs(:save)
48
- mock_object = mock("object")
49
- mock_object.stubs(:datastreams).returns({"rightsMetadata"=>mock_ds})
50
- mock_inner = mock('Mock Inner')
51
- mock_object.stubs(:inner_object).returns(mock_inner)
52
-
53
- ActiveFedora::Base.expects(:load_instance).with("_pid_").returns(mock_object)
54
- # must define new routes that can handle url like this
55
- # /assets/_pid_/permissions/group/_group_id_
56
- # /assets/:asset_id/permissions/:actor_type/:actor_id
57
-
58
- # this is what currently works
59
- # post :update, :asset_id=>"_pid_", :actor_type=>"group", :actor_id=>"_group_id_", :permission => {"group"=>"_group_id_","level"=>"discover"}
60
-
61
- post :update, :asset_id=>"_pid_", :permission => {"group"=>{"_group_id_"=>"discover"}}
13
+ @asset = ModsAsset.new
14
+ @asset.rightsMetadata.permissions({:group=>"students"})
15
+ @asset.save
16
+ post :update, :asset_id=>@asset.pid, :permission => {"group"=>{"_group_id_"=>"discover"}}
17
+ ModsAsset.find(@asset.pid).rightsMetadata.groups.should == {"_group_id_" => "discover"}
62
18
  end
63
19
  end
64
20
  end
@@ -27,9 +27,9 @@ describe UserSessionsController do
27
27
 
28
28
  it "should redirect to the referer" do
29
29
  controller.stubs(:current_user).returns(@user)
30
- request.env["HTTP_REFERER"] = file_assets_path
30
+ request.env["HTTP_REFERER"] = hydra_file_assets_path
31
31
  get :superuser
32
- response.should redirect_to(file_assets_path)
32
+ response.should redirect_to(hydra_file_assets_path)
33
33
  end
34
34
 
35
- end
35
+ end
@@ -0,0 +1,11 @@
1
+ FactoryGirl.define do
2
+ sequence :email do |n|
3
+ "person#{n}@example.com"
4
+ end
5
+
6
+ factory :user do
7
+ email
8
+ password 'password'
9
+ end
10
+
11
+ end
@@ -13,7 +13,12 @@ describe BlacklightHelper do
13
13
 
14
14
  describe "Overridden blacklight methods" do
15
15
  describe "document_partial_name" do
16
+
16
17
  it "Should lop off everything before the first colin after the slash" do
18
+ @config = Blacklight::Configuration.new.configure do |config|
19
+ config.show.display_type = 'has_model_s'
20
+ end
21
+ helper.stubs(:blacklight_config).returns(@config)
17
22
  helper.document_partial_name('has_model_s' => ["info:fedora/afmodel:Presentation"]).should == "presentations"
18
23
  helper.document_partial_name('has_model_s' => ["info:fedora/hull-cModel:genericContent"]).should == "generic_contents"
19
24
  end
@@ -23,7 +28,7 @@ describe BlacklightHelper do
23
28
  item = stub("item", :value=>'two', :hits=>9)
24
29
 
25
30
  ret_val = helper.render_selected_facet_value("one", item)
26
- ret_val.should == "<span class=\"selected\">two (9)</span>"
31
+ ret_val.should == "<span class=\"selected label\">two <span class=\"count\">(9)</span></span>"
27
32
  ret_val.should be_html_safe
28
33
  end
29
34
  end
@@ -37,18 +42,6 @@ describe BlacklightHelper do
37
42
  helper.render_head_content.should == "Something extraMy added content"
38
43
  end
39
44
  end
40
- describe "link_to_document" do
41
- before(:each)do
42
- @mock_doc = mock('mock doc')
43
- @mock_doc.expects(:[]).with(:id).returns("123456")
44
- end
45
- it "passes on the title attribute to the link_to_with_data method" do
46
- helper.link_to_document(@mock_doc,:label=>"Some crazy long label...",:title=>"Some crazy longer label").should match(/title=\"Some crazy longer label\"/)
47
- end
48
- it "doesn't add an erroneous title attribute if one isn't provided" do
49
- helper.link_to_document(@mock_doc,:label=>"Some crazy long label...").should_not match(/title=/)
50
- end
51
- end
52
45
 
53
46
  describe "link back to catalog" do
54
47
  it "should return the view parameter in the link back to catalog method if there is one in the users previous search session" do
@@ -27,6 +27,42 @@ describe Hydra::RepositoryController do
27
27
  end
28
28
  end
29
29
 
30
+ describe "retrieve_af_model" do
31
+ it "should return a Model class if the named model has been defined" do
32
+ result = helper.retrieve_af_model("file_asset")
33
+ result.should == FileAsset
34
+ result.superclass.should == ActiveFedora::Base
35
+ result.included_modules.should include(ActiveFedora::Model)
36
+ end
37
+
38
+ it "should accept camel cased OR underscored model name" do
39
+ result = helper.retrieve_af_model("generic_content")
40
+ result.should == GenericContent
41
+
42
+ result = helper.retrieve_af_model("GenericContent")
43
+ result.should == GenericContent
44
+
45
+ end
46
+
47
+ it "should return false if the name is not a real class" do
48
+ result = helper.retrieve_af_model("foo_foo_class_class")
49
+ result.should be_false
50
+ end
51
+
52
+ end
53
+
54
+ describe "load_af_instance_from_solr" do
55
+ it "should return an ActiveFedora object given a valid solr doc same as loading from Fedora" do
56
+ pid = "hydrangea:fixture_mods_article1"
57
+ result = ActiveFedora::Base.find_by_solr(pid)
58
+ solr_doc = result.first
59
+ solr_af_obj = helper.load_af_instance_from_solr(solr_doc)
60
+ fed_af_obj = ActiveFedora::Base.find(pid)
61
+ #check both inbound and outbound match
62
+ fed_af_obj.outbound_relationships.to_hash.should == solr_af_obj.outbound_relationships.to_hash
63
+ fed_af_obj.inbound_relationships.should == solr_af_obj.inbound_relationships
64
+ end
65
+ end
30
66
 
31
67
 
32
- end
68
+ end
@@ -6,14 +6,14 @@ describe HydraAssetsHelper do
6
6
  describe "link_to_create_asset" do
7
7
  it "should generate login links with redirect params if user is not logged in" do
8
8
  helper.expects(:current_user).returns User.new
9
- helper.link_to_create_asset("Create a foo", "foo_model").should == "<a href=\"/assets/new?content_type=foo_model\" class=\"create_asset\">Create a foo</a>"
9
+ helper.link_to_create_asset("Create a foo", "foo_model").should == "<a href=\"/hydra/assets/new?content_type=foo_model\" class=\"create_asset\">Create a foo</a>"
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
13
  # rails 3.1.x
14
14
  # helper.link_to_create_asset("Create a foo", "foo_model").should == "<a href=\"/users/sign_in?redirect_params%5Baction%5D=new&amp;redirect_params%5Bcontent_type%5D=foo_model&amp;redirect_params%5Bcontroller%5D=assets\" class=\"create_asset\">Create a foo</a>"
15
15
  # rails 3.0.x
16
- helper.link_to_create_asset("Create a foo", "foo_model").should == "<a href=\"/users/sign_in?redirect_params[action]=new&amp;redirect_params[content_type]=foo_model&amp;redirect_params[controller]=assets\" class=\"create_asset\">Create a foo</a>"
16
+ helper.link_to_create_asset("Create a foo", "foo_model").should == "<a href=\"/users/sign_in?redirect_params%5Baction%5D=new&amp;redirect_params%5Bcontent_type%5D=foo_model&amp;redirect_params%5Bcontroller%5D=assets\" class=\"create_asset\">Create a foo</a>"
17
17
  end
18
18
  end
19
19
 
@@ -61,86 +61,74 @@ describe HydraAssetsHelper do
61
61
  end
62
62
 
63
63
  describe "get_file_asset_count" do
64
- before(:each) do
65
- #setup objects for following cases
66
- #
67
- #outbound has_part
68
- #outbound has_part + inbound is_part_of
69
- #inbound is_part_of
70
- #none
71
- @asset_object4 = ActiveFedora::Base.new
72
- @asset_object5 = ActiveFedora::Base.new
73
- @asset_object6 = ActiveFedora::Base.new
74
- @asset_object7 = ActiveFedora::Base.new
75
- @file_object1 = ActiveFedora::Base.new
76
- @file_object2 = ActiveFedora::Base.new
77
-
78
-
79
-
80
- @asset_object4.add_relationship(:has_part,@file_object1)
81
- @asset_object5.save
82
- @asset_object5.add_relationship(:has_part,@file_object1)
83
- @file_object2.part_of_append(@asset_object5)
84
- @asset_object6.save
85
- @file_object1.part_of_append(@asset_object6)
86
-
87
- @file_object1.save
88
- @file_object2.save
89
- @asset_object4.save
90
- @asset_object5.save
91
- @asset_object6.save
92
- @asset_object7.save
64
+ describe "with outbound has_part" do
65
+ before do
66
+ @asset_object4 =ActiveFedora::Base.new
67
+ @file_object1 = ActiveFedora::Base.create
68
+ @asset_object4.add_relationship(:has_part,@file_object1)
69
+ @asset_object4.save
70
+ end
71
+ after do
72
+ @asset_object4.delete
73
+ @file_object1.delete
74
+ end
75
+ it "should find one" do
76
+ #outbound has_part
77
+ doc = ActiveFedora::Base.find_by_solr(@asset_object4.pid).first
78
+ get_file_asset_count(doc).should == 1
79
+ end
93
80
  end
94
81
 
95
- after(:each) do
96
- begin
97
- @asset_object4.delete
98
- rescue
82
+ describe "with has_part and inbound is_part_of" do
83
+ before do
84
+ @asset_object5 =ActiveFedora::Base.create
85
+ @file_object1 = ActiveFedora::Base.create
86
+ @file_object2 = ActiveFedora::Base.create
87
+ @file_object2.part_of_append(@asset_object5)
88
+ @asset_object5.add_relationship(:has_part,@file_object1)
89
+ @asset_object5.save
90
+ @file_object2.save
99
91
  end
100
- begin
92
+ after do
101
93
  @asset_object5.delete
102
- rescue
94
+ @file_object1.delete
95
+ @file_object2.delete
103
96
  end
104
- begin
105
- @asset_object6.delete
106
- rescue
97
+ it "should find two" do
98
+ doc = ActiveFedora::Base.find_by_solr(@asset_object5.pid).first
99
+ get_file_asset_count(doc).should == 2
107
100
  end
108
- begin
109
- @asset_object7.delete
110
- rescue
101
+ end
102
+
103
+ describe "with inbound is_part_of" do
104
+ before do
105
+ @asset_object6 =ActiveFedora::Base.create
106
+ @file_object1 = ActiveFedora::Base.create
107
+ @file_object1.part_of_append(@asset_object6)
108
+ @asset_object6.save
109
+ @file_object1.save
111
110
  end
112
- begin
111
+ after do
112
+ @asset_object6.delete
113
113
  @file_object1.delete
114
- rescue
115
114
  end
116
- begin
117
- @file_object2.delete
118
- rescue
115
+ it "should find one" do
116
+ doc = ActiveFedora::Base.find_by_solr(@asset_object6.pid).first
117
+ get_file_asset_count(doc).should == 1
119
118
  end
120
119
  end
121
120
 
122
- it "should return the correct number of assets with either has_collection_member file assets or parts" do
123
-
124
- #cases are
125
- #outbound has_part
126
- #outbound has_part + inbound is_part_of
127
- #inbound is_part_of
128
- #none
129
-
130
-
131
- result = ActiveFedora::Base.find_by_solr(@asset_object4.pid)
132
- doc = result.hits.first
133
- get_file_asset_count(doc).should == 1
134
- result = ActiveFedora::Base.find_by_solr(@asset_object5.pid)
135
- doc = result.hits.first
136
- get_file_asset_count(doc).should == 2
137
- result = ActiveFedora::Base.find_by_solr(@asset_object6.pid)
138
- doc = result.hits.first
139
- get_file_asset_count(doc).should == 1
140
-
141
- result = ActiveFedora::Base.find_by_solr(@asset_object7.pid)
142
- doc = result.hits.first
143
- get_file_asset_count(doc).should == 0
121
+ describe "with inbound is_part_of" do
122
+ before do
123
+ @asset_object7 =ActiveFedora::Base.create
124
+ end
125
+ after do
126
+ @asset_object7.delete
127
+ end
128
+ it "should find zero" do
129
+ doc = ActiveFedora::Base.find_by_solr(@asset_object7.pid).first
130
+ get_file_asset_count(doc).should == 0
131
+ end
144
132
  end
145
133
  end
146
134