commonwealth-vlr-engine 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +91 -0
  3. data/.gitmodules +3 -0
  4. data/Gemfile +20 -0
  5. data/LICENSE +202 -0
  6. data/README.md +38 -0
  7. data/Rakefile +43 -0
  8. data/app/assets/images/commonwealth-vlr-engine/bplLoginButton.png +0 -0
  9. data/app/assets/images/commonwealth-vlr-engine/dc_audio-icon.png +0 -0
  10. data/app/assets/images/commonwealth-vlr-engine/dc_collection-icon.png +0 -0
  11. data/app/assets/images/commonwealth-vlr-engine/dc_image-icon.png +0 -0
  12. data/app/assets/images/commonwealth-vlr-engine/dc_institution-icon.png +0 -0
  13. data/app/assets/images/commonwealth-vlr-engine/dc_moving-image-icon.png +0 -0
  14. data/app/assets/images/commonwealth-vlr-engine/dc_text-icon.png +0 -0
  15. data/app/assets/images/commonwealth-vlr-engine/facebookLoginButton.png +0 -0
  16. data/app/assets/images/commonwealth-vlr-engine/loading-wdl-grid.gif +0 -0
  17. data/app/assets/images/commonwealth-vlr-engine/loading-wdl.gif +0 -0
  18. data/app/assets/images/commonwealth-vlr-engine/loading.gif +0 -0
  19. data/app/assets/images/commonwealth-vlr-engine/openseadragon/fullpage_grouphover.png +0 -0
  20. data/app/assets/images/commonwealth-vlr-engine/openseadragon/fullpage_hover.png +0 -0
  21. data/app/assets/images/commonwealth-vlr-engine/openseadragon/fullpage_pressed.png +0 -0
  22. data/app/assets/images/commonwealth-vlr-engine/openseadragon/fullpage_rest.png +0 -0
  23. data/app/assets/images/commonwealth-vlr-engine/openseadragon/home_grouphover.png +0 -0
  24. data/app/assets/images/commonwealth-vlr-engine/openseadragon/home_hover.png +0 -0
  25. data/app/assets/images/commonwealth-vlr-engine/openseadragon/home_pressed.png +0 -0
  26. data/app/assets/images/commonwealth-vlr-engine/openseadragon/home_rest.png +0 -0
  27. data/app/assets/images/commonwealth-vlr-engine/openseadragon/next_grouphover.png +0 -0
  28. data/app/assets/images/commonwealth-vlr-engine/openseadragon/next_hover.png +0 -0
  29. data/app/assets/images/commonwealth-vlr-engine/openseadragon/next_pressed.png +0 -0
  30. data/app/assets/images/commonwealth-vlr-engine/openseadragon/next_rest.png +0 -0
  31. data/app/assets/images/commonwealth-vlr-engine/openseadragon/previous_grouphover.png +0 -0
  32. data/app/assets/images/commonwealth-vlr-engine/openseadragon/previous_hover.png +0 -0
  33. data/app/assets/images/commonwealth-vlr-engine/openseadragon/previous_pressed.png +0 -0
  34. data/app/assets/images/commonwealth-vlr-engine/openseadragon/previous_rest.png +0 -0
  35. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateleft_grouphover.png +0 -0
  36. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateleft_hover.png +0 -0
  37. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateleft_pressed.png +0 -0
  38. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateleft_rest.png +0 -0
  39. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateright_grouphover.png +0 -0
  40. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateright_hover.png +0 -0
  41. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateright_pressed.png +0 -0
  42. data/app/assets/images/commonwealth-vlr-engine/openseadragon/rotateright_rest.png +0 -0
  43. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomin_grouphover.png +0 -0
  44. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomin_hover.png +0 -0
  45. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomin_pressed.png +0 -0
  46. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomin_rest.png +0 -0
  47. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomout_grouphover.png +0 -0
  48. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomout_hover.png +0 -0
  49. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomout_pressed.png +0 -0
  50. data/app/assets/images/commonwealth-vlr-engine/openseadragon/zoomout_rest.png +0 -0
  51. data/app/assets/images/commonwealth-vlr-engine/vlr_logo_img.png +0 -0
  52. data/app/assets/javascripts/blacklight_gallery.js +1 -0
  53. data/app/assets/javascripts/blacklight_google_analytics/blacklight_google_analytics.js.erb +165 -0
  54. data/app/assets/javascripts/bootstrap-accessibility-plugin/bootstrap-accessibility.js +586 -0
  55. data/app/assets/javascripts/commonwealth-vlr-engine.js +22 -0
  56. data/app/assets/javascripts/commonwealth-vlr-engine/collection_facets.js +5 -0
  57. data/app/assets/javascripts/commonwealth-vlr-engine/disable_dropdown_nav.js +21 -0
  58. data/app/assets/javascripts/commonwealth-vlr-engine/feedback_alerts.js.erb +19 -0
  59. data/app/assets/javascripts/commonwealth-vlr-engine/folder_tools.js +26 -0
  60. data/app/assets/javascripts/commonwealth-vlr-engine/multi_img_viewer.js.erb +20 -0
  61. data/app/assets/javascripts/commonwealth-vlr-engine/ocr_search_utils.js.erb +32 -0
  62. data/app/assets/javascripts/commonwealth-vlr-engine/volumes_list.js +5 -0
  63. data/app/assets/javascripts/openseadragon.js +2 -0
  64. data/app/assets/javascripts/respond/respond.min.js +6 -0
  65. data/app/assets/javascripts/wdl-viewer/fd-slider.js +1303 -0
  66. data/app/assets/javascripts/wdl-viewer/jquery-deparam.js +113 -0
  67. data/app/assets/javascripts/wdl-viewer/jquery.ba-throttle-debounce.min.js +9 -0
  68. data/app/assets/javascripts/wdl-viewer/jquery.hammer.min.js +7 -0
  69. data/app/assets/javascripts/wdl-viewer/modernizr-wdl.min.js +3 -0
  70. data/app/assets/javascripts/wdl-viewer/wdl-search.js +33 -0
  71. data/app/assets/javascripts/wdl-viewer/wdl-viewer_commonwealth.js +1147 -0
  72. data/app/assets/stylesheets/blacklight_advanced_search.css +5 -0
  73. data/app/assets/stylesheets/blacklight_gallery.css +1 -0
  74. data/app/assets/stylesheets/blacklight_maps.css +1 -0
  75. data/app/assets/stylesheets/bootstrap-accessibility-plugin/bootstrap-accessibility.css +105 -0
  76. data/app/assets/stylesheets/commonwealth-vlr-engine/advanced_search.scss +139 -0
  77. data/app/assets/stylesheets/commonwealth-vlr-engine/basic_search.scss +47 -0
  78. data/app/assets/stylesheets/commonwealth-vlr-engine/book_viewer.scss +576 -0
  79. data/app/assets/stylesheets/commonwealth-vlr-engine/carousel.scss +94 -0
  80. data/app/assets/stylesheets/commonwealth-vlr-engine/cmmnwlth_defaults.scss +45 -0
  81. data/app/assets/stylesheets/commonwealth-vlr-engine/cmmnwlth_shared.scss +75 -0
  82. data/app/assets/stylesheets/commonwealth-vlr-engine/collections.scss +563 -0
  83. data/app/assets/stylesheets/commonwealth-vlr-engine/commonwealth-vlr-engine.css +32 -0
  84. data/app/assets/stylesheets/commonwealth-vlr-engine/facets.scss +111 -0
  85. data/app/assets/stylesheets/commonwealth-vlr-engine/feedback.scss +10 -0
  86. data/app/assets/stylesheets/commonwealth-vlr-engine/folders.scss +276 -0
  87. data/app/assets/stylesheets/commonwealth-vlr-engine/footer.scss +47 -0
  88. data/app/assets/stylesheets/commonwealth-vlr-engine/header.scss +329 -0
  89. data/app/assets/stylesheets/commonwealth-vlr-engine/home.scss +269 -0
  90. data/app/assets/stylesheets/commonwealth-vlr-engine/index.scss +580 -0
  91. data/app/assets/stylesheets/commonwealth-vlr-engine/institutions.scss +246 -0
  92. data/app/assets/stylesheets/commonwealth-vlr-engine/pages.scss +31 -0
  93. data/app/assets/stylesheets/commonwealth-vlr-engine/search_inside.scss +172 -0
  94. data/app/assets/stylesheets/commonwealth-vlr-engine/searches.scss +55 -0
  95. data/app/assets/stylesheets/commonwealth-vlr-engine/show.scss +840 -0
  96. data/app/assets/stylesheets/commonwealth-vlr-engine/signin.scss +43 -0
  97. data/app/assets/stylesheets/commonwealth-vlr-engine/users.scss +18 -0
  98. data/app/assets/stylesheets/commonwealth-vlr-engine/vlr_dependencies.css +8 -0
  99. data/app/assets/stylesheets/ie_fixes.css +16 -0
  100. data/app/assets/stylesheets/openseadragon.css +1 -0
  101. data/app/assets/stylesheets/wdl-viewer/fd-slider.min.css +2 -0
  102. data/app/controllers/blacklight_advanced_search/advanced_controller.rb +66 -0
  103. data/app/controllers/bookmarks_controller.rb +38 -0
  104. data/app/controllers/collections_controller.rb +128 -0
  105. data/app/controllers/commonwealth_vlr_engine/application_controller.rb +8 -0
  106. data/app/controllers/feedback_controller.rb +39 -0
  107. data/app/controllers/folder_items_actions_controller.rb +72 -0
  108. data/app/controllers/folder_items_controller.rb +90 -0
  109. data/app/controllers/folders_controller.rb +132 -0
  110. data/app/controllers/iiif_manifest_controller.rb +74 -0
  111. data/app/controllers/image_viewer_controller.rb +34 -0
  112. data/app/controllers/institutions_controller.rb +62 -0
  113. data/app/controllers/ocr_search_controller.rb +78 -0
  114. data/app/controllers/pages_controller.rb +5 -0
  115. data/app/controllers/users/omniauth_callbacks_controller.rb +10 -0
  116. data/app/controllers/users/registrations_controller.rb +3 -0
  117. data/app/controllers/users/sessions_controller.rb +3 -0
  118. data/app/controllers/users_controller.rb +27 -0
  119. data/app/helpers/blacklight_maps_helper.rb +3 -0
  120. data/app/helpers/collections_helper.rb +3 -0
  121. data/app/helpers/commonwealth_vlr_engine/application_helper.rb +200 -0
  122. data/app/helpers/commonwealth_vlr_engine/blacklight_helper.rb +35 -0
  123. data/app/helpers/commonwealth_vlr_engine/blacklight_url_helper.rb +53 -0
  124. data/app/helpers/commonwealth_vlr_engine/catalog_helper.rb +414 -0
  125. data/app/helpers/commonwealth_vlr_engine/collections_helper_behavior.rb +19 -0
  126. data/app/helpers/commonwealth_vlr_engine/component_helper.rb +22 -0
  127. data/app/helpers/commonwealth_vlr_engine/facets_helper.rb +20 -0
  128. data/app/helpers/commonwealth_vlr_engine/feedback_helper_behavior.rb +14 -0
  129. data/app/helpers/commonwealth_vlr_engine/folders_helper_behavior.rb +9 -0
  130. data/app/helpers/commonwealth_vlr_engine/image_viewer_helper_behavior.rb +14 -0
  131. data/app/helpers/commonwealth_vlr_engine/institutions_helper_behavior.rb +31 -0
  132. data/app/helpers/commonwealth_vlr_engine/layout_helper.rb +22 -0
  133. data/app/helpers/commonwealth_vlr_engine/ocr_search_helper_behavior.rb +48 -0
  134. data/app/helpers/commonwealth_vlr_engine/pages_helper_behavior.rb +38 -0
  135. data/app/helpers/commonwealth_vlr_engine/vlr_blacklight_maps_helper_behavior.rb +59 -0
  136. data/app/helpers/feedback_helper.rb +3 -0
  137. data/app/helpers/folders_helper.rb +3 -0
  138. data/app/helpers/image_viewer_helper.rb +3 -0
  139. data/app/helpers/institutions_helper.rb +3 -0
  140. data/app/helpers/ocr_search_helper.rb +3 -0
  141. data/app/helpers/pages_helper.rb +3 -0
  142. data/app/mailers/notifier.rb +5 -0
  143. data/app/models/carousel_slide.rb +7 -0
  144. data/app/models/record_mailer.rb +18 -0
  145. data/app/models/user.rb +15 -0
  146. data/app/views/advanced/_advanced_search_date.html.erb +23 -0
  147. data/app/views/advanced/_advanced_search_facets.html.erb +5 -0
  148. data/app/views/advanced/_advanced_search_fields.html.erb +39 -0
  149. data/app/views/advanced/_advanced_search_form.html.erb +51 -0
  150. data/app/views/advanced/_advanced_search_help.html.erb +13 -0
  151. data/app/views/advanced/_facet_layout.html.erb +9 -0
  152. data/app/views/advanced/_facet_limit.html.erb +15 -0
  153. data/app/views/advanced/index.html.erb +29 -0
  154. data/app/views/blacklight_advanced_search/_facet_limit.html.erb +12 -0
  155. data/app/views/bookmarks/_tools.html.erb +25 -0
  156. data/app/views/bookmarks/index.html.erb +64 -0
  157. data/app/views/bookmarks/update.js.erb +1 -0
  158. data/app/views/bpluser/folders/_folder.html.erb +36 -0
  159. data/app/views/catalog/_add_this.html.erb +10 -0
  160. data/app/views/catalog/_az_links.html.erb +15 -0
  161. data/app/views/catalog/_basic_search.html.erb +67 -0
  162. data/app/views/catalog/_citation.html.erb +50 -0
  163. data/app/views/catalog/_constraints.html.erb +26 -0
  164. data/app/views/catalog/_document_collections_gallery.html.erb +7 -0
  165. data/app/views/catalog/_facet_limit_series.html.erb +21 -0
  166. data/app/views/catalog/_facets.html.erb +31 -0
  167. data/app/views/catalog/_facets_series.html.erb +4 -0
  168. data/app/views/catalog/_folder_item_control.html.erb +64 -0
  169. data/app/views/catalog/_index_collections_gallery.html.erb +12 -0
  170. data/app/views/catalog/_index_gallery.html.erb +11 -0
  171. data/app/views/catalog/_index_header_default.html.erb +22 -0
  172. data/app/views/catalog/_index_list_collection.html.erb +33 -0
  173. data/app/views/catalog/_index_list_default.html.erb +13 -0
  174. data/app/views/catalog/_index_map_institutions.html.erb +10 -0
  175. data/app/views/catalog/_index_masonry.html.erb +8 -0
  176. data/app/views/catalog/_index_slideshow.html.erb +18 -0
  177. data/app/views/catalog/_more_like_this.html.erb +9 -0
  178. data/app/views/catalog/_opengraph.html.erb +16 -0
  179. data/app/views/catalog/_previous_next_doc.html.erb +22 -0
  180. data/app/views/catalog/_results_pagination.html.erb +9 -0
  181. data/app/views/catalog/_search_form.html.erb +23 -0
  182. data/app/views/catalog/_search_header.html.erb +5 -0
  183. data/app/views/catalog/_show_default.html.erb +75 -0
  184. data/app/views/catalog/_show_main_content.html.erb +27 -0
  185. data/app/views/catalog/_show_more_like_this.html.erb +15 -0
  186. data/app/views/catalog/_show_partials/_show_book_viewer_link.html.erb +25 -0
  187. data/app/views/catalog/_show_partials/_show_default_img.html.erb +32 -0
  188. data/app/views/catalog/_show_partials/_show_default_metadata.html.erb +486 -0
  189. data/app/views/catalog/_show_partials/_show_default_simple_img_viewer.html.erb +45 -0
  190. data/app/views/catalog/_show_partials/_show_downloads.html.erb +14 -0
  191. data/app/views/catalog/_show_partials/_show_flagged_notice.html.erb +29 -0
  192. data/app/views/catalog/_show_partials/_show_multi_img.html.erb +42 -0
  193. data/app/views/catalog/_show_partials/_show_multi_img_pagination.html.erb +20 -0
  194. data/app/views/catalog/_show_partials/_show_oai_item_img.html.erb +5 -0
  195. data/app/views/catalog/_show_partials/_show_oai_item_link.html.erb +8 -0
  196. data/app/views/catalog/_show_partials/_show_prev_next_carousel_links.html.erb +17 -0
  197. data/app/views/catalog/_show_partials/_show_volumes.html.erb +52 -0
  198. data/app/views/catalog/_show_sidebar.html.erb +1 -0
  199. data/app/views/catalog/_show_tools.html.erb +42 -0
  200. data/app/views/catalog/_zero_results.html.erb +20 -0
  201. data/app/views/catalog/email.html.erb +6 -0
  202. data/app/views/catalog/index.html.erb +17 -0
  203. data/app/views/catalog/metadata_view.html.erb +7 -0
  204. data/app/views/catalog/show.html.erb +13 -0
  205. data/app/views/collections/_search_form_collection.html.erb +23 -0
  206. data/app/views/collections/index.html.erb +30 -0
  207. data/app/views/collections/show.html.erb +116 -0
  208. data/app/views/devise/confirmations/new.html.erb +14 -0
  209. data/app/views/devise/mailer/reset_password_instructions.html.erb +13 -0
  210. data/app/views/devise/passwords/edit.html.erb +33 -0
  211. data/app/views/devise/passwords/new.html.erb +31 -0
  212. data/app/views/devise/registrations/edit.html.erb +83 -0
  213. data/app/views/devise/registrations/new.html.erb +53 -0
  214. data/app/views/devise/sessions/new.html.erb +75 -0
  215. data/app/views/devise/shared/_links.erb +29 -0
  216. data/app/views/feedback/complete.html.erb +9 -0
  217. data/app/views/feedback/show.html.erb +61 -0
  218. data/app/views/folder_items/create.js.erb +1 -0
  219. data/app/views/folder_items/destroy.js.erb +1 -0
  220. data/app/views/folder_items/item_actions.js.erb +2 -0
  221. data/app/views/folder_items/update.js.erb +1 -0
  222. data/app/views/folders/_in_folder.html.erb +2 -0
  223. data/app/views/folders/_new_edit_form_fields.html.erb +36 -0
  224. data/app/views/folders/edit.html.erb +25 -0
  225. data/app/views/folders/index.html.erb +73 -0
  226. data/app/views/folders/new.html.erb +27 -0
  227. data/app/views/folders/public_list.html.erb +44 -0
  228. data/app/views/folders/show.html.erb +98 -0
  229. data/app/views/image_viewer/_book_viewer_help.html.erb +125 -0
  230. data/app/views/image_viewer/_render_book_viewer.html.erb +185 -0
  231. data/app/views/image_viewer/book_viewer.html.erb +57 -0
  232. data/app/views/image_viewer/show.js.erb +19 -0
  233. data/app/views/institutions/_intro_text.html.erb +1 -0
  234. data/app/views/institutions/_map_institutions_search.html.erb +9 -0
  235. data/app/views/institutions/_search_form_institution.html.erb +24 -0
  236. data/app/views/institutions/index.html.erb +31 -0
  237. data/app/views/institutions/show.html.erb +104 -0
  238. data/app/views/layouts/_google_analytics.html.erb +9 -0
  239. data/app/views/layouts/book_viewer.html.erb +37 -0
  240. data/app/views/layouts/commonwealth-vlr-engine.html.erb +59 -0
  241. data/app/views/notifier/feedback.text.erb +6 -0
  242. data/app/views/ocr_search/_index_ocr_list.html.erb +17 -0
  243. data/app/views/ocr_search/_search_form_ocr.html.erb +23 -0
  244. data/app/views/ocr_search/_snippets_more.html.erb +15 -0
  245. data/app/views/ocr_search/_zero_results_ocr.html.erb +9 -0
  246. data/app/views/ocr_search/index.html.erb +49 -0
  247. data/app/views/pages/_carousel.html.erb +46 -0
  248. data/app/views/pages/_home_partials/_banner.html.erb +23 -0
  249. data/app/views/pages/_home_partials/_browse.html.erb +55 -0
  250. data/app/views/pages/_home_partials/_context.html.erb +24 -0
  251. data/app/views/pages/_home_partials/_home_content.html.erb +14 -0
  252. data/app/views/pages/about.html.erb +10 -0
  253. data/app/views/pages/about_site.html.erb +6 -0
  254. data/app/views/pages/explore.html.erb +32 -0
  255. data/app/views/pages/home.html.erb +3 -0
  256. data/app/views/record_mailer/email_record.text.erb +7 -0
  257. data/app/views/saved_searches/index.html.erb +60 -0
  258. data/app/views/search_history/index.html.erb +59 -0
  259. data/app/views/shared/_error_messages.html.erb +9 -0
  260. data/app/views/shared/_flash_msg_maintenance.html.erb +6 -0
  261. data/app/views/shared/_folder_item_actions.html.erb +66 -0
  262. data/app/views/shared/_folder_tools.html.erb +4 -0
  263. data/app/views/shared/_footer.html.erb +14 -0
  264. data/app/views/shared/_header_navbar.html.erb +34 -0
  265. data/app/views/shared/_nav_links.html.erb +58 -0
  266. data/app/views/shared/_search_form_header.html.erb +16 -0
  267. data/app/views/shared/_tools.html.erb +14 -0
  268. data/app/views/shared/_user_util_links.html.erb +43 -0
  269. data/app/views/users/show.html.erb +33 -0
  270. data/commonwealth-vlr-engine.gemspec +47 -0
  271. data/config/initializers/patch_blacklight_advanced_search.rb +74 -0
  272. data/config/initializers/patch_blacklight_maps.rb +20 -0
  273. data/config/jetty.yml +7 -0
  274. data/config/locales/commonwealth-vlr-engine.en.yml +463 -0
  275. data/config/routes.rb +92 -0
  276. data/lib/commonwealth-vlr-engine.rb +55 -0
  277. data/lib/commonwealth-vlr-engine/commonwealth_search_builder.rb +66 -0
  278. data/lib/commonwealth-vlr-engine/controller.rb +69 -0
  279. data/lib/commonwealth-vlr-engine/controller_override.rb +238 -0
  280. data/lib/commonwealth-vlr-engine/engine.rb +40 -0
  281. data/lib/commonwealth-vlr-engine/finder.rb +285 -0
  282. data/lib/commonwealth-vlr-engine/iiif_manifest.rb +189 -0
  283. data/lib/commonwealth-vlr-engine/notifier.rb +33 -0
  284. data/lib/commonwealth-vlr-engine/pages.rb +33 -0
  285. data/lib/commonwealth-vlr-engine/render_constraints_override.rb +57 -0
  286. data/lib/commonwealth-vlr-engine/route_sets.rb +49 -0
  287. data/lib/commonwealth-vlr-engine/routes.rb +21 -0
  288. data/lib/commonwealth-vlr-engine/version.rb +3 -0
  289. data/lib/generators/commonwealth_vlr_engine/controller_generator.rb +92 -0
  290. data/lib/generators/commonwealth_vlr_engine/environment_generator.rb +49 -0
  291. data/lib/generators/commonwealth_vlr_engine/install_generator.rb +57 -0
  292. data/lib/generators/commonwealth_vlr_engine/localassets_generator.rb +29 -0
  293. data/lib/generators/commonwealth_vlr_engine/model_generator.rb +65 -0
  294. data/lib/generators/commonwealth_vlr_engine/routes_generator.rb +39 -0
  295. data/lib/generators/commonwealth_vlr_engine/templates/commonwealth_vlr_engine.css.scss +4 -0
  296. data/lib/generators/commonwealth_vlr_engine/templates/config/contact_emails.yml.sample +13 -0
  297. data/lib/generators/commonwealth_vlr_engine/templates/config/fedora.yml.sample +6 -0
  298. data/lib/generators/commonwealth_vlr_engine/templates/config/geojson_static_file.yml.sample +11 -0
  299. data/lib/generators/commonwealth_vlr_engine/templates/config/google_analytics.yml.sample +10 -0
  300. data/lib/generators/commonwealth_vlr_engine/templates/config/iiif_server.yml.sample +10 -0
  301. data/lib/generators/commonwealth_vlr_engine/templates/config/initializers/a_load_commonwealth_vlr_configs.rb +14 -0
  302. data/lib/generators/commonwealth_vlr_engine/templates/config/initializers/devise.rb +269 -0
  303. data/lib/generators/commonwealth_vlr_engine/templates/config/initializers/secret_token.rb +8 -0
  304. data/lib/generators/commonwealth_vlr_engine/templates/config/locales/blacklight.en.yml +44 -0
  305. data/lib/generators/commonwealth_vlr_engine/templates/config/locales/devise.en.yml +12 -0
  306. data/lib/generators/commonwealth_vlr_engine/templates/config/omniauth-facebook.yml.sample +14 -0
  307. data/lib/generators/commonwealth_vlr_engine/templates/config/omniauth-polaris.yml.sample +20 -0
  308. data/lib/generators/commonwealth_vlr_engine/templates/config/vlr.yml +13 -0
  309. data/lib/generators/commonwealth_vlr_engine/yml_generator.rb +29 -0
  310. data/lib/railties/commonwealth_vlr_engine.rake +6 -0
  311. data/solr_conf/conf/schema.xml +476 -0
  312. data/solr_conf/conf/solrconfig.xml +286 -0
  313. data/spec/controllers/catalog_controller_spec.rb +67 -0
  314. data/spec/controllers/collections_controller_spec.rb +127 -0
  315. data/spec/controllers/feedback_controller_spec.rb +51 -0
  316. data/spec/controllers/folder_items_actions_controller_spec.rb +99 -0
  317. data/spec/controllers/folder_items_controller_spec.rb +90 -0
  318. data/spec/controllers/folders_controller_spec.rb +368 -0
  319. data/spec/controllers/iiif_manifest_controller_spec.rb +85 -0
  320. data/spec/controllers/image_viewer_controller_spec.rb +50 -0
  321. data/spec/controllers/institutions_controller_spec.rb +64 -0
  322. data/spec/controllers/ocr_search_controller_spec.rb +71 -0
  323. data/spec/controllers/pages_controller_spec.rb +58 -0
  324. data/spec/controllers/users_controller_spec.rb +62 -0
  325. data/spec/features/catalog/_az_links_spec.rb +27 -0
  326. data/spec/features/catalog/_show_partials/_show_book_viewer_link_spec.rb +47 -0
  327. data/spec/features/catalog/_show_partials/_show_default_simple_img_viewer_spec.rb +19 -0
  328. data/spec/features/catalog/_show_partials/_show_flagged_notice_spec.rb +23 -0
  329. data/spec/features/catalog/_show_partials/_show_multi_img_spec.rb +18 -0
  330. data/spec/features/catalog/_show_partials/_show_volumes_spec.rb +24 -0
  331. data/spec/features/collections/index_spec.rb +35 -0
  332. data/spec/features/feedback/show_spec.rb +47 -0
  333. data/spec/features/image_viewer/book_viewer_spec.rb +67 -0
  334. data/spec/features/institutions/index_spec.rb +31 -0
  335. data/spec/features/institutions/map_view_spec.rb +37 -0
  336. data/spec/features/more_like_this_search_spec.rb +23 -0
  337. data/spec/features/ocr_search/index_spec.rb +89 -0
  338. data/spec/fixtures/sample_rss_feed.xml +56 -0
  339. data/spec/fixtures/sample_solr_documents.yml +2748 -0
  340. data/spec/helpers/application_helper_spec.rb +114 -0
  341. data/spec/helpers/catalog_helper_spec.rb +386 -0
  342. data/spec/helpers/collections_helper_spec.rb +28 -0
  343. data/spec/helpers/component_helper_spec.rb +34 -0
  344. data/spec/helpers/folders_helper_spec.rb +31 -0
  345. data/spec/helpers/image_viewer_helper_spec.rb +15 -0
  346. data/spec/helpers/institutions_helper_spec.rb +53 -0
  347. data/spec/helpers/ocr_search_helper_spec.rb +70 -0
  348. data/spec/helpers/pages_helper_spec.rb +21 -0
  349. data/spec/lib/commonwealth-vlr-engine/commonwealth_search_builder_spec.rb +101 -0
  350. data/spec/lib/commonwealth-vlr-engine/controller_override_spec.rb +41 -0
  351. data/spec/lib/commonwealth-vlr-engine/controller_spec.rb +33 -0
  352. data/spec/lib/commonwealth-vlr-engine/finder_spec.rb +140 -0
  353. data/spec/lib/commonwealth-vlr-engine/iiif_manifest_spec.rb +157 -0
  354. data/spec/lib/commonwealth-vlr-engine/render_constraints_override_spec.rb +97 -0
  355. data/spec/mailers/notifier_spec.rb +31 -0
  356. data/spec/models/carousel_slide_spec.rb +38 -0
  357. data/spec/spec_helper.rb +40 -0
  358. data/spec/tasks/vlr_engine_rake_spec.rb +28 -0
  359. data/spec/test_app_templates/lib/generators/test_app_generator.rb +23 -0
  360. data/tasks/vlr_engine.rake +46 -0
  361. metadata +788 -0
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe CollectionsHelper do
4
+
5
+ let(:blacklight_config) { CatalogController.blacklight_config }
6
+
7
+ before(:each) do
8
+ allow(helper).to receive_messages(blacklight_config: blacklight_config)
9
+ end
10
+
11
+ describe '#link_to_all_col_items' do
12
+ before { @coll_items_link = helper.link_to_all_col_items('Foo Collection', 'Bar Institution', 'baz') }
13
+ it 'should create a search link with the correct collection and institution params' do
14
+ expect(@coll_items_link).to include("#{blacklight_config.collection_field}%5D%5B%5D=Foo+Collection")
15
+ expect(@coll_items_link).to include("#{blacklight_config.institution_field}%5D=Bar+Institution")
16
+ end
17
+ end
18
+
19
+ # TODO: figure out why this spec doesn't pass when run in CI/run-all-specs testing
20
+ # getting NoMethodError: private method 'should_render_col_az?' called
21
+ # works fine in context of this single spec though
22
+ describe '#should_render_col_az?' do
23
+ it 'should return false' #do
24
+ #expect(helper.should_render_col_az?).to be_falsey
25
+ #end
26
+ end
27
+
28
+ end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe ComponentHelper do
4
+
5
+ include Blacklight::SearchHelper
6
+
7
+ let(:document) { Blacklight.default_index.search({:q => 'id:"bpl-dev:h702q6403"', :rows => 1}).documents.first }
8
+
9
+ before(:each) do
10
+ allow(helper).to receive(:has_user_authentication_provider?).and_return(true)
11
+ allow(helper).to receive(:current_or_guest_user).and_return(true)
12
+ allow(helper).to receive(:current_user).and_return(User.create!({:email => "testy@test.com", :password => "password"}))
13
+ @current_bookmarks = [] # have to set this for Blacklight::CatalogHelperBehavior#current_bookmarks
14
+ end
15
+
16
+ describe '#render_show_doc_actions' do
17
+
18
+ before { @show_doc_actions = helper.render_show_doc_actions(document, {}) }
19
+
20
+ it 'should create the document actions controls wrapper' do
21
+ expect(@show_doc_actions).to include('<div class="documentFunctions">')
22
+ end
23
+
24
+ it 'should include the catalog/add_this partial' do
25
+ expect(@show_doc_actions).to include('addthis')
26
+ end
27
+
28
+ it 'should include the catalog/folder_item_control partial' do
29
+ expect(@show_doc_actions).to include('<div id="folder_item_toggle">')
30
+ end
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe FoldersHelper do
4
+
5
+ before(:each) do
6
+ @test_user = User.create!({:email => 'testy@test.com', :password => 'password'})
7
+ @folder = @test_user.folders.create!({:title => 'Test Folder Title',:visibility => 'private'})
8
+ end
9
+
10
+ describe '#folder_belongs_to_user' do
11
+
12
+ describe 'correct user' do
13
+ before { allow(helper).to receive(:current_or_guest_user).and_return(@test_user) }
14
+ it 'should return true if the folder belongs to the current_or_guest_user' do
15
+ expect(helper.folder_belongs_to_user).to be_truthy
16
+ end
17
+ end
18
+
19
+ describe 'incorrect user' do
20
+ before {
21
+ @wrong_user = User.create!({:email => 'testy2@test2.com', :password => 'password'})
22
+ allow(helper).to receive(:current_or_guest_user).and_return(@wrong_user)
23
+ }
24
+ it 'should return false if the folder does not belong to the current_or_guest_user' do
25
+ expect(helper.folder_belongs_to_user).to be_falsey
26
+ end
27
+ end
28
+
29
+ end
30
+
31
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe ImageViewerHelper do
4
+
5
+ let(:item_pid) { 'bpl-dev:h702q6403' }
6
+ let(:document) { Blacklight.default_index.search({:q => "id:\"#{item_pid}\"", :rows => 1}).documents.first }
7
+
8
+ describe '#book_id' do
9
+ it 'should return the correct document id' do
10
+ expect(helper.book_id({is_volume_of_ssim: ['info:fedora/bpl-dev:abcd1234']})).to eq('bpl-dev:abcd1234')
11
+ expect(helper.book_id(document)).to eq(item_pid)
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1,53 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ require 'spec_helper'
4
+
5
+ describe InstitutionsHelper do
6
+
7
+ include Blacklight::SearchHelper
8
+
9
+ let(:blacklight_config) { CatalogController.blacklight_config }
10
+ let(:search_params_logic) { CatalogController.search_params_logic += [:institutions_filter] }
11
+
12
+ before :each do
13
+ allow(helper).to receive_messages(blacklight_config: blacklight_config)
14
+ end
15
+
16
+ describe '#link_to_all_inst_items' do
17
+ before { @institution_title = 'Foo Institution'}
18
+ it 'should create a search link with the correct institution params' do
19
+ expect(helper.link_to_all_inst_items('foo')).to include("#{blacklight_config.institution_field}%5D%5B%5D=Foo+Institution")
20
+ end
21
+ end
22
+
23
+ describe 'render_institutions_index' do
24
+
25
+ before { (@response, @document_list) = search_results({}, search_params_logic) }
26
+
27
+ describe 'with default document_index_view_type' do
28
+ before { allow(helper).to receive_messages(document_index_view_type: :list) }
29
+ subject { helper.render_institutions_index }
30
+ it { should have_selector '#documents.documents-list' }
31
+ end
32
+
33
+ describe 'with "maps" document_index_view_type' do
34
+ before { allow(helper).to receive_messages(document_index_view_type: :maps) }
35
+ subject { helper.render_institutions_index }
36
+ it { should have_selector 'div#institutions-index-map' }
37
+ end
38
+
39
+ # remove the instance variables so they don't mess up other specs
40
+ after {
41
+ remove_instance_variable(:@response)
42
+ remove_instance_variable(:@document_list)
43
+ }
44
+
45
+ end
46
+
47
+ describe '#should_render_inst_az?' do
48
+ it 'should return false' do
49
+ expect(helper.should_render_inst_az?).to be_falsey
50
+ end
51
+ end
52
+
53
+ end
@@ -0,0 +1,70 @@
1
+ require 'spec_helper'
2
+
3
+ describe OcrSearchHelper do
4
+
5
+ class OcrSearchHelperTestClass < CatalogController
6
+ cattr_accessor :blacklight_config
7
+
8
+ include Blacklight::SearchHelper
9
+ include CommonwealthVlrEngine::Finder
10
+ include CommonwealthVlrEngine::CatalogHelper
11
+
12
+ def initialize blacklight_config
13
+ self.blacklight_config = blacklight_config
14
+ end
15
+ end
16
+
17
+ let(:blacklight_config) { CatalogController.blacklight_config }
18
+ let(:ocr_search_helper_test_class) { OcrSearchHelperTestClass.new blacklight_config }
19
+
20
+ before(:each) do
21
+ allow(helper).to receive_messages(blacklight_config: blacklight_config)
22
+ end
23
+
24
+ describe '#ocr_q_params' do
25
+
26
+ let(:current_search_session) { double(:query_params => {'q' => 'foo'}) }
27
+
28
+ it 'should return the query params if they exist' do
29
+ expect(helper.send(:ocr_q_params, current_search_session)).to eq('foo')
30
+ end
31
+
32
+ end
33
+
34
+ describe '#render_page_link' do
35
+
36
+ let(:book_pid) { 'bpl-dev:7s75dn48d' }
37
+ let(:page_pid) { 'bpl-dev:7s75dn58n' }
38
+ let(:document) { Blacklight.default_index.search({:q => "id:\"#{page_pid}\"", :rows => 1}).documents.first }
39
+ let(:image_pid_list) { ocr_search_helper_test_class.has_image_files?(ocr_search_helper_test_class.get_files(book_pid)) }
40
+
41
+ describe 'with a page_num_field value' do
42
+
43
+ before { @ocr_page_link = helper.render_page_link(document, image_pid_list, book_pid) }
44
+
45
+ it 'should create a link to the book viewer' do
46
+ expect(@ocr_page_link).to include("href=\"/book_viewer/#{book_pid}?ocr_q=#1/1")
47
+ end
48
+
49
+ it 'should have the correct label' do
50
+ expect(@ocr_page_link).to include(document[blacklight_config.page_num_field.to_sym])
51
+ end
52
+
53
+ end
54
+
55
+ describe 'without page_num_field value' do
56
+
57
+ before do
58
+ document[blacklight_config.page_num_field.to_sym] = nil
59
+ @ocr_page_link = helper.render_page_link(document, image_pid_list, book_pid)
60
+ end
61
+
62
+ it 'should have the correct label' do
63
+ expect(@ocr_page_link).to include('Image 1')
64
+ end
65
+
66
+ end
67
+
68
+ end
69
+
70
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe PagesHelper do
4
+
5
+ describe '#render_blog_feed' do
6
+
7
+ let(:rendered_feed) { helper.render_blog_feed(File.open(File.expand_path(File.join('..', '..', 'fixtures', 'sample_rss_feed.xml'), __FILE__))) }
8
+
9
+ it 'should create the correct HTML content' do
10
+ expect(rendered_feed).to include('<ul class="feed_items">')
11
+ expect(rendered_feed).to include('<li class="feed_item">')
12
+ expect(rendered_feed).to include('href="http://blog.somelibrary.org/?p=942">Event 1')
13
+ end
14
+
15
+ it 'should have 4 items' do
16
+ expect(rendered_feed.scan(/<li class="feed_item">/).count).to eq(4)
17
+ end
18
+
19
+ end
20
+
21
+ end
@@ -0,0 +1,101 @@
1
+ require 'spec_helper'
2
+
3
+ describe CommonwealthVlrEngine::CommonwealthSearchBuilder do
4
+
5
+ class CommonwealthSearchBuilderTestClass
6
+ cattr_accessor :blacklight_config, :blacklight_params
7
+
8
+ include Blacklight::SearchHelper
9
+ include CommonwealthVlrEngine::CommonwealthSearchBuilder
10
+
11
+ def initialize blacklight_config, blacklight_params
12
+ self.blacklight_config = blacklight_config
13
+ self.blacklight_params = blacklight_params
14
+ end
15
+
16
+ end
17
+
18
+ let(:blacklight_config) { CatalogController.blacklight_config }
19
+ let(:blacklight_params) { Hash.new }
20
+ let(:solr_parameters) { Blacklight::Solr::Request.new }
21
+
22
+ before { @obj = CommonwealthSearchBuilderTestClass.new blacklight_config, blacklight_params }
23
+
24
+ describe 'exclude_unwanted_models' do
25
+
26
+ it 'should add parameters to exclude unwanted models' do
27
+ expect(@obj.exclude_unwanted_models(solr_parameters).to_s).to include('afmodel:Bplmodels_File')
28
+ end
29
+
30
+ end
31
+
32
+ describe 'exclude_unpublished_items' do
33
+
34
+ let(:excluded_unpublished) { @obj.exclude_unpublished_items(solr_parameters).to_s }
35
+
36
+ it 'should add parameters to exclude non-published items' do
37
+ expect(excluded_unpublished).to include('draft')
38
+ expect(excluded_unpublished).to include('needs_review')
39
+ expect(excluded_unpublished).to include('derivatives')
40
+ end
41
+
42
+ end
43
+
44
+ describe 'exclude_institutions' do
45
+
46
+ it 'should add parameters to exclude institutions' do
47
+ expect(@obj.exclude_institutions(solr_parameters).to_s).to include('-active_fedora_model_suffix_ssi:\"Institution\"')
48
+ end
49
+
50
+ end
51
+
52
+ describe 'flagged_filter' do
53
+
54
+ it 'should add parameters to exclude flagged items' do
55
+ expect(@obj.flagged_filter(solr_parameters).to_s).to include("-#{blacklight_config.flagged_field}:[* TO *]")
56
+ end
57
+
58
+ end
59
+
60
+ describe 'institutions_filter' do
61
+
62
+ it 'should add parameters to require institutions' do
63
+ expect(@obj.institutions_filter(solr_parameters).to_s).to include('+active_fedora_model_suffix_ssi:\"Institution\"')
64
+ end
65
+
66
+ end
67
+
68
+ describe 'set_solr_id_for_mlt' do
69
+
70
+ before {blacklight_params[:mlt_id] = 'bpl-dev:12345678'}
71
+
72
+ it 'should set the id param to the mlt_id value' do
73
+ expect(@obj.set_solr_id_for_mlt(solr_parameters)).to eq('bpl-dev:12345678')
74
+ end
75
+
76
+ end
77
+
78
+ describe 'collections_filter' do
79
+
80
+ it 'should add parameters to require institutions' do
81
+ expect(@obj.collections_filter(solr_parameters).to_s).to include('+active_fedora_model_suffix_ssi:\"Collection\"')
82
+ end
83
+
84
+ end
85
+
86
+ describe 'ocr_search_params' do
87
+
88
+ before do
89
+ @obj.ocr_search_params(solr_parameters)
90
+ end
91
+
92
+ it 'should add parameters for field highlighting' do
93
+ expect(solr_parameters.to_s).to include('"hl"=>true')
94
+ expect(solr_parameters.to_s).to include('hl.fragsize')
95
+ expect(solr_parameters.to_s).to include("\"hl.fl\"=>\"#{blacklight_config.ocr_search_field}\"")
96
+ end
97
+
98
+ end
99
+
100
+
101
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe CommonwealthVlrEngine::ControllerOverride do
4
+
5
+ class ControllerOverrideTestClass < CatalogController
6
+ #include CommonwealthVlrEngine::ControllerOverride
7
+ end
8
+
9
+ before { @obj = ControllerOverrideTestClass.new }
10
+
11
+ describe 'search_params_logic' do
12
+
13
+ it 'should have exclude_unwanted_models included' do
14
+ expect(@obj.search_params_logic).to include(:exclude_unwanted_models)
15
+ end
16
+
17
+ it 'should have exclude_unpublished_items included' do
18
+ expect(@obj.search_params_logic).to include(:exclude_unpublished_items)
19
+ end
20
+
21
+ end
22
+
23
+ describe 'search_builder_class' do
24
+
25
+ it 'should have CommonwealthSearchBuilder included' do
26
+ expect(@obj.blacklight_config.search_builder_class).to include(CommonwealthVlrEngine::CommonwealthSearchBuilder)
27
+ end
28
+
29
+ end
30
+
31
+ describe 'add_institution_fields' do
32
+
33
+ # this spec needs more work. not sure how to set appropriate institution stuff so it will pass
34
+ # subject { @obj.send(:add_institution_fields) } ## not sure if I should use this??
35
+ it 'should add institution facets to the blacklight_config' #do
36
+ # expect(@obj.blacklight_config.facet_fields).to include('physical_location_ssim')
37
+ #end
38
+
39
+ end
40
+
41
+ end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe CommonwealthVlrEngine::Controller do
4
+
5
+ class ControllerTestClass < ActionController::Base
6
+ include CommonwealthVlrEngine::Controller
7
+ end
8
+
9
+ before { @obj = ControllerTestClass.new }
10
+
11
+ describe 'create_img_sequence' do
12
+
13
+ before do
14
+ @image_files = ['bpl-dev:h702q641c', 'bpl-dev:h702q642n']
15
+ @current_img_pid = 'bpl-dev:h702q642n'
16
+ @img_seq = @obj.create_img_sequence @image_files, @current_img_pid
17
+ end
18
+
19
+ it 'should set the index to the correct value' do
20
+ expect(@img_seq[:index]).to eq(2)
21
+ end
22
+
23
+ it 'should set the previous image to the correct value' do
24
+ expect(@img_seq[:prev]).to eq(@image_files[0])
25
+ end
26
+
27
+ it 'should set the next image to the correct value' do
28
+ expect(@img_seq[:next]).to eq(nil)
29
+ end
30
+
31
+ end
32
+
33
+ end
@@ -0,0 +1,140 @@
1
+ require 'spec_helper'
2
+
3
+ describe CommonwealthVlrEngine::Finder do
4
+
5
+ class FinderTestClass
6
+ cattr_accessor :blacklight_config
7
+
8
+ include Blacklight::SearchHelper
9
+ include CommonwealthVlrEngine::Finder
10
+
11
+ def initialize blacklight_config
12
+ self.blacklight_config = blacklight_config
13
+ end
14
+
15
+ end
16
+
17
+ let(:blacklight_config) { Blacklight::Configuration.new }
18
+
19
+ before do
20
+ @obj = FinderTestClass.new blacklight_config
21
+ @item_pid = 'bpl-dev:h702q6403'
22
+ @image1_pid = 'bpl-dev:h702q641c'
23
+ @image2_pid = 'bpl-dev:h702q642n'
24
+ end
25
+
26
+ describe 'get_files' do
27
+
28
+ let (:return_hash) { @obj.get_files(@item_pid) }
29
+
30
+ it 'should create a hash with the file objects' do
31
+ expect(return_hash.empty?).to be_falsey
32
+ expect(return_hash.length).to eq(5)
33
+ end
34
+
35
+ it 'should have an :images key with a hash of Bplmodel::ImageFile SolrDocs as the value' do
36
+ expect(return_hash[:images].length).to eq(2)
37
+ expect(return_hash[:images][0].class).to eq(SolrDocument)
38
+ expect(return_hash[:images][0]['active_fedora_model_ssi']).to eq('Bplmodels::ImageFile')
39
+ end
40
+
41
+ it 'should have the right ImageFile objects for the item' do
42
+ expect(return_hash[:images].to_s).to include(@image1_pid)
43
+ end
44
+
45
+ describe 'sort_files' do
46
+
47
+ it 'should have the images in the right order' do
48
+ expect(return_hash[:images][0]['id']).to eq(@image1_pid)
49
+ expect(return_hash[:images][1]['id']).to eq(@image2_pid)
50
+ end
51
+
52
+ end
53
+
54
+ end
55
+
56
+ describe 'get_image_files' do
57
+
58
+ let(:pid) { 'bpl-dev:h702q6403' }
59
+ let (:return_list) { @obj.get_image_files(pid) }
60
+
61
+ it 'should create an array with the ImageFile objects' do
62
+ expect(return_list.empty?).to be_falsey
63
+ expect(return_list.length).to eq(2)
64
+ expect(return_list[0]['active_fedora_model_ssi']).to eq('Bplmodels::ImageFile')
65
+ end
66
+
67
+ it 'should have the right ImageFile objects for the item, in the right order' do
68
+ expect(return_list[0]['id']).to eq(@image1_pid)
69
+ end
70
+
71
+ end
72
+
73
+ describe 'get_first_image_file' do
74
+
75
+ let (:response) { @obj.get_first_image_file(@item_pid) }
76
+
77
+ it 'should return the first ImageFile object' do
78
+ expect(response).not_to be_nil
79
+ expect(response['id']).to eq(@image1_pid)
80
+ end
81
+
82
+ end
83
+
84
+ describe 'get_next_image_file' do
85
+
86
+ let (:response) { @obj.get_next_image_file(@image1_pid) }
87
+
88
+ it 'should return the next ImageFile object' do
89
+ expect(response).not_to be_nil
90
+ expect(response['id']).to eq(@image2_pid)
91
+ end
92
+
93
+ end
94
+
95
+ describe 'get_prev_image_file' do
96
+
97
+ let (:response) { @obj.get_prev_image_file(@image2_pid) }
98
+
99
+ it 'should return the next ImageFile object' do
100
+ expect(response).not_to be_nil
101
+ expect(response['id']).to eq(@image1_pid)
102
+ end
103
+
104
+ end
105
+
106
+ describe 'get_file_parent_object' do
107
+
108
+ let (:response) { @obj.get_file_parent_object(@image2_pid) }
109
+
110
+ it 'should return the parent object' do
111
+ expect(response).to eq(@item_pid)
112
+ end
113
+
114
+ end
115
+
116
+ describe 'get_volume_objects' do
117
+
118
+ let(:pid) { 'bpl-dev:3j334b469' }
119
+ let (:return_list) { @obj.get_volume_objects(pid) }
120
+
121
+ it 'should return an array of hashes with the Volume objects and files' do
122
+ expect(return_list.class).to eq(Array)
123
+ expect(return_list.length).to eq(2)
124
+ expect(return_list[0].class).to eq(Hash)
125
+ end
126
+
127
+ it 'should return the volume document in the :vol_doc value' do
128
+ expect(return_list[0][:vol_doc].id).to eq('bpl-dev:3j334603p')
129
+ expect(return_list[0][:vol_doc]['active_fedora_model_ssi']).to eq('Bplmodels::Volume')
130
+ end
131
+
132
+ it 'should return the volume files in the :vol_files value' do
133
+ expect(return_list[0][:vol_files][:ereader].length).to eq(1)
134
+ expect(return_list[0][:vol_files][:ereader].first.id).to eq('bpl-dev:3j334b41x')
135
+ end
136
+
137
+ end
138
+
139
+
140
+ end