blacklight 6.14.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.npmignore +23 -0
  4. data/.rubocop.yml +40 -16
  5. data/.rubocop_todo.yml +479 -375
  6. data/.solr_wrapper.yml +9 -2
  7. data/.travis.yml +27 -20
  8. data/Gemfile +3 -1
  9. data/README.md +22 -5
  10. data/Rakefile +3 -2
  11. data/VERSION +1 -1
  12. data/Vagrantfile +2 -0
  13. data/app/assets/images/blacklight/list.svg +1 -0
  14. data/app/assets/images/blacklight/search.svg +1 -0
  15. data/app/assets/javascripts/blacklight/blacklight.js +497 -57
  16. data/app/assets/stylesheets/blacklight/_balanced_list.scss +7 -12
  17. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +18 -15
  18. data/app/assets/stylesheets/blacklight/_bookmark.scss +1 -13
  19. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +27 -0
  20. data/app/assets/stylesheets/blacklight/_constraints.scss +17 -25
  21. data/app/assets/stylesheets/blacklight/_controls.scss +8 -16
  22. data/app/assets/stylesheets/blacklight/_facets.scss +64 -93
  23. data/app/assets/stylesheets/blacklight/_header.scss +35 -48
  24. data/app/assets/stylesheets/blacklight/_icons.scss +35 -0
  25. data/app/assets/stylesheets/blacklight/_layout.scss +0 -10
  26. data/app/assets/stylesheets/blacklight/_mixins.scss +15 -0
  27. data/app/assets/stylesheets/blacklight/_modal.scss +9 -17
  28. data/app/assets/stylesheets/blacklight/_pagination.scss +2 -17
  29. data/app/assets/stylesheets/blacklight/_search_form.scss +7 -0
  30. data/app/assets/stylesheets/blacklight/_search_history.scss +5 -13
  31. data/app/assets/stylesheets/blacklight/_search_results.scss +9 -8
  32. data/app/assets/stylesheets/blacklight/_twitter_typeahead.scss +1 -2
  33. data/app/assets/stylesheets/blacklight/blacklight.scss +1 -1
  34. data/app/builders/blacklight/action_builder.rb +57 -0
  35. data/app/controllers/bookmarks_controller.rb +2 -2
  36. data/app/controllers/catalog_controller.rb +2 -2
  37. data/app/controllers/concerns/blacklight/base.rb +0 -33
  38. data/app/controllers/concerns/blacklight/bookmarks.rb +36 -33
  39. data/app/controllers/concerns/blacklight/catalog.rb +266 -210
  40. data/app/controllers/concerns/blacklight/controller.rb +111 -126
  41. data/app/controllers/concerns/blacklight/default_component_configuration.rb +12 -43
  42. data/app/controllers/concerns/blacklight/facet.rb +3 -0
  43. data/app/controllers/concerns/blacklight/search_context.rb +16 -14
  44. data/app/controllers/concerns/blacklight/search_fields.rb +4 -14
  45. data/app/controllers/concerns/blacklight/search_history.rb +1 -6
  46. data/app/controllers/concerns/blacklight/token_based_user.rb +24 -9
  47. data/app/helpers/blacklight/blacklight_helper_behavior.rb +39 -119
  48. data/app/helpers/blacklight/catalog_helper_behavior.rb +94 -88
  49. data/app/helpers/blacklight/component_helper_behavior.rb +21 -19
  50. data/app/helpers/blacklight/configuration_helper_behavior.rb +30 -57
  51. data/app/helpers/blacklight/facets_helper_behavior.rb +55 -51
  52. data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +9 -11
  53. data/app/helpers/blacklight/icon_helper_behavior.rb +18 -0
  54. data/app/helpers/blacklight/layout_helper_behavior.rb +3 -3
  55. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +8 -6
  56. data/app/helpers/blacklight/render_partials_helper_behavior.rb +195 -0
  57. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +19 -11
  58. data/app/helpers/blacklight/suggest_helper_behavior.rb +1 -0
  59. data/app/helpers/blacklight/url_helper_behavior.rb +50 -41
  60. data/app/{assets/javascripts → javascript}/blacklight/autocomplete.js +3 -2
  61. data/app/javascript/blacklight/bookmark_toggle.js +25 -0
  62. data/app/javascript/blacklight/checkbox_submit.js +134 -0
  63. data/app/{assets/javascripts → javascript}/blacklight/collapsable.js +1 -1
  64. data/app/{assets/javascripts → javascript}/blacklight/core.js +10 -8
  65. data/app/{assets/javascripts → javascript}/blacklight/facet_load.js +6 -6
  66. data/app/{assets/javascripts/blacklight/ajax_modal.js → javascript/blacklight/modal.js} +62 -64
  67. data/app/{assets/javascripts → javascript}/blacklight/search_context.js +10 -3
  68. data/app/models/blacklight/facet_paginator.rb +3 -3
  69. data/app/models/blacklight/icon.rb +56 -0
  70. data/app/models/blacklight/solr/facet_paginator.rb +3 -3
  71. data/app/models/blacklight/suggest_search.rb +4 -15
  72. data/app/models/bookmark.rb +5 -10
  73. data/app/models/concerns/blacklight/configurable.rb +13 -13
  74. data/app/models/concerns/blacklight/document/active_model_shim.rb +13 -11
  75. data/app/models/concerns/blacklight/document/cache_key.rb +1 -1
  76. data/app/models/concerns/blacklight/document/dublin_core.rb +2 -2
  77. data/app/models/concerns/blacklight/document/email.rb +1 -1
  78. data/app/models/concerns/blacklight/document/extensions.rb +5 -5
  79. data/app/models/concerns/blacklight/document/semantic_fields.rb +9 -9
  80. data/app/models/concerns/blacklight/document/sms.rb +1 -1
  81. data/app/models/concerns/blacklight/document.rb +26 -40
  82. data/app/models/concerns/blacklight/solr/document.rb +8 -8
  83. data/app/models/concerns/blacklight/suggest/response.rb +5 -3
  84. data/app/models/concerns/blacklight/user.rb +7 -6
  85. data/app/models/record_mailer.rb +5 -6
  86. data/app/models/search.rb +5 -7
  87. data/app/presenters/blacklight/document_presenter.rb +25 -140
  88. data/app/presenters/blacklight/field_presenter.rb +7 -5
  89. data/app/presenters/blacklight/index_presenter.rb +41 -58
  90. data/app/presenters/blacklight/json_presenter.rb +10 -14
  91. data/app/presenters/blacklight/link_alternate_presenter.rb +3 -1
  92. data/app/presenters/blacklight/rendering/abstract_step.rb +7 -5
  93. data/app/presenters/blacklight/rendering/helper_method.rb +10 -8
  94. data/app/presenters/blacklight/rendering/join.rb +5 -3
  95. data/app/presenters/blacklight/rendering/link_to_facet.rb +23 -19
  96. data/app/presenters/blacklight/rendering/microdata.rb +6 -3
  97. data/app/presenters/blacklight/rendering/pipeline.rb +7 -5
  98. data/app/presenters/blacklight/rendering/terminator.rb +2 -0
  99. data/app/presenters/blacklight/search_bar_presenter.rb +39 -0
  100. data/app/presenters/blacklight/show_presenter.rb +26 -63
  101. data/app/presenters/blacklight/thumbnail_presenter.rb +74 -0
  102. data/app/services/blacklight/document_factory.rb +13 -0
  103. data/app/services/blacklight/field_retriever.rb +26 -24
  104. data/app/services/blacklight/search_service.rb +152 -0
  105. data/app/values/blacklight/types.rb +31 -0
  106. data/app/views/blacklight/nav/_bookmark.html.erb +2 -2
  107. data/app/views/blacklight/nav/_search_history.html.erb +1 -1
  108. data/app/views/bookmarks/_tools.html.erb +2 -2
  109. data/app/views/bookmarks/index.html.erb +12 -13
  110. data/app/views/catalog/_bookmark_control.html.erb +26 -10
  111. data/app/views/catalog/_citation.html.erb +4 -4
  112. data/app/views/catalog/_constraints.html.erb +6 -7
  113. data/app/views/catalog/_constraints_element.html.erb +6 -6
  114. data/app/views/catalog/_did_you_mean.html.erb +1 -1
  115. data/app/views/catalog/{_document_default.atom.builder → _document.atom.builder} +19 -18
  116. data/app/views/catalog/_document.html.erb +5 -3
  117. data/app/views/catalog/{_document_default.rss.builder → _document.rss.builder} +2 -0
  118. data/app/views/catalog/_document_action.html.erb +2 -1
  119. data/app/views/catalog/_email_form.html.erb +8 -4
  120. data/app/views/catalog/_facet_index_navigation.html.erb +5 -4
  121. data/app/views/catalog/_facet_layout.html.erb +6 -10
  122. data/app/views/catalog/_facet_limit.html.erb +3 -2
  123. data/app/views/catalog/_facet_pagination.html.erb +8 -8
  124. data/app/views/catalog/_facet_pivot.html.erb +2 -2
  125. data/app/views/catalog/_facets.html.erb +9 -12
  126. data/app/views/catalog/_field.json.jbuilder +10 -0
  127. data/app/views/catalog/{_group_default.html.erb → _group.html.erb} +1 -1
  128. data/app/views/catalog/_home_text.html.erb +32 -36
  129. data/app/views/catalog/_index.html.erb +10 -0
  130. data/app/views/catalog/{_index_header_default.html.erb → _index_header.html.erb} +3 -3
  131. data/app/views/catalog/_per_page_widget.html.erb +6 -7
  132. data/app/views/catalog/_previous_next_doc.html.erb +6 -14
  133. data/app/views/catalog/_results_pagination.html.erb +2 -2
  134. data/app/views/catalog/_search_form.html.erb +12 -8
  135. data/app/views/catalog/_search_header.html.erb +0 -3
  136. data/app/views/catalog/_search_results.html.erb +6 -2
  137. data/app/views/catalog/_show.html.erb +8 -0
  138. data/app/views/catalog/_show_main_content.html.erb +4 -4
  139. data/app/views/catalog/_show_more_like_this.html.erb +1 -1
  140. data/app/views/catalog/_show_sidebar.html.erb +3 -3
  141. data/app/views/catalog/_show_tools.html.erb +10 -12
  142. data/app/views/catalog/_sms_form.html.erb +8 -4
  143. data/app/views/catalog/_sort_and_per_page.html.erb +3 -3
  144. data/app/views/catalog/_sort_widget.html.erb +7 -7
  145. data/app/views/catalog/_thumbnail.html.erb +5 -0
  146. data/app/views/catalog/_view_type_group.html.erb +2 -2
  147. data/app/views/catalog/_zero_results.html.erb +1 -1
  148. data/app/views/catalog/citation.js.erb +4 -2
  149. data/app/views/catalog/email.html.erb +5 -3
  150. data/app/views/catalog/email_success.html.erb +12 -8
  151. data/app/views/catalog/facet.html.erb +10 -8
  152. data/app/views/catalog/facet.json.jbuilder +2 -0
  153. data/app/views/catalog/index.atom.builder +13 -16
  154. data/app/views/catalog/index.html.erb +9 -11
  155. data/app/views/catalog/index.json.jbuilder +84 -3
  156. data/app/views/catalog/index.rss.builder +7 -5
  157. data/app/views/catalog/opensearch.xml.builder +12 -10
  158. data/app/views/catalog/show.html.erb +11 -6
  159. data/app/views/catalog/show.json.jbuilder +21 -0
  160. data/app/views/catalog/sms.html.erb +3 -1
  161. data/app/views/catalog/sms_success.html.erb +12 -8
  162. data/app/views/kaminari/blacklight/_first_page.html.erb +2 -2
  163. data/app/views/kaminari/blacklight/_gap.html.erb +2 -2
  164. data/app/views/kaminari/blacklight/_last_page.html.erb +2 -2
  165. data/app/views/kaminari/blacklight/_next_page.html.erb +5 -5
  166. data/app/views/kaminari/blacklight/_page.html.erb +5 -3
  167. data/app/views/kaminari/blacklight/_prev_page.html.erb +4 -4
  168. data/app/views/kaminari/blacklight_compact/_paginator.html.erb +4 -4
  169. data/app/views/layouts/blacklight/base.html.erb +35 -0
  170. data/app/views/layouts/blacklight.html.erb +14 -41
  171. data/app/views/layouts/catalog_result.html.erb +11 -0
  172. data/app/views/search_history/index.html.erb +16 -21
  173. data/app/views/shared/_header_navbar.html.erb +8 -13
  174. data/app/views/shared/_modal.html.erb +6 -0
  175. data/app/views/shared/_user_util_links.html.erb +22 -0
  176. data/blacklight.gemspec +10 -11
  177. data/config/i18n-tasks.yml +17 -0
  178. data/config/locales/blacklight.de.yml +71 -82
  179. data/config/locales/blacklight.en.yml +15 -27
  180. data/config/locales/blacklight.es.yml +14 -26
  181. data/config/locales/blacklight.fr.yml +16 -33
  182. data/config/locales/blacklight.hu.yml +212 -0
  183. data/config/locales/blacklight.it.yml +15 -26
  184. data/config/locales/blacklight.nl.yml +212 -0
  185. data/config/locales/blacklight.pt-BR.yml +24 -29
  186. data/config/locales/blacklight.sq.yml +4 -28
  187. data/config/locales/blacklight.zh.yml +3 -25
  188. data/config/routes.rb +2 -10
  189. data/db/migrate/20140202020202_create_bookmarks.rb +0 -1
  190. data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +1 -1
  191. data/lib/blacklight/abstract_repository.rb +22 -10
  192. data/lib/blacklight/configuration/context.rb +12 -1
  193. data/lib/blacklight/configuration/facet_field.rb +16 -9
  194. data/lib/blacklight/configuration/field.rb +32 -3
  195. data/lib/blacklight/configuration/fields.rb +61 -58
  196. data/lib/blacklight/configuration/null_field.rb +2 -0
  197. data/lib/blacklight/configuration/search_field.rb +2 -2
  198. data/lib/blacklight/configuration/sort_field.rb +2 -2
  199. data/lib/blacklight/configuration/view_config.rb +4 -0
  200. data/lib/blacklight/configuration.rb +101 -88
  201. data/lib/blacklight/engine.rb +11 -7
  202. data/lib/blacklight/exceptions.rb +4 -7
  203. data/lib/blacklight/{utils.rb → nested_open_struct_with_hash_access.rb} +9 -81
  204. data/lib/blacklight/open_struct_with_hash_access.rb +49 -0
  205. data/lib/blacklight/parameters.rb +1 -1
  206. data/lib/blacklight/routes/exportable.rb +1 -3
  207. data/lib/blacklight/routes/searchable.rb +3 -3
  208. data/lib/blacklight/runtime_registry.rb +2 -0
  209. data/lib/blacklight/search_builder.rb +28 -35
  210. data/lib/blacklight/search_state.rb +10 -8
  211. data/lib/blacklight/solr/repository.rb +40 -6
  212. data/lib/blacklight/solr/request.rb +1 -1
  213. data/lib/blacklight/solr/response/facets.rb +29 -31
  214. data/lib/blacklight/solr/response/group.rb +3 -3
  215. data/lib/blacklight/solr/response/group_response.rb +1 -1
  216. data/lib/blacklight/solr/response/more_like_this.rb +2 -2
  217. data/lib/blacklight/solr/response/response.rb +2 -2
  218. data/lib/blacklight/solr/response/spelling.rb +4 -3
  219. data/lib/blacklight/solr/response.rb +29 -30
  220. data/lib/blacklight/solr/search_builder_behavior.rb +25 -29
  221. data/lib/blacklight/version.rb +1 -1
  222. data/lib/blacklight.rb +10 -8
  223. data/lib/generators/blacklight/assets_generator.rb +18 -12
  224. data/lib/generators/blacklight/controller_generator.rb +4 -5
  225. data/lib/generators/blacklight/document_generator.rb +1 -1
  226. data/lib/generators/blacklight/install_generator.rb +18 -28
  227. data/lib/generators/blacklight/search_builder_generator.rb +1 -1
  228. data/lib/generators/blacklight/{solr5_generator.rb → solr_generator.rb} +12 -6
  229. data/lib/generators/blacklight/templates/.solr_wrapper.yml +5 -0
  230. data/lib/generators/blacklight/templates/alternate_controller.rb +4 -4
  231. data/lib/generators/blacklight/templates/blacklight.scss +0 -2
  232. data/lib/generators/blacklight/templates/catalog_controller.rb +59 -49
  233. data/lib/generators/blacklight/templates/config/blacklight.yml +1 -13
  234. data/lib/generators/blacklight/templates/solr/conf/schema.xml +388 -0
  235. data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +195 -0
  236. data/lib/generators/blacklight/test_support_generator.rb +10 -10
  237. data/lib/generators/blacklight/user_generator.rb +5 -6
  238. data/lib/railties/blacklight.rake +17 -21
  239. data/package-lock.json +2195 -0
  240. data/package.json +29 -0
  241. data/spec/controllers/alternate_controller_spec.rb +5 -4
  242. data/spec/controllers/application_controller_spec.rb +1 -5
  243. data/spec/controllers/blacklight/base_spec.rb +6 -3
  244. data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +11 -7
  245. data/spec/controllers/blacklight/facet_spec.rb +1 -2
  246. data/spec/controllers/blacklight/search_fields_spec.rb +25 -34
  247. data/spec/controllers/bookmarks_controller_spec.rb +46 -11
  248. data/spec/controllers/catalog_controller_spec.rb +334 -161
  249. data/spec/controllers/search_history_controller_spec.rb +6 -6
  250. data/spec/features/alternate_controller_spec.rb +4 -4
  251. data/spec/features/autocomplete_spec.rb +4 -2
  252. data/spec/features/bookmarks_spec.rb +10 -10
  253. data/spec/features/did_you_mean_spec.rb +7 -12
  254. data/spec/features/facets_spec.rb +29 -17
  255. data/spec/features/record_view_spec.rb +12 -18
  256. data/spec/features/search_context_spec.rb +6 -7
  257. data/spec/features/search_crawler_spec.rb +3 -5
  258. data/spec/features/search_filters_spec.rb +80 -80
  259. data/spec/features/search_formats_spec.rb +1 -1
  260. data/spec/features/search_history_spec.rb +6 -29
  261. data/spec/features/search_pagination_spec.rb +4 -2
  262. data/spec/features/search_results_spec.rb +14 -12
  263. data/spec/features/search_sort_spec.rb +2 -2
  264. data/spec/features/search_spec.rb +8 -9
  265. data/spec/features/sitelinks_search_box.rb +4 -4
  266. data/{solr → spec/fixtures}/sample_solr_documents.yml +688 -688
  267. data/spec/helpers/{configuration_helper_spec.rb → blacklight/configuration_helper_behavior_spec.rb} +97 -92
  268. data/spec/helpers/{facets_helper_spec.rb → blacklight/facets_helper_behavior_spec.rb} +72 -67
  269. data/spec/helpers/{hash_as_hidden_fields_spec.rb → blacklight/hash_as_hidden_fields_behavior_spec.rb} +2 -2
  270. data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +10 -0
  271. data/spec/helpers/{layout_helper_spec.rb → blacklight/layout_helper_behavior_spec.rb} +5 -5
  272. data/spec/helpers/{render_constraints_helper_spec.rb → blacklight/render_constraints_helper_behavior_spec.rb} +10 -6
  273. data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +92 -0
  274. data/spec/helpers/{search_history_constraints_helper_spec.rb → blacklight/search_history_constraints_helper_behavior_spec.rb} +29 -30
  275. data/spec/helpers/{suggest_helper_spec.rb → blacklight/suggest_helper_behavior_spec.rb} +9 -2
  276. data/spec/helpers/{url_helper_spec.rb → blacklight/url_helper_behavior_spec.rb} +56 -54
  277. data/spec/helpers/blacklight_helper_spec.rb +65 -150
  278. data/spec/helpers/catalog_helper_spec.rb +80 -96
  279. data/spec/i18n_spec.rb +18 -0
  280. data/spec/integration/generators/blacklight/{solr5_generator_spec.rb → solr_generator_spec.rb} +21 -13
  281. data/spec/lib/blacklight/configuration/facet_field_spec.rb +13 -0
  282. data/spec/lib/blacklight/configuration/field_spec.rb +15 -0
  283. data/spec/lib/blacklight/nested_open_struct_with_hash_access_spec.rb +17 -0
  284. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +148 -0
  285. data/spec/lib/blacklight/parameters_spec.rb +4 -2
  286. data/spec/lib/blacklight/search_state_spec.rb +53 -36
  287. data/spec/lib/blacklight_spec.rb +14 -15
  288. data/spec/lib/tasks/blacklight_task_spec.rb +4 -6
  289. data/spec/models/blacklight/configurable_spec.rb +24 -27
  290. data/spec/models/blacklight/configuration/context_spec.rb +9 -10
  291. data/spec/models/blacklight/configuration_spec.rb +248 -223
  292. data/spec/models/blacklight/document/active_model_shim_spec.rb +15 -6
  293. data/spec/models/blacklight/document/cache_key_spec.rb +9 -2
  294. data/spec/models/blacklight/document/dublin_core_spec.rb +17 -20
  295. data/spec/models/blacklight/document/email_spec.rb +10 -10
  296. data/spec/models/blacklight/document/sms_spec.rb +10 -10
  297. data/spec/models/blacklight/document_spec.rb +10 -22
  298. data/spec/models/blacklight/facet_paginator_spec.rb +40 -30
  299. data/spec/models/blacklight/icon_spec.rb +44 -0
  300. data/spec/models/blacklight/search_builder_spec.rb +41 -26
  301. data/spec/models/blacklight/solr/document_spec.rb +224 -216
  302. data/spec/models/blacklight/solr/facet_paginator_spec.rb +6 -4
  303. data/spec/models/blacklight/solr/repository_spec.rb +61 -46
  304. data/spec/models/blacklight/solr/request_spec.rb +17 -18
  305. data/spec/models/blacklight/solr/response/facets_spec.rb +58 -58
  306. data/spec/models/blacklight/solr/response/group_response_spec.rb +16 -22
  307. data/spec/models/blacklight/solr/response/group_spec.rb +18 -25
  308. data/spec/models/blacklight/solr/response_spec.rb +56 -55
  309. data/spec/models/blacklight/solr/search_builder_spec.rb +150 -164
  310. data/spec/models/blacklight/suggest/response_spec.rb +6 -4
  311. data/spec/models/blacklight/suggest_search_spec.rb +9 -16
  312. data/spec/models/blacklight/user_spec.rb +9 -11
  313. data/spec/models/bookmark_spec.rb +7 -6
  314. data/spec/models/record_mailer_spec.rb +23 -21
  315. data/spec/models/search_spec.rb +19 -18
  316. data/spec/models/solr_document_spec.rb +33 -5
  317. data/spec/presenters/blacklight/document_presenter_spec.rb +86 -0
  318. data/spec/presenters/blacklight/index_presenter_spec.rb +186 -0
  319. data/spec/presenters/blacklight/json_presenter_spec.rb +59 -0
  320. data/spec/presenters/blacklight/link_alternate_presenter_spec.rb +3 -0
  321. data/spec/presenters/blacklight/search_bar_presenter_spec.rb +79 -0
  322. data/spec/presenters/blacklight/show_presenter_spec.rb +333 -0
  323. data/spec/presenters/pipeline_spec.rb +18 -11
  324. data/spec/presenters/thumbnail_presenter_spec.rb +174 -0
  325. data/spec/routing/catalog_routing_spec.rb +13 -15
  326. data/spec/services/blacklight/search_service_spec.rb +488 -0
  327. data/spec/spec_helper.rb +20 -19
  328. data/spec/support/features/session_helpers.rb +4 -4
  329. data/spec/support/features.rb +1 -1
  330. data/spec/test_app_templates/Gemfile.extra +2 -4
  331. data/spec/test_app_templates/lib/generators/test_app_generator.rb +12 -13
  332. data/spec/views/catalog/_constraints.html.erb_spec.rb +3 -6
  333. data/spec/views/catalog/_constraints_element.html.erb_spec.rb +17 -13
  334. data/spec/views/catalog/_document.html.erb_spec.rb +11 -11
  335. data/spec/views/catalog/_document_list.html.erb_spec.rb +2 -1
  336. data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +5 -5
  337. data/spec/views/catalog/_facet_layout.html.erb_spec.rb +6 -6
  338. data/spec/views/catalog/_facets.html.erb_spec.rb +10 -12
  339. data/spec/views/catalog/{_index_default.erb_spec.rb → _index.html.erb_spec.rb} +14 -15
  340. data/spec/views/catalog/{_index_header_default.html.erb_spec.rb → _index_header.html.erb_spec.rb} +6 -9
  341. data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +7 -30
  342. data/spec/views/catalog/_search_header.erb_spec.rb +1 -3
  343. data/spec/views/catalog/{_show_default.erb_spec.rb → _show.html.erb_spec.rb} +13 -14
  344. data/spec/views/catalog/_show_sidebar.erb_spec.rb +6 -9
  345. data/spec/views/catalog/_show_tools.html.erb_spec.rb +5 -5
  346. data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +1 -2
  347. data/spec/views/catalog/_sort_widget.html.erb_spec.rb +3 -1
  348. data/spec/views/catalog/{_thumbnail_default.erb_spec.rb → _thumbnail.html.erb_spec.rb} +7 -9
  349. data/spec/views/catalog/_view_type_group.html.erb_spec.rb +12 -10
  350. data/spec/views/catalog/email_success.html.erb_spec.rb +8 -0
  351. data/spec/views/catalog/facet.html.erb_spec.rb +4 -3
  352. data/spec/views/catalog/facet.json.jbuilder_spec.rb +3 -2
  353. data/spec/views/catalog/index.atom.builder_spec.rb +11 -6
  354. data/spec/views/catalog/index.html.erb_spec.rb +6 -8
  355. data/spec/views/catalog/index.json.jbuilder_spec.rb +119 -26
  356. data/spec/views/catalog/opensearch.xml.builder_spec.rb +1 -1
  357. data/spec/views/catalog/show.html.erb_spec.rb +8 -8
  358. data/spec/views/catalog/show.json.jbuilder_spec.rb +40 -0
  359. data/spec/views/catalog/sms_success.html.erb_spec.rb +8 -0
  360. data/spec/views/{_user_util_links.html.erb_spec.rb → shared/_user_util_links.html.erb_spec.rb} +4 -7
  361. data/tasks/blacklight.rake +10 -8
  362. data/template.demo.rb +3 -11
  363. metadata +188 -189
  364. data/app/assets/javascripts/blacklight/autofocus.js +0 -16
  365. data/app/assets/javascripts/blacklight/bookmark_toggle.js +0 -23
  366. data/app/assets/javascripts/blacklight/checkbox_submit.js +0 -135
  367. data/app/controllers/concerns/blacklight/request_builders.rb +0 -77
  368. data/app/controllers/concerns/blacklight/saved_searches.rb +0 -70
  369. data/app/controllers/concerns/blacklight/search_helper.rb +0 -155
  370. data/app/controllers/concerns/blacklight/suggest.rb +0 -25
  371. data/app/controllers/saved_searches_controller.rb +0 -4
  372. data/app/controllers/suggest_controller.rb +0 -4
  373. data/app/helpers/blacklight/deprecated_url_helper_behavior.rb +0 -57
  374. data/app/helpers/blacklight/render_partials_helper.rb +0 -205
  375. data/app/helpers/blacklight_configuration_helper.rb +0 -4
  376. data/app/helpers/blacklight_url_helper.rb +0 -4
  377. data/app/helpers/component_helper.rb +0 -4
  378. data/app/helpers/facets_helper.rb +0 -4
  379. data/app/helpers/hash_as_hidden_fields_helper.rb +0 -4
  380. data/app/helpers/layout_helper.rb +0 -4
  381. data/app/helpers/render_constraints_helper.rb +0 -4
  382. data/app/helpers/search_history_constraints_helper.rb +0 -4
  383. data/app/helpers/suggest_helper.rb +0 -4
  384. data/app/models/concerns/blacklight/solr/document/more_like_this.rb +0 -6
  385. data/app/views/_user_util_links.html.erb +0 -26
  386. data/app/views/blacklight/nav/_saved_searches.html.erb +0 -1
  387. data/app/views/catalog/_index_default.html.erb +0 -12
  388. data/app/views/catalog/_show_default.html.erb +0 -10
  389. data/app/views/catalog/_thumbnail_default.html.erb +0 -5
  390. data/app/views/saved_searches/index.html.erb +0 -32
  391. data/app/views/shared/_ajax_modal.html.erb +0 -6
  392. data/lib/generators/blacklight/solr4_generator.rb +0 -31
  393. data/lib/generators/blacklight/templates/config/jetty.yml +0 -13
  394. data/solr/conf/schema.xml +0 -629
  395. data/solr/conf/solrconfig.xml +0 -411
  396. data/spec/controllers/blacklight/search_helper_spec.rb +0 -470
  397. data/spec/controllers/saved_searches_controller_spec.rb +0 -32
  398. data/spec/controllers/suggest_controller_spec.rb +0 -17
  399. data/spec/features/saved_searches_spec.rb +0 -47
  400. data/spec/helpers/deprecated_url_helper_behavior_spec.rb +0 -101
  401. data/spec/lib/blacklight/utils_spec.rb +0 -167
  402. data/spec/models/blacklight/solr/document/more_like_this_spec.rb +0 -18
  403. data/spec/presenters/document_presenter_spec.rb +0 -438
  404. data/spec/presenters/index_presenter_spec.rb +0 -173
  405. data/spec/presenters/show_presenter_spec.rb +0 -313
  406. data/spec/support/backport_test.rb +0 -14
  407. /data/app/views/catalog/{_show_header_default.html.erb → _show_header.html.erb} +0 -0
  408. /data/app/views/{_flash_msg.html.erb → shared/_flash_msg.html.erb} +0 -0
  409. /data/{solr → lib/generators/blacklight/templates/solr}/conf/_rest_managed.json +0 -0
  410. /data/{solr → lib/generators/blacklight/templates/solr}/conf/admin-extra.html +0 -0
  411. /data/{solr → lib/generators/blacklight/templates/solr}/conf/elevate.xml +0 -0
  412. /data/{solr → lib/generators/blacklight/templates/solr}/conf/mapping-ISOLatin1Accent.txt +0 -0
  413. /data/{solr → lib/generators/blacklight/templates/solr}/conf/protwords.txt +0 -0
  414. /data/{solr → lib/generators/blacklight/templates/solr}/conf/scripts.conf +0 -0
  415. /data/{solr → lib/generators/blacklight/templates/solr}/conf/spellings.txt +0 -0
  416. /data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords.txt +0 -0
  417. /data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords_en.txt +0 -0
  418. /data/{solr → lib/generators/blacklight/templates/solr}/conf/synonyms.txt +0 -0
  419. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example.xsl +0 -0
  420. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_atom.xsl +0 -0
  421. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_rss.xsl +0 -0
  422. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/luke.xsl +0 -0
@@ -1,26 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "catalog/_constraints_element.html.erb" do
3
+ RSpec.describe "catalog/_constraints_element.html.erb" do
4
4
  describe "for simple display" do
5
5
  before do
6
- render :partial => "catalog/constraints_element", :locals => {:label => "my label", :value => "my value"}
6
+ render partial: "catalog/constraints_element", locals: { label: "my label", value: "my value" }
7
7
  end
8
+
8
9
  it "renders label and value" do
9
- expect(rendered).to have_selector("span.appliedFilter.constraint") do |s|
10
+ expect(rendered).to have_selector("span.applied-filter.constraint") do |s|
10
11
  expect(s).to have_css("span.constraint-value")
11
- expect(s).to_not have_css("a.constraint-value")
12
- expect(s).to have_selector "span.filterName", :content => "my label"
13
- expect(s).to have_selector "span.filterValue", :content => "my value"
12
+ expect(s).not_to have_css("a.constraint-value")
13
+ expect(s).to have_selector "span.filter-name", content: "my label"
14
+ expect(s).to have_selector "span.filter-value", content: "my value"
14
15
  end
15
16
  end
16
17
  end
17
18
 
18
19
  describe "with remove link" do
19
20
  before do
20
- render :partial => "catalog/constraints_element", :locals => {:label => "my label", :value => "my value", :options => {:remove => "http://remove"}}
21
+ render partial: "catalog/constraints_element", locals: { label: "my label", value: "my value", options: { remove: "http://remove" } }
21
22
  end
23
+
22
24
  it "includes remove link" do
23
- expect(rendered).to have_selector("span.appliedFilter") do |s|
25
+ expect(rendered).to have_selector("span.applied-filter") do |s|
24
26
  expect(s).to have_selector(".remove[href='http://remove']")
25
27
  end
26
28
  end
@@ -33,20 +35,22 @@ describe "catalog/_constraints_element.html.erb" do
33
35
 
34
36
  describe "with custom classes" do
35
37
  before do
36
- render :partial => "catalog/constraints_element", :locals => {:label => "my label", :value => "my value", :options => {:classes => ["class1", "class2"]}}
38
+ render partial: "catalog/constraints_element", locals: { label: "my label", value: "my value", options: { classes: %w[class1 class2] } }
37
39
  end
40
+
38
41
  it "includes them" do
39
- expect(rendered).to have_selector("span.appliedFilter.constraint.class1.class2")
42
+ expect(rendered).to have_selector("span.applied-filter.constraint.class1.class2")
40
43
  end
41
44
  end
42
45
 
43
46
  describe "with no escaping" do
44
47
  before do
45
- render( :partial => "catalog/constraints_element", :locals => {:label => "<span class='custom_label'>my label</span>".html_safe, :value => "<span class='custom_value'>my value</span>".html_safe} )
48
+ render(partial: "catalog/constraints_element", locals: { label: "<span class='custom_label'>my label</span>".html_safe, value: "<span class='custom_value'>my value</span>".html_safe })
46
49
  end
50
+
47
51
  it "does not escape key and value" do
48
- expect(rendered).to have_selector("span.appliedFilter.constraint span.filterName span.custom_label")
49
- expect(rendered).to have_selector("span.appliedFilter.constraint span.filterValue span.custom_value")
52
+ expect(rendered).to have_selector("span.applied-filter.constraint span.filter-name span.custom_label")
53
+ expect(rendered).to have_selector("span.applied-filter.constraint span.filter-value span.custom_value")
50
54
  end
51
55
  end
52
56
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "catalog/_document" do
4
- let(:document) { SolrDocument.new :id => 'xyz', :format => 'a' }
3
+ RSpec.describe "catalog/_document" do
4
+ let(:document) { SolrDocument.new id: 'xyz', format: 'a' }
5
5
  let(:blacklight_config) { Blacklight::Configuration.new }
6
6
 
7
7
  before do
@@ -10,23 +10,23 @@ describe "catalog/_document" do
10
10
  end
11
11
 
12
12
  it "renders the header, thumbnail and index by default" do
13
- stub_template "catalog/_index_header_default.html.erb" => "document_header"
14
- stub_template "catalog/_thumbnail_default.html.erb" => "thumbnail_default"
13
+ stub_template "catalog/_index_header.html.erb" => "document_header"
14
+ stub_template "catalog/_thumbnail.html.erb" => "thumbnail_default"
15
15
  stub_template "catalog/_index_default.html.erb" => "index_default"
16
- render :partial => "catalog/document", :locals => {:document => document, :document_counter => 1}
16
+ render partial: "catalog/document", locals: { document: document, document_counter: 1 }
17
17
  expect(rendered).to match /document_header/
18
18
  expect(rendered).to match /thumbnail_default/
19
19
  expect(rendered).to match /index_default/
20
- expect(rendered).to have_selector('div.document[@itemscope]')
21
- expect(rendered).to have_selector('div.document[@itemtype="http://schema.org/Thing"]')
20
+ expect(rendered).to have_selector('.document[@itemscope]')
21
+ expect(rendered).to have_selector('.document[@itemtype="http://schema.org/Thing"]')
22
22
  end
23
23
 
24
24
  it "uses the index.partials parameter to determine the partials to render" do
25
- blacklight_config.index.partials = ['a', 'b', 'c']
25
+ blacklight_config.index.partials = %w[a b c]
26
26
  stub_template "catalog/_a_default.html.erb" => "a_partial"
27
27
  stub_template "catalog/_b_default.html.erb" => "b_partial"
28
28
  stub_template "catalog/_c_default.html.erb" => "c_partial"
29
- render :partial => "catalog/document", :locals => {:document => document, :document_counter => 1}
29
+ render partial: "catalog/document", locals: { document: document, document_counter: 1 }
30
30
  expect(rendered).to match /a_partial/
31
31
  expect(rendered).to match /b_partial/
32
32
  expect(rendered).to match /c_partial/
@@ -35,12 +35,12 @@ describe "catalog/_document" do
35
35
  it 'has a css class with the document position' do
36
36
  allow(view).to receive(:render_document_partials)
37
37
  render partial: 'catalog/document', locals: { document: document, document_counter: 5 }
38
- expect(rendered).to have_selector 'div.document-position-5'
38
+ expect(rendered).to have_selector '.document-position-5'
39
39
  end
40
40
 
41
41
  it 'has a data attribute with the document position' do
42
42
  allow(view).to receive(:render_document_partials)
43
43
  render partial: 'catalog/document', locals: { document: document, document_counter: 5 }
44
- expect(rendered).to have_selector 'div.document[@data-document-counter="5"]'
44
+ expect(rendered).to have_selector '.document[@data-document-counter="5"]'
45
45
  end
46
46
  end
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "catalog/_document_list", type: :view do
3
+ RSpec.describe "catalog/_document_list", type: :view do
4
4
  before do
5
5
  allow(view).to receive_messages(document_index_view_type: "some-view", documents: [])
6
6
  end
7
+
7
8
  it "includes a class for the current view" do
8
9
  render
9
10
  expect(rendered).to have_selector(".documents-some-view")
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe 'catalog/_facet_index_navigation.html.erb', type: :view do
3
+ RSpec.describe 'catalog/_facet_index_navigation.html.erb', type: :view do
4
4
  let(:pagination) { Blacklight::Solr::FacetPaginator.new([]) }
5
- let(:facet) { Blacklight::Configuration::FacetField.new({ index_range: '0'..'9' })}
5
+ let(:facet) { Blacklight::Configuration::FacetField.new(index_range: '0'..'9') }
6
6
  let(:blacklight_config) { Blacklight::Configuration.new }
7
7
 
8
8
  before do
@@ -21,9 +21,9 @@ describe 'catalog/_facet_index_navigation.html.erb', type: :view do
21
21
  expect(rendered).to have_link '9'
22
22
  end
23
23
 
24
- it 'renders a "clear filter" button' do
24
+ it 'renders an "all" button' do
25
25
  render
26
- expect(rendered).to have_selector '.btn.disabled', text: 'Clear Filter'
26
+ expect(rendered).to have_selector '.page-link', text: 'All'
27
27
  end
28
28
 
29
29
  context 'with a selected index' do
@@ -35,7 +35,7 @@ describe 'catalog/_facet_index_navigation.html.erb', type: :view do
35
35
  end
36
36
  it 'enables the clear facets button' do
37
37
  render
38
- expect(rendered).to have_link 'Clear Filter'
38
+ expect(rendered).to have_link 'All'
39
39
  end
40
40
  end
41
41
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "catalog/facet_layout" do
3
+ RSpec.describe "catalog/facet_layout" do
4
4
  let :blacklight_config do
5
5
  Blacklight::Configuration.new do |config|
6
6
  config.facet_fields[facet_field.field] = facet_field
@@ -22,19 +22,19 @@ describe "catalog/facet_layout" do
22
22
 
23
23
  it "has a title with a link for a11y" do
24
24
  render partial: 'catalog/facet_layout', locals: { facet_field: facet_field }
25
- expect(rendered).to have_selector 'h3 a', text: 'Some Field'
25
+ expect(rendered).to have_selector 'h3', text: 'Some Field'
26
26
  end
27
27
 
28
28
  it "is collapsable" do
29
29
  render partial: 'catalog/facet_layout', locals: { facet_field: facet_field }
30
- expect(rendered).to have_selector '.panel-heading.collapsed'
31
- expect(rendered).to have_selector '.collapse .panel-body'
30
+ expect(rendered).to have_selector '.card-header.collapsed'
31
+ expect(rendered).to have_selector '.collapse.card-body'
32
32
  end
33
33
 
34
34
  it "is configured to be open by default" do
35
35
  allow(facet_field).to receive_messages(collapse: false)
36
36
  render partial: 'catalog/facet_layout', locals: { facet_field: facet_field }
37
- expect(rendered).to_not have_selector '.panel-heading.collapsed'
38
- expect(rendered).to have_selector '.in .panel-body'
37
+ expect(rendered).not_to have_selector '.card-header.collapsed'
38
+ expect(rendered).to have_selector '.show.card-body'
39
39
  end
40
40
  end
@@ -1,38 +1,36 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "catalog/_facets" do
3
+ RSpec.describe "catalog/_facets" do
4
4
  let(:blacklight_config) { Blacklight::Configuration.new }
5
5
 
6
6
  before do
7
7
  allow(view).to receive_messages(blacklight_config: blacklight_config)
8
- allow(view).to receive(:search_action_path) do |*args|
9
- '/catalog'
10
- end
8
+ allow(view).to receive(:search_action_path).and_return('/catalog')
11
9
  end
12
10
 
13
11
  context "without any facet fields" do
14
12
  it "does not have a header if no facets are displayed" do
15
- allow(view).to receive_messages(:render_facet_partials => '')
13
+ allow(view).to receive_messages(render_facet_partials: '')
16
14
  render
17
- expect(rendered).to_not have_selector('h4')
15
+ expect(rendered).not_to have_selector('h4')
18
16
  end
19
17
  end
20
- context "with facet fields" do
21
18
 
19
+ context "with facet fields" do
22
20
  let :facet_field do
23
21
  Blacklight::Configuration::FacetField.new(field: 'facet_field_1', label: 'label').normalize!
24
22
  end
25
23
 
26
24
  before do
27
25
  blacklight_config.facet_fields['facet_field_1'] = facet_field
28
- @mock_display_facet_1 = double(:name => 'facet_field_1', sort: nil, offset: nil, prefix: nil, :items => [Blacklight::Solr::Response::Facets::FacetItem.new(:value => 'Value', :hits => 1234)])
29
- allow(view).to receive_messages(:facet_field_names => [:facet_field_1], :facet_limit_for => 10)
30
- @response = double()
26
+ @mock_display_facet_1 = double(name: 'facet_field_1', sort: nil, offset: nil, prefix: nil, items: [Blacklight::Solr::Response::Facets::FacetItem.new(value: 'Value', hits: 1234)])
27
+ allow(view).to receive_messages(facet_field_names: [:facet_field_1], facet_limit_for: 10)
28
+ @response = double
31
29
  allow(@response).to receive(:aggregations).and_return("facet_field_1" => @mock_display_facet_1)
32
30
  end
33
31
 
34
32
  it "has a header" do
35
- allow(view).to receive_messages(:render_facet_partials => '')
33
+ allow(view).to receive_messages(render_facet_partials: '')
36
34
  render
37
35
  expect(rendered).to have_selector('.facets-heading')
38
36
  end
@@ -47,7 +45,7 @@ describe "catalog/_facets" do
47
45
  # The .facet-content class is used by blacklight_range_limit js, and
48
46
  # should be applied to the .panel-collapse div that contains the collapsible
49
47
  # facet content. Please make sure it remains if possible.
50
- expect(rendered).to have_selector('.facet-content a.facet_select')
48
+ expect(rendered).to have_selector('.facet-content a.facet-select')
51
49
  expect(rendered).to have_selector('.facet-content .facet-count')
52
50
  end
53
51
  end
@@ -2,24 +2,24 @@
2
2
 
3
3
  # spec for default partial to display solr document fields in catalog INDEX view
4
4
 
5
- describe "/catalog/_index_default.erb" do
5
+ RSpec.describe "/catalog/_index" do
6
6
  include BlacklightHelper
7
7
  include CatalogHelper
8
8
 
9
- before(:each) do
9
+ before do
10
10
  allow(view).to receive(:action_name).and_return('index')
11
11
  @config = Blacklight::Configuration.new do |config|
12
12
  config.show.display_type_field = 'asdf'
13
- config.add_index_field 'one_field', :label => 'One:'
14
- config.add_index_field 'empty_field', :label => 'Three:'
15
- config.add_index_field 'four_field', :label => 'Four:'
13
+ config.add_index_field 'one_field', label: 'One:'
14
+ config.add_index_field 'empty_field', label: 'Three:'
15
+ config.add_index_field 'four_field', label: 'Four:'
16
16
  end
17
17
 
18
18
  @fname_1 = "one_field"
19
19
  @fname_2 = "solr_field_not_in_config"
20
20
  @fname_3 = "empty_field"
21
21
  @fname_4 = "four_field"
22
-
22
+
23
23
  @document = SolrDocument.new(id: 1, @fname_1 => "val_1", @fname_2 => "val2", @fname_4 => "val_4")
24
24
 
25
25
  @flabel_1 = "One:"
@@ -32,12 +32,12 @@ describe "/catalog/_index_default.erb" do
32
32
  end
33
33
 
34
34
  it "only displays fields listed in the initializer" do
35
- expect(@rendered).to_not include("val_2")
36
- expect(@rendered).to_not include(@fname_2)
35
+ expect(@rendered).not_to include("val_2")
36
+ expect(@rendered).not_to include(@fname_2)
37
37
  end
38
38
 
39
39
  it "skips over fields listed in initializer that are not in solr response" do
40
- expect(@rendered).to_not include(@fname_3)
40
+ expect(@rendered).not_to include(@fname_3)
41
41
  end
42
42
 
43
43
  it "displays field labels from initializer and raw solr field names in the class" do
@@ -49,15 +49,14 @@ describe "/catalog/_index_default.erb" do
49
49
  expect(@rendered).to include("blacklight-#{@fname_4}")
50
50
  end
51
51
 
52
- # this test probably belongs in a Cucumber feature
53
- # it "should display fields in the order listed in the initializer" do
54
- # pending
55
- # end
52
+ # this test probably belongs in a Cucumber feature
53
+ # it "should display fields in the order listed in the initializer" do
54
+ # pending
55
+ # end
56
56
 
57
57
  it "has values for displayed fields" do
58
58
  expect(@rendered).to include("val_1")
59
59
  expect(@rendered).to include("val_4")
60
- expect(@rendered).to_not include("val_2")
60
+ expect(@rendered).not_to include("val_2")
61
61
  end
62
-
63
62
  end
@@ -1,38 +1,35 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "catalog/_index_header_default" do
3
+ RSpec.describe "catalog/_index_header" do
4
4
  let :document do
5
- SolrDocument.new :id => 'xyz', :format => 'a'
5
+ SolrDocument.new id: 'xyz', format: 'a'
6
6
  end
7
7
 
8
8
  let(:blacklight_config) { Blacklight::Configuration.new }
9
9
 
10
10
  before do
11
- allow(controller).to receive(:action_name).and_return('index')
12
11
  assign :response, instance_double(Blacklight::Solr::Response, start: 0)
13
12
  allow(view).to receive(:render_grouped_response?).and_return false
14
13
  allow(view).to receive(:blacklight_config).and_return(blacklight_config)
15
- allow(view).to receive(:current_search_session).and_return nil
16
- allow(view).to receive(:search_session).and_return({})
14
+ allow(view).to receive(:session_tracking_params).and_return({})
17
15
  end
18
16
 
19
17
  it "renders the document header" do
20
18
  allow(view).to receive(:render_index_doc_actions)
21
- render partial: "catalog/index_header_default", locals: {document: document, document_counter: 1}
19
+ render partial: "catalog/index_header", locals: { document: document, document_counter: 1 }
22
20
  expect(rendered).to have_selector('.document-counter', text: "2")
23
21
  end
24
22
 
25
23
  it "allows the title to take the whole space if no document tools are rendered" do
26
24
  allow(view).to receive(:render_index_doc_actions)
27
- render partial: "catalog/index_header_default", locals: {document: document, document_counter: 1}
25
+ render partial: "catalog/index_header", locals: { document: document, document_counter: 1 }
28
26
  expect(rendered).to have_selector '.index_title.col-md-12'
29
27
  end
30
28
 
31
29
  it "gives the document actions space if present" do
32
30
  allow(view).to receive(:render_index_doc_actions).and_return("DOCUMENT ACTIONS")
33
- render partial: "catalog/index_header_default", locals: {document: document, document_counter: 1}
31
+ render partial: "catalog/index_header", locals: { document: document, document_counter: 1 }
34
32
  expect(rendered).to have_selector '.index_title.col-sm-9'
35
33
  expect(rendered).to have_content "DOCUMENT ACTIONS"
36
34
  end
37
-
38
35
  end
@@ -1,45 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "catalog/_paginate_compact.html.erb" do
4
- let(:user) { User.new.tap { |u| u.save(validate: false) } }
3
+ RSpec.describe "catalog/_paginate_compact.html.erb" do
4
+ let(:user) { User.new { |u| u.save(validate: false) } }
5
5
 
6
6
  before do
7
7
  controller.request.path_parameters[:action] = 'index'
8
8
  end
9
9
 
10
- describe "with a real solr response", :integration => true do
11
- def blacklight_config
12
- @config ||= CatalogController.blacklight_config
13
- end
14
-
15
- def blacklight_config=(config)
16
- @config = config
17
- end
18
-
19
- def facet_limit_for *args
20
- 0
21
- end
22
-
23
- include Blacklight::SearchHelper
24
-
25
- it "renders solr responses" do
26
- solr_response, document_list = search_results(q: '')
27
- render :partial => 'catalog/paginate_compact', :object => solr_response
28
- expect(rendered).to have_selector ".page_entries"
29
- expect(rendered).to have_selector "a[@rel=next]"
30
- end
31
- end
32
-
33
10
  it "renders paginatable arrays" do
34
- render :partial => 'catalog/paginate_compact', :object => (Kaminari.paginate_array([], total_count: 145).page(1).per(10))
35
- expect(rendered).to have_selector ".page_entries"
11
+ render partial: 'catalog/paginate_compact', object: Kaminari.paginate_array([], total_count: 145).page(1).per(10)
12
+ expect(rendered).to have_selector ".page-entries"
36
13
  expect(rendered).to have_selector "a[@rel=next]"
37
14
  end
38
15
 
39
16
  it "renders ActiveRecord collections" do
40
- 50.times { b = Bookmark.new; b.user = user; b.save! }
41
- render :partial => 'catalog/paginate_compact', :object => Bookmark.page(1).per(25)
42
- expect(rendered).to have_selector ".page_entries"
17
+ 50.times { b = Bookmark.new; b.user = user; b.save! }
18
+ render partial: 'catalog/paginate_compact', object: Bookmark.page(1).per(25)
19
+ expect(rendered).to have_selector ".page-entries"
43
20
  expect(rendered).to have_selector "a[@rel=next]"
44
21
  end
45
22
  end
@@ -2,14 +2,12 @@
2
2
 
3
3
  # spec for sidebar partial in catalog show view
4
4
 
5
- describe "/catalog/_search_header.html.erb" do
5
+ RSpec.describe "/catalog/_search_header.html.erb" do
6
6
  it "renders the default search header partials" do
7
7
  stub_template "_did_you_mean.html.erb" => "did_you_mean"
8
- stub_template "_constraints.html.erb" => "constraints"
9
8
  stub_template "_sort_and_per_page.html.erb" => "sort_and_per_page"
10
9
  render
11
10
  expect(rendered).to match /did_you_mean/
12
- expect(rendered).to match /constraints/
13
11
  expect(rendered).to match /sort_and_per_page/
14
12
  end
15
13
  end
@@ -2,18 +2,17 @@
2
2
 
3
3
  # spec for default partial to display solr document fields in catalog show view
4
4
 
5
- describe "/catalog/_show_default.html.erb" do
6
-
5
+ RSpec.describe "/catalog/_show" do
7
6
  include BlacklightHelper
8
7
  include CatalogHelper
9
8
 
10
- before(:each) do
9
+ before do
11
10
  allow(controller).to receive(:action_name).and_return('show')
12
11
  @config = Blacklight::Configuration.new do |config|
13
12
  config.show.display_type_field = 'asdf'
14
- config.add_show_field 'one_field', :label => 'One:'
15
- config.add_show_field 'empty_field', :label => 'Three:'
16
- config.add_show_field 'four_field', :label => 'Four:'
13
+ config.add_show_field 'one_field', label: 'One:'
14
+ config.add_show_field 'empty_field', label: 'Three:'
15
+ config.add_show_field 'four_field', label: 'Four:'
17
16
  end
18
17
 
19
18
  @fname_1 = "one_field"
@@ -33,12 +32,12 @@ describe "/catalog/_show_default.html.erb" do
33
32
  end
34
33
 
35
34
  it "only displays fields listed in the initializer" do
36
- expect(@rendered).to_not include("val_2")
37
- expect(@rendered).to_not include(@fname_2)
35
+ expect(@rendered).not_to include("val_2")
36
+ expect(@rendered).not_to include(@fname_2)
38
37
  end
39
38
 
40
39
  it "skips over fields listed in initializer that are not in solr response" do
41
- expect(@rendered).to_not include(@fname_3)
40
+ expect(@rendered).not_to include(@fname_3)
42
41
  end
43
42
 
44
43
  it "displays field labels from initializer and raw solr field names in the class" do
@@ -50,14 +49,14 @@ describe "/catalog/_show_default.html.erb" do
50
49
  expect(@rendered).to include("blacklight-#{@fname_4}")
51
50
  end
52
51
 
53
- # this test probably belongs in a Cucumber feature
54
- # it "should display fields in the order listed in the initializer" do
55
- # pending
56
- # end
52
+ # this test probably belongs in a Cucumber feature
53
+ # it "should display fields in the order listed in the initializer" do
54
+ # pending
55
+ # end
57
56
 
58
57
  it "has values for displayed fields" do
59
58
  expect(@rendered).to include("val_1")
60
59
  expect(@rendered).to include("val_4")
61
- expect(@rendered).to_not include("val_2")
60
+ expect(@rendered).not_to include("val_2")
62
61
  end
63
62
  end
@@ -2,26 +2,23 @@
2
2
 
3
3
  # spec for sidebar partial in catalog show view
4
4
 
5
- describe "/catalog/_show_sidebar.html.erb" do
6
-
5
+ RSpec.describe "/catalog/_show_sidebar.html.erb" do
7
6
  let(:blacklight_config) do
8
7
  Blacklight::Configuration.new do |config|
9
- config.index.title_field = 'title_display'
8
+ config.index.title_field = 'title_tsim'
10
9
  end
11
10
  end
12
11
 
13
- before(:each) do
14
- allow(controller).to receive(:action_name).and_return('show')
12
+ before do
15
13
  allow(view).to receive(:blacklight_config).and_return(blacklight_config)
16
14
  allow(view).to receive(:has_user_authentication_provider?).and_return(false)
17
- allow(view).to receive(:current_search_session).and_return nil
18
- allow(view).to receive(:search_session).and_return({})
19
15
  allow(view).to receive(:document_actions).and_return([])
16
+ allow(view).to receive(:session_tracking_params).and_return({})
20
17
  end
21
18
 
22
19
  it "shows more-like-this titles in the sidebar" do
23
- @document = SolrDocument.new :id => 1, :title_s => 'abc', :format => 'default'
24
- allow(@document).to receive(:more_like_this).and_return([SolrDocument.new({ 'id' => '2', 'title_display' => 'Title of MLT Document' })])
20
+ @document = SolrDocument.new id: 1, title_s: 'abc', format: 'default'
21
+ allow(@document).to receive(:more_like_this).and_return([SolrDocument.new('id' => '2', 'title_tsim' => 'Title of MLT Document')])
25
22
  render
26
23
  expect(rendered).to include("More Like This")
27
24
  expect(rendered).to include("Title of MLT Document")
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "catalog/_show_tools.html.erb" do
4
- let(:document) { SolrDocument.new :id => 'xyz', :format => 'a' }
3
+ RSpec.describe "catalog/_show_tools.html.erb" do
4
+ let(:document) { SolrDocument.new id: 'xyz', format: 'a' }
5
5
  let(:blacklight_config) { Blacklight::Configuration.new }
6
6
 
7
7
  before do
@@ -37,7 +37,7 @@ describe "catalog/_show_tools.html.erb" do
37
37
 
38
38
  it "evaluates a document action's if configuration with a proc" do
39
39
  allow(view).to receive(:some_action_solr_document_path).and_return "x"
40
- document_actions[:some_action] = Blacklight::Configuration::ToolConfig.new partial: 'document_action', if: Proc.new { |config, doc| doc.id == "xyz" }
40
+ document_actions[:some_action] = Blacklight::Configuration::ToolConfig.new partial: 'document_action', if: proc { |_config, doc| doc.id == "xyz" }
41
41
  render partial: 'catalog/show_tools'
42
42
  expect(rendered).not_to have_selector '.some_action', text: "Some action"
43
43
  end
@@ -60,14 +60,14 @@ describe "catalog/_show_tools.html.erb" do
60
60
  allow(view).to receive(:some_action_solr_document_path).and_return "x"
61
61
  document_actions[:some_action] = Blacklight::Configuration::ToolConfig.new partial: 'document_action'
62
62
  render partial: 'catalog/show_tools'
63
- expect(rendered).to have_selector '.some_action > a[data-ajax-modal="trigger"]', text: "Some action"
63
+ expect(rendered).to have_selector '.some_action > a[data-blacklight-modal="trigger"]', text: "Some action"
64
64
  end
65
65
 
66
66
  it "allows configuration to opt out of modal behavior" do
67
67
  allow(view).to receive(:some_action_solr_document_path).and_return "x"
68
68
  document_actions[:some_action] = Blacklight::Configuration::ToolConfig.new partial: 'document_action', modal: false
69
69
  render partial: 'catalog/show_tools'
70
- expect(rendered).not_to have_selector '.some_action > a[data-ajax-modal="trigger"]', text: "Some action"
70
+ expect(rendered).not_to have_selector '.some_action > a[data-blacklight-modal="trigger"]', text: "Some action"
71
71
  end
72
72
 
73
73
  context 'without any document actions defined' do
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "catalog/_sort_and_per_page" do
3
+ RSpec.describe "catalog/_sort_and_per_page" do
4
4
  let(:blacklight_config) { Blacklight::Configuration.new }
5
5
 
6
6
  before do
@@ -32,5 +32,4 @@ describe "catalog/_sort_and_per_page" do
32
32
  render
33
33
  expect(rendered).not_to match /paginate_compact/
34
34
  end
35
-
36
35
  end
@@ -21,6 +21,7 @@ RSpec.describe "catalog/_sort_widget" do
21
21
  before do
22
22
  blacklight_config.add_sort_field 'one'
23
23
  end
24
+
24
25
  it 'renders nothing' do
25
26
  render
26
27
  expect(rendered).to be_blank
@@ -32,9 +33,10 @@ RSpec.describe "catalog/_sort_widget" do
32
33
  blacklight_config.add_sort_field 'one'
33
34
  blacklight_config.add_sort_field 'two'
34
35
  end
36
+
35
37
  it 'renders a dropdown with the various options' do
36
38
  render
37
-
39
+
38
40
  expect(rendered).to have_button 'One'
39
41
  expect(rendered).to have_link 'One'
40
42
  expect(rendered).to have_link 'Two'