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,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe SearchHistoryController do
3
+ RSpec.describe SearchHistoryController do
4
4
  routes { Blacklight::Engine.routes }
5
5
 
6
6
  describe "index" do
@@ -10,25 +10,25 @@ describe SearchHistoryController do
10
10
  @three = Search.create
11
11
  end
12
12
 
13
- it "onlies fetch searches with ids in the session" do
13
+ it "only fetches searches with ids in the session" do
14
14
  session[:history] = [@one.id, @three.id]
15
15
  get :index
16
16
  @searches = assigns(:searches)
17
17
  expect(@searches).to have(2).searches
18
18
  expect(@searches).to include(@one)
19
19
  expect(@searches).to include(@three)
20
- expect(@searches).to_not include(@two)
20
+ expect(@searches).not_to include(@two)
21
21
  end
22
-
22
+
23
23
  it "tolerates bad ids in session" do
24
24
  session[:history] = [@one.id, @three.id, "NOT_IN_DB"]
25
25
  get :index
26
26
  @searches = assigns(:searches)
27
27
  expect(@searches).to have(2).searches
28
28
  expect(@searches).to include(@one)
29
- expect(@searches).to include(@three)
29
+ expect(@searches).to include(@three)
30
30
  end
31
-
31
+
32
32
  it "does not fetch any searches if there is no history" do
33
33
  session[:history] = []
34
34
  get :index
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "Alternate Controller Behaviors" do
3
+ RSpec.describe "Alternate Controller Behaviors" do
4
4
  it "has the correct per-page form" do
5
5
  visit search_alternate_path
6
6
  expect(page).to have_selector("form[action='#{search_alternate_url}']")
7
- fill_in "q", :with=>"history"
7
+ fill_in "q", with: "history"
8
8
  click_button 'search'
9
9
  expect(current_path).to match /#{search_alternate_path}/
10
10
  within "#per_page-dropdown .dropdown-menu" do
@@ -16,7 +16,7 @@ describe "Alternate Controller Behaviors" do
16
16
  it "has the correct search field form" do
17
17
  visit search_alternate_path
18
18
  expect(page).to have_selector("form[action='#{search_alternate_url}']")
19
- fill_in "q", :with=>"history"
19
+ fill_in "q", with: "history"
20
20
  click_button 'search'
21
21
  expect(current_path).to match /#{search_alternate_path}/
22
22
  click_on 'relevance'
@@ -26,7 +26,7 @@ describe "Alternate Controller Behaviors" do
26
26
  it "displays document thumbnails" do
27
27
  visit search_alternate_path
28
28
  expect(page).to have_selector("form[action='#{search_alternate_url}']")
29
- fill_in "q", :with=>"history"
29
+ fill_in "q", with: "history"
30
30
  click_button 'search'
31
31
  expect(page).to have_selector ".document-thumbnail"
32
32
  expect(page).to have_selector ".document-thumbnail a[data-context-href]"
@@ -1,6 +1,8 @@
1
- describe 'Autocomplete suggestions' do
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe 'Autocomplete suggestions' do
2
4
  it 'search form has suggest path' do
3
5
  visit root_path
4
- expect(page).to have_css 'input[data-autocomplete-path="/suggest"]'
6
+ expect(page).to have_css 'input[data-autocomplete-path="/catalog/suggest"]'
5
7
  end
6
8
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "Bookmarks" do
3
+ RSpec.describe "Bookmarks" do
4
4
  describe "navigating from the homepage" do
5
5
  it "has a link to the history page" do
6
6
  sign_in 'user1'
@@ -58,26 +58,26 @@ describe "Bookmarks" do
58
58
  end
59
59
 
60
60
  it "cites items in current bookmarks page" do
61
- visit solr_document_path('2009373513')
61
+ visit solr_document_path('2009373513') # Ci an zhou bian
62
62
  click_button 'Bookmark'
63
63
 
64
- visit solr_document_path('2007020969')
64
+ visit solr_document_path('2007020969') # Strong Medicine speaks
65
65
  click_button 'Bookmark'
66
66
 
67
67
  visit "/bookmarks?per_page=1"
68
- expect(page).to have_content 'Ci an zhou bian'
69
- expect(page).not_to have_content 'Strong Medicine speaks'
68
+ expect(page).to have_content 'Strong Medicine speaks'
69
+ expect(page).not_to have_content 'Ci an zhou bian'
70
70
 
71
71
  click_link 'Cite'
72
- expect(page).to have_content 'Ci an zhou bian'
73
- expect(page).not_to have_content 'Strong Medicine speaks'
72
+ expect(page).to have_content 'Strong Medicine speaks'
73
+ expect(page).not_to have_content 'Ci an zhou bian'
74
74
 
75
75
  visit "/bookmarks?per_page=1"
76
76
  click_link "2"
77
- expect(page).to have_content 'Strong Medicine speaks'
77
+ expect(page).to have_content 'Ci an zhou bian'
78
78
 
79
79
  click_link 'Cite'
80
- expect(page).to have_content 'Strong Medicine speaks'
81
- expect(page).not_to have_content 'Ci an zhou bian'
80
+ expect(page).not_to have_content 'Strong Medicine speaks'
81
+ expect(page).to have_content 'Ci an zhou bian'
82
82
  end
83
83
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "Did You Mean" do
3
+ RSpec.describe "Did You Mean" do
4
4
  before { visit root_path }
5
5
 
6
6
  describe "searching all fields" do
@@ -18,6 +18,7 @@ describe "Did You Mean" do
18
18
 
19
19
  describe "for a title search" do
20
20
  before { select 'Title', from: 'search_field' }
21
+
21
22
  it "has suggestions" do
22
23
  # yehudiyam is one letter away from a title word
23
24
  fill_in "q", with: 'yehudiyam'
@@ -36,6 +37,7 @@ describe "Did You Mean" do
36
37
 
37
38
  describe "for an author search" do
38
39
  before { select 'Author', from: 'search_field' }
40
+
39
41
  it "has suggestions" do
40
42
  # shirma is one letter away from an author word
41
43
  fill_in "q", with: 'shirma'
@@ -54,6 +56,7 @@ describe "Did You Mean" do
54
56
 
55
57
  describe "for an subject search" do
56
58
  before { select 'Subject', from: 'search_field' }
59
+
57
60
  it "has suggestions" do
58
61
  # wome is one letter away from an author word
59
62
  fill_in "q", with: 'wome'
@@ -75,7 +78,7 @@ describe "Did You Mean" do
75
78
  fill_in "q", with: 'ooofda ooofda'
76
79
  click_button 'search'
77
80
 
78
- expect(page).to_not have_content("Did you mean")
81
+ expect(page).not_to have_content("Did you mean")
79
82
  end
80
83
 
81
84
  it "has separate suggestions" do
@@ -88,13 +91,13 @@ describe "Did You Mean" do
88
91
  expect(page).to have_link('bon')
89
92
  expect(page).not_to have_link('policy bon')
90
93
  end
91
-
94
+
92
95
  click_link 'bon'
93
96
  within ("#sortAndPerPage") do
94
97
  expect(page).to have_content "1 entry found"
95
98
  end
96
99
  end
97
-
100
+
98
101
  it "ignores repeated terms" do
99
102
  fill_in "q", with: 'boo boo'
100
103
  click_button 'search'
@@ -118,18 +121,10 @@ describe "Did You Mean" do
118
121
  end
119
122
  end
120
123
 
121
- it "does not show suggestions if there are many results" do
122
- # histori gives 9 results in 30 record demo index
123
- fill_in "q", with: 'histori'
124
- click_button 'search'
125
- expect(page).to_not have_content("Did you mean")
126
- end
127
-
128
124
  it "shows suggestions if at the threshold number" do
129
125
  # polit gives 5 results in 30 record demo index - 5 is default cutoff
130
126
  fill_in "q", with: 'polit'
131
127
  click_button 'search'
132
128
  expect(page).to have_content("Did you mean")
133
129
  end
134
-
135
130
  end
@@ -1,37 +1,37 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "Facets" do
3
+ RSpec.describe "Facets" do
4
4
  it "shows a single facet's values" do
5
- visit facet_catalog_path("language_facet")
6
- expect(page).to have_selector ".modal-title", :text => "Language"
7
- expect(page).to have_selector ".facet_select", :text => "Tibetan"
5
+ visit facet_catalog_path("language_ssim")
6
+ expect(page).to have_selector ".modal-title", text: "Language"
7
+ expect(page).to have_selector ".facet-select", text: "Tibetan"
8
8
  end
9
-
9
+
10
10
  it "paginates through a facet's values" do
11
- visit facet_catalog_path("subject_topic_facet")
11
+ visit facet_catalog_path("subject_ssim")
12
12
  expect(page).to have_selector '.facet-values li:first', text: "Japanese drama"
13
13
  expect(page).to have_link "A-Z Sort"
14
- expect(page).to have_selector '.sort_options .active', text: "Numerical Sort"
14
+ expect(page).to have_selector '.sort-options .active', text: "Numerical Sort"
15
15
  within ".modal-footer" do
16
16
  click_on "Next »"
17
17
  end
18
18
  expect(page).to have_selector '.facet-values li:first', text: "Jewish law"
19
19
  expect(page).to have_link "« Previous"
20
20
  end
21
-
21
+
22
22
  it "is able to change the facet sort" do
23
- visit facet_catalog_path("subject_topic_facet")
23
+ visit facet_catalog_path("subject_ssim")
24
24
  expect(page).to have_selector '.facet-values li:first', text: "Japanese drama"
25
25
  within ".modal-footer" do
26
26
  click_on "A-Z Sort"
27
27
  end
28
28
  expect(page).to have_selector '.facet-values li:first', text: "Accident insurance"
29
29
  expect(page).to have_link "Numerical Sort"
30
- expect(page).to have_selector '.sort_options .active', text: "A-Z Sort"
30
+ expect(page).to have_selector '.sort-options .active', text: "A-Z Sort"
31
31
  end
32
-
32
+
33
33
  it "is able to sort more facet window by letter" do
34
- visit facet_catalog_path("subject_topic_facet")
34
+ visit facet_catalog_path("subject_ssim")
35
35
  within ".modal-footer" do
36
36
  click_on "A-Z Sort"
37
37
  end
@@ -43,19 +43,31 @@ describe "Facets" do
43
43
  click_on 'T'
44
44
  expect(page).to have_selector '.facet-values li:first', text: "Teaching"
45
45
  expect(page).to have_css '.facet-values li', count: 4
46
- click_on 'Clear Filter'
46
+ click_on 'All'
47
47
  expect(page).to have_selector '.facet-values li:first', text: "Accident insurance"
48
48
  expect(page).to have_css '.facet-values li', count: 20
49
- find(:css,".facet_pagination.bottom").click_on "Numerical Sort"
49
+ find(:css, ".facet-pagination.bottom").click_on "Numerical Sort"
50
50
  expect(page).to have_selector '.facet-values li:first', text: "Japanese drama"
51
51
  expect(page).to have_css '.facet-values li', count: 20
52
52
  end
53
-
53
+
54
+ it 'is able to expand facets when javascript is enabled', js: true do
55
+ visit root_path
56
+
57
+ expect(page).to have_css('#facet-format', visible: false)
58
+
59
+ page.find('h3.facet-field-heading a', text: 'Format').click
60
+
61
+ sleep(1) # let facet animation finish and wait for it to potentially re-collapse
62
+
63
+ expect(page).to have_css('#facet-format', visible: true) # assert that it didn't re-collapse
64
+ end
65
+
54
66
  describe '"More" links' do
55
67
  it 'has default more link with sr-only text' do
56
68
  visit root_path
57
- within '#facet-language_facet' do
58
- expect(page).to have_css 'li.more_facets_link', text: 'more Language'
69
+ within '#facet-language_ssim' do
70
+ expect(page).to have_css 'li.more_facets', text: 'more Language'
59
71
  end
60
72
  end
61
73
  end
@@ -1,39 +1,33 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "Record View" do
3
+ RSpec.describe "Record View" do
4
4
  it "displays a normal record" do
5
5
  visit solr_document_path('2007020969')
6
- expect(page).to have_content "Title:"
7
- expect(page).to have_content "Strong Medicine speaks"
8
- expect(page).to have_content "Subtitle:"
9
- expect(page).to have_content "a Native American elder has her say : an oral history"
10
- expect(page).to have_content "Author:"
6
+ expect(page).to have_content "Title:"
7
+ expect(page).to have_content "Strong Medicine speaks"
8
+ expect(page).to have_content "Subtitle:"
9
+ expect(page).to have_content "a Native American elder has her say : an oral history"
10
+ expect(page).to have_content "Author:"
11
11
  expect(page).to have_content "Hearth, Amy Hill, 1958-"
12
- expect(page).to have_content "Format:"
13
- expect(page).to have_content "Book"
12
+ expect(page).to have_content "Format:"
13
+ expect(page).to have_content "Book"
14
14
  expect(page).to have_content "Call number:"
15
15
  expect(page).to have_content "E99.D2 H437 2008"
16
16
  tmp_value = Capybara.ignore_hidden_elements
17
17
  Capybara.ignore_hidden_elements = false
18
18
  expect(page).to have_selector("link[rel=alternate]")
19
19
  Capybara.ignore_hidden_elements = tmp_value
20
-
21
20
  end
22
21
 
23
22
  it "does not display blank titles" do
24
23
  visit solr_document_path('2008305903')
25
- expect(page).not_to have_content "More Information:"
24
+ expect(page).not_to have_content "More Information:"
26
25
  end
27
26
 
28
27
  it "does not display vernacular records" do
29
28
  visit solr_document_path('2009373513')
30
- expect(page).to have_content "次按驟變"
31
- expect(page).to have_content "林行止"
32
- expect(page).to have_content "臺北縣板橋市"
33
- end
34
- it "does not display 404" do
35
- visit solr_document_path('this_id_does_not_exist')
36
- expect(page.driver.status_code).to eq 404
37
- expect(page).to have_content "The page you were looking for doesn't exist."
29
+ expect(page).to have_content "次按驟變"
30
+ expect(page).to have_content "林行止"
31
+ expect(page).to have_content "臺北縣板橋市"
38
32
  end
39
33
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "Search Results context", js: true do
3
+ RSpec.describe "Search Results context", js: true do
4
4
  it "passes the current search id through" do
5
5
  search_for ''
6
- search_id = Search.last.id.to_s
6
+ search_id = Search.last.id.to_s
7
7
  click_on 'Pluvial nectar of blessings'
8
8
  expect(page).to have_content "« Previous | 10 of 30 | Next »"
9
9
  prev = page.find(".pagination-search-widgets .previous")
@@ -14,23 +14,23 @@ describe "Search Results context", js: true do
14
14
  prev = page.find(".pagination-search-widgets .previous")
15
15
  expect(prev['data-context-href']).to eq "/catalog/2004310986/track?counter=8&search_id=#{search_id}"
16
16
  end
17
-
17
+
18
18
  it "redirects context urls to the original url" do
19
19
  search_for ''
20
20
  first('.index_title a').click
21
21
  expect(page).to have_content "« Previous | 1 of 30 | Next »"
22
- expect(page.current_url).to_not have_content "/track"
22
+ expect(page.current_url).not_to have_content "/track"
23
23
  end
24
24
 
25
25
  it 'shows "Back to Search" and "Start Over links"' do
26
26
  search_for 'Bod kyi naṅ chos ṅo sprod sñiṅ bsdus'
27
27
  first('.index_title a').click
28
- within '.pagination-search-widgets' do
28
+ within '.constraints-container' do
29
29
  expect(page).to have_css 'a', text: 'Back to Search'
30
30
  expect(page).to have_css 'a', text: 'Start Over'
31
31
  end
32
32
  end
33
-
33
+
34
34
  context "navigating between search results using context pagination" do
35
35
  it "updates the back to search link with the current search pagination context" do
36
36
  search_for ''
@@ -44,7 +44,6 @@ describe "Search Results context", js: true do
44
44
  end
45
45
  end
46
46
 
47
-
48
47
  def search_for q
49
48
  visit root_path
50
49
  fill_in "q", with: q
@@ -1,12 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  RSpec.describe "Search History Page" do
4
-
5
4
  describe "crawler search" do
6
5
  let(:original_proc) { ::CatalogController.blacklight_config.crawler_detector }
7
6
 
8
7
  before do
9
- ::CatalogController.blacklight_config.crawler_detector = lambda { |req| req.env['HTTP_USER_AGENT'] =~ /Googlebot/ }
8
+ ::CatalogController.blacklight_config.crawler_detector = ->(req) { req.env['HTTP_USER_AGENT'] =~ /Googlebot/ }
10
9
  end
11
10
 
12
11
  after do
@@ -16,15 +15,14 @@ RSpec.describe "Search History Page" do
16
15
  it "remembers human searches" do
17
16
  visit root_path
18
17
  fill_in "q", with: 'chicken'
19
- expect { click_button 'search' }.to change { Search.count }.by(1)
18
+ expect { click_button 'search' }.to change(Search, :count).by(1)
20
19
  end
21
20
 
22
21
  it "doesn't remember bot searches" do
23
22
  page.driver.header('User-Agent', 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)')
24
23
  visit root_path
25
24
  fill_in "q", with: 'chicken'
26
- expect { click_button 'search' }.to_not change { Search.count }
25
+ expect { click_button 'search' }.not_to change(Search, :count)
27
26
  end
28
27
  end
29
-
30
28
  end