blacklight-spotlight 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (367) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +22 -8
  3. data/Rakefile +40 -39
  4. data/app/assets/javascripts/spotlight/blacklight_configuration.js +16 -0
  5. data/app/assets/javascripts/spotlight/blocks/resources_block.js +3 -1
  6. data/app/assets/stylesheets/spotlight/_blacklight_configuration.scss +2 -2
  7. data/app/assets/stylesheets/spotlight/_blacklight_overrides.scss +24 -0
  8. data/app/assets/stylesheets/spotlight/_header.scss +150 -47
  9. data/app/assets/stylesheets/spotlight/_pages.scss +62 -11
  10. data/app/assets/stylesheets/spotlight/_report_a_problem.scss +1 -0
  11. data/app/assets/stylesheets/spotlight/_spotlight.scss +1 -0
  12. data/app/builders/spotlight/bootstrap_breadcrumbs_builder.rb +28 -21
  13. data/app/controllers/spotlight/about_pages_controller.rb +25 -14
  14. data/app/controllers/spotlight/appearances_controller.rb +34 -30
  15. data/app/controllers/spotlight/application_controller.rb +2 -1
  16. data/app/controllers/spotlight/attachments_controller.rb +9 -7
  17. data/app/controllers/spotlight/browse_controller.rb +13 -9
  18. data/app/controllers/spotlight/catalog_controller.rb +179 -161
  19. data/app/controllers/spotlight/concerns/application_controller.rb +22 -20
  20. data/app/controllers/spotlight/concerns/catalog_search_context.rb +44 -0
  21. data/app/controllers/spotlight/confirmations_controller.rb +5 -2
  22. data/app/controllers/spotlight/contact_forms_controller.rb +13 -7
  23. data/app/controllers/spotlight/contacts_controller.rb +13 -4
  24. data/app/controllers/spotlight/custom_fields_controller.rb +48 -40
  25. data/app/controllers/spotlight/dashboards_controller.rb +17 -8
  26. data/app/controllers/spotlight/default_controller.rb +3 -1
  27. data/app/controllers/spotlight/exhibits_controller.rb +69 -62
  28. data/app/controllers/spotlight/feature_pages_controller.rb +21 -11
  29. data/app/controllers/spotlight/home_pages_controller.rb +6 -5
  30. data/app/controllers/spotlight/lock_controller.rb +3 -1
  31. data/app/controllers/spotlight/metadata_configurations_controller.rb +49 -0
  32. data/app/controllers/spotlight/pages_controller.rb +28 -18
  33. data/app/controllers/spotlight/resources/upload_controller.rb +53 -46
  34. data/app/controllers/spotlight/resources_controller.rb +9 -5
  35. data/app/controllers/spotlight/roles_controller.rb +26 -22
  36. data/app/controllers/spotlight/search_configurations_controller.rb +66 -0
  37. data/app/controllers/spotlight/searches_controller.rb +91 -82
  38. data/app/controllers/spotlight/solr_controller.rb +20 -13
  39. data/app/controllers/spotlight/tags_controller.rb +5 -3
  40. data/app/controllers/spotlight/versions_controller.rb +15 -12
  41. data/app/controllers/spotlight/view_configurations_controller.rb +17 -0
  42. data/app/helpers/spotlight/application_helper.rb +44 -32
  43. data/app/helpers/spotlight/browse_helper.rb +13 -1
  44. data/app/helpers/spotlight/crud_link_helpers.rb +22 -14
  45. data/app/helpers/spotlight/jcrop_helper.rb +4 -2
  46. data/app/helpers/spotlight/main_app_helpers.rb +45 -41
  47. data/app/helpers/spotlight/navbar_helper.rb +6 -0
  48. data/app/helpers/spotlight/pages_helper.rb +23 -15
  49. data/app/helpers/spotlight/roles_helper.rb +10 -4
  50. data/app/helpers/spotlight/search_configurations_helper.rb +22 -0
  51. data/app/helpers/spotlight/title_helper.rb +16 -13
  52. data/app/jobs/spotlight/add_uploads_from_csv.rb +13 -9
  53. data/app/jobs/spotlight/reindex_job.rb +9 -9
  54. data/app/jobs/spotlight/rename_sidecar_field_job.rb +3 -0
  55. data/app/mailers/spotlight/confirmation_mailer.rb +2 -0
  56. data/app/mailers/spotlight/indexing_complete_mailer.rb +4 -2
  57. data/app/models/ability.rb +3 -0
  58. data/app/models/concerns/spotlight/ar_light.rb +49 -25
  59. data/app/models/concerns/spotlight/blacklight_configuration_defaults.rb +25 -10
  60. data/app/models/concerns/spotlight/exhibit_analytics.rb +28 -0
  61. data/app/models/concerns/spotlight/image_derivatives.rb +25 -26
  62. data/app/models/concerns/spotlight/resources/open_graph.rb +23 -19
  63. data/app/models/concerns/spotlight/resources/web.rb +25 -24
  64. data/app/models/concerns/spotlight/solr_document.rb +40 -34
  65. data/app/models/concerns/spotlight/solr_document/active_model_concern.rb +29 -40
  66. data/app/models/concerns/spotlight/solr_document/atomic_updates.rb +22 -18
  67. data/app/models/concerns/spotlight/solr_document/finder.rb +23 -18
  68. data/app/models/concerns/spotlight/solr_document/spotlight_images.rb +43 -39
  69. data/app/models/concerns/spotlight/solr_document/uploaded_resource.rb +41 -29
  70. data/app/models/concerns/spotlight/user.rb +25 -19
  71. data/app/models/sir_trevor_rails/blocks/browse_block.rb +36 -30
  72. data/app/models/sir_trevor_rails/blocks/featured_pages_block.rb +24 -18
  73. data/app/models/sir_trevor_rails/blocks/oembed_block.rb +8 -4
  74. data/app/models/sir_trevor_rails/blocks/search_results_block.rb +29 -23
  75. data/app/models/sir_trevor_rails/blocks/solr_documents_block.rb +43 -42
  76. data/app/models/sir_trevor_rails/blocks/solr_documents_carousel_block.rb +16 -12
  77. data/app/models/sir_trevor_rails/blocks/solr_documents_embed_block.rb +7 -3
  78. data/app/models/sir_trevor_rails/blocks/solr_documents_features_block.rb +7 -3
  79. data/app/models/sir_trevor_rails/blocks/solr_documents_grid_block.rb +7 -3
  80. data/app/models/sir_trevor_rails/blocks/textable.rb +18 -18
  81. data/app/models/spotlight/ability.rb +32 -33
  82. data/app/models/spotlight/about_page.rb +3 -1
  83. data/app/models/spotlight/analytics/ga.rb +46 -27
  84. data/app/models/spotlight/attachment.rb +3 -1
  85. data/app/models/spotlight/blacklight_configuration.rb +146 -68
  86. data/app/models/spotlight/contact.rb +35 -30
  87. data/app/models/spotlight/contact_email.rb +6 -3
  88. data/app/models/spotlight/contact_form.rb +4 -3
  89. data/app/models/spotlight/custom_field.rb +41 -33
  90. data/app/models/spotlight/exhibit.rb +104 -130
  91. data/app/models/spotlight/feature_page.rb +9 -7
  92. data/app/models/spotlight/featured_image.rb +10 -10
  93. data/app/models/spotlight/field_metadata.rb +46 -0
  94. data/app/models/spotlight/home_page.rb +8 -5
  95. data/app/models/spotlight/lock.rb +4 -3
  96. data/app/models/spotlight/main_navigation.rb +9 -3
  97. data/app/models/spotlight/masthead.rb +17 -16
  98. data/app/models/spotlight/page.rb +16 -16
  99. data/app/models/spotlight/resource.rb +69 -22
  100. data/app/models/spotlight/resources/csv_upload.rb +8 -4
  101. data/app/models/spotlight/resources/upload.rb +68 -57
  102. data/app/models/spotlight/role.rb +30 -34
  103. data/app/models/spotlight/search.rb +74 -63
  104. data/app/models/spotlight/solr_document_sidecar.rb +17 -15
  105. data/app/serializers/spotlight/exhibit_export_serializer.rb +65 -29
  106. data/app/serializers/spotlight/page_representer.rb +10 -6
  107. data/app/uploaders/spotlight/attachment_uploader.rb +4 -6
  108. data/app/uploaders/spotlight/avatar_uploader.rb +4 -3
  109. data/app/uploaders/spotlight/featured_image_uploader.rb +15 -14
  110. data/app/uploaders/spotlight/item_uploader.rb +3 -1
  111. data/app/uploaders/spotlight/masthead_uploader.rb +4 -2
  112. data/app/views/catalog/_search_form.html.erb +24 -0
  113. data/app/views/shared/_browse_navbar.html.erb +1 -1
  114. data/app/views/shared/_exhibit_navbar.html.erb +1 -1
  115. data/app/views/spotlight/appearances/edit.html.erb +13 -45
  116. data/app/views/spotlight/catalog/_edit_default.html.erb +1 -1
  117. data/app/views/spotlight/custom_fields/_form.html.erb +1 -1
  118. data/app/views/spotlight/exhibits/edit.html.erb +4 -4
  119. data/app/views/spotlight/home_pages/_empty.html.erb +1 -3
  120. data/app/views/spotlight/home_pages/_page_options.html.erb +1 -1
  121. data/app/views/spotlight/{blacklight_configurations → metadata_configurations}/_metadata_field.html.erb +0 -0
  122. data/app/views/spotlight/{blacklight_configurations/edit_metadata_fields.html.erb → metadata_configurations/edit.html.erb} +1 -1
  123. data/app/views/spotlight/pages/show.html.erb +2 -2
  124. data/app/views/spotlight/search_configurations/_default_per_page.html.erb +5 -0
  125. data/app/views/spotlight/search_configurations/_document_index_view_types.html.erb +7 -0
  126. data/app/views/spotlight/search_configurations/_facets.html.erb +38 -0
  127. data/app/views/spotlight/search_configurations/_search_fields.html.erb +58 -0
  128. data/app/views/spotlight/search_configurations/_sort.html.erb +53 -0
  129. data/app/views/spotlight/search_configurations/edit.html.erb +46 -0
  130. data/app/views/spotlight/searches/_search.html.erb +1 -1
  131. data/app/views/spotlight/shared/_admin_sidebar.html.erb +0 -2
  132. data/app/views/spotlight/shared/_curation_sidebar.html.erb +2 -3
  133. data/app/views/spotlight/shared/_report_a_problem.html.erb +2 -2
  134. data/app/views/spotlight/sir_trevor/blocks/_oembed_block.html.erb +5 -1
  135. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_block.html.erb +7 -5
  136. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb +2 -2
  137. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_embed_block.html.erb +7 -5
  138. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb +2 -2
  139. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb +14 -9
  140. data/config/locales/spotlight.en.yml +94 -49
  141. data/config/routes.rb +11 -20
  142. data/db/migrate/20150410180014_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +15 -0
  143. data/db/migrate/20150410180015_add_missing_taggable_index.acts_as_taggable_on_engine.rb +10 -0
  144. data/db/migrate/20150410180016_change_collation_for_tag_names.acts_as_taggable_on_engine.rb +10 -0
  145. data/db/migrate/20150713160101_change_spotlight_searches_to_published.rb +5 -0
  146. data/db/migrate/20151016092343_remove_searchable_from_exhibit.rb +20 -0
  147. data/lib/blacklight/spotlight.rb +1 -1
  148. data/lib/generators/spotlight/install_generator.rb +27 -25
  149. data/lib/generators/spotlight/templates/catalog_controller.rb +7 -5
  150. data/lib/generators/spotlight/templates/jetty.rake +8 -2
  151. data/lib/generators/spotlight/templates/spotlight_helper.rb +3 -1
  152. data/lib/spotlight.rb +4 -2
  153. data/lib/spotlight/base.rb +21 -14
  154. data/lib/spotlight/catalog.rb +10 -9
  155. data/lib/spotlight/catalog/access_controls_enforcement.rb +30 -15
  156. data/lib/spotlight/config.rb +4 -2
  157. data/lib/spotlight/controller.rb +12 -11
  158. data/lib/spotlight/engine.rb +30 -22
  159. data/lib/spotlight/rails/routes.rb +7 -4
  160. data/lib/spotlight/version.rb +2 -1
  161. data/lib/tasks/spotlight_tasks.rake +56 -50
  162. data/spec/controllers/application_controller_spec.rb +13 -13
  163. data/spec/controllers/spotlight/about_pages_controller_spec.rb +63 -59
  164. data/spec/controllers/spotlight/appearances_controller_spec.rb +29 -24
  165. data/spec/controllers/spotlight/application_controller_spec.rb +3 -3
  166. data/spec/controllers/spotlight/attachments_controller_spec.rb +10 -10
  167. data/spec/controllers/spotlight/browse_controller_spec.rb +23 -25
  168. data/spec/controllers/spotlight/catalog_controller_spec.rb +82 -87
  169. data/spec/controllers/spotlight/confirmations_controller_spec.rb +13 -11
  170. data/spec/controllers/spotlight/contact_forms_controller_spec.rb +17 -12
  171. data/spec/controllers/spotlight/contacts_controller_spec.rb +36 -36
  172. data/spec/controllers/spotlight/custom_fields_controller_spec.rb +26 -26
  173. data/spec/controllers/spotlight/dashboards_controller_spec.rb +14 -14
  174. data/spec/controllers/spotlight/exhibits_controller_spec.rb +59 -54
  175. data/spec/controllers/spotlight/feature_pages_controller_spec.rb +59 -59
  176. data/spec/controllers/spotlight/home_pages_controller_spec.rb +28 -29
  177. data/spec/controllers/spotlight/metadata_configurations_controller_spec.rb +84 -0
  178. data/spec/controllers/spotlight/resources/upload_controller_spec.rb +42 -33
  179. data/spec/controllers/spotlight/resources_controller_spec.rb +25 -29
  180. data/spec/controllers/spotlight/roles_controller_spec.rb +37 -19
  181. data/spec/controllers/spotlight/search_configurations_controller_spec.rb +125 -0
  182. data/spec/controllers/spotlight/searches_controller_spec.rb +84 -63
  183. data/spec/controllers/spotlight/solr_controller_spec.rb +13 -14
  184. data/spec/controllers/spotlight/tags_controller_spec.rb +16 -16
  185. data/spec/controllers/spotlight/versions_controller_spec.rb +15 -18
  186. data/spec/controllers/spotlight/view_configurations_controller_spec.rb +31 -0
  187. data/spec/factories/contacts.rb +1 -3
  188. data/spec/factories/custom_fields.rb +2 -4
  189. data/spec/factories/exhibits.rb +4 -2
  190. data/spec/factories/pages.rb +8 -11
  191. data/spec/factories/resources.rb +4 -4
  192. data/spec/factories/searches.rb +10 -13
  193. data/spec/factories/tags.rb +0 -3
  194. data/spec/factories/users.rb +2 -4
  195. data/spec/features/about_page_spec.rb +19 -19
  196. data/spec/features/add_contacts_spec.rb +34 -34
  197. data/spec/features/add_custom_field_metadata_spec.rb +24 -26
  198. data/spec/features/add_item_bookmarklet_spec.rb +12 -12
  199. data/spec/features/browse_category_admin_spec.rb +39 -39
  200. data/spec/features/catalog_spec.rb +9 -10
  201. data/spec/features/confirm_email_spec.rb +10 -10
  202. data/spec/features/create_exhibit_spec.rb +18 -15
  203. data/spec/features/create_page_spec.rb +8 -8
  204. data/spec/features/curator_items.rb +3 -3
  205. data/spec/features/dashboard_spec.rb +15 -16
  206. data/spec/features/edit_contact_spec.rb +8 -10
  207. data/spec/features/edit_search_fields_spec.rb +79 -0
  208. data/spec/features/exhibits/add_tags_spec.rb +15 -16
  209. data/spec/features/exhibits/administration_spec.rb +25 -25
  210. data/spec/features/exhibits/custom_metadata_fields_spec.rb +41 -43
  211. data/spec/features/exhibits/edit_metadata_fields_spec.rb +19 -19
  212. data/spec/features/feature_page_spec.rb +49 -48
  213. data/spec/features/home_page_spec.rb +38 -38
  214. data/spec/features/import_exhibit_spec.rb +23 -20
  215. data/spec/features/item_admin_spec.rb +28 -29
  216. data/spec/features/javascript/about_page_admin_spec.rb +9 -9
  217. data/spec/features/javascript/block_controls_spec.rb +16 -18
  218. data/spec/features/javascript/blocks/featured_browse_categories_block_spec.rb +11 -12
  219. data/spec/features/javascript/blocks/featured_pages_block_spec.rb +12 -13
  220. data/spec/features/javascript/blocks/search_result_block_spec.rb +17 -17
  221. data/spec/features/javascript/blocks/solr_documents_block_spec.rb +67 -65
  222. data/spec/features/javascript/edit_in_place_spec.rb +30 -56
  223. data/spec/features/javascript/feature_page_admin_spec.rb +73 -59
  224. data/spec/features/javascript/home_page_edit_spec.rb +6 -6
  225. data/spec/features/javascript/metadata_admin_spec.rb +15 -15
  226. data/spec/features/javascript/multi_image_select_spec.rb +17 -18
  227. data/spec/features/javascript/preview_block_spec.rb +11 -12
  228. data/spec/features/javascript/rule_block_spec.rb +7 -7
  229. data/spec/features/javascript/search_config_admin_spec.rb +144 -0
  230. data/spec/features/javascript/search_context_spec.rb +41 -42
  231. data/spec/features/main_navigation_spec.rb +22 -22
  232. data/spec/features/metadata_admin_spec.rb +8 -8
  233. data/spec/features/multiple_exhibits_spec.rb +15 -17
  234. data/spec/features/report_a_problem_spec.rb +23 -17
  235. data/spec/features/site_masthead_spec.rb +46 -46
  236. data/spec/features/slideshow_spec.rb +8 -9
  237. data/spec/features/tags_admin_spec.rb +11 -11
  238. data/spec/features/upload_non_repository_item_spec.rb +32 -32
  239. data/spec/features/user_admin_spec.rb +7 -7
  240. data/spec/helpers/spotlight/application_helper_spec.rb +63 -56
  241. data/spec/helpers/spotlight/browse_helper_spec.rb +6 -6
  242. data/spec/helpers/spotlight/crud_link_helpers_spec.rb +58 -52
  243. data/spec/helpers/spotlight/main_app_helpers_spec.rb +44 -24
  244. data/spec/helpers/spotlight/navbar_helper_spec.rb +4 -4
  245. data/spec/helpers/spotlight/pages_helper_spec.rb +56 -37
  246. data/spec/helpers/spotlight/roles_helper_spec.rb +3 -3
  247. data/spec/helpers/spotlight/search_configurations_helper_spec.rb +24 -0
  248. data/spec/helpers/spotlight/title_helper_spec.rb +33 -35
  249. data/spec/jobs/spotlight/reindex_job_spec.rb +6 -6
  250. data/spec/jobs/spotlight/rename_sidecar_field_job_spec.rb +7 -7
  251. data/spec/lib/spotlight/catalog/access_controls_enforcement_spec.rb +41 -26
  252. data/spec/lib/spotlight/controller_spec.rb +10 -10
  253. data/spec/lib/spotlight/routes_spec.rb +4 -4
  254. data/spec/mailers/spotlight/indexing_complete_mailer_spec.rb +13 -13
  255. data/spec/models/sir_trevor_rails/blocks/solr_documents_block_spec.rb +8 -8
  256. data/spec/models/{spotlight/sir_trevor_blocks → sir_trevor_rails/blocks}/textable_spec.rb +7 -8
  257. data/spec/models/solr_document_spec.rb +49 -50
  258. data/spec/models/spotlight/ability_spec.rb +17 -20
  259. data/spec/models/spotlight/about_page_spec.rb +6 -6
  260. data/spec/models/spotlight/analytics/ga_spec.rb +2 -2
  261. data/spec/models/spotlight/blacklight_configuration_spec.rb +196 -133
  262. data/spec/models/spotlight/contact_email_spec.rb +28 -24
  263. data/spec/models/spotlight/contact_spec.rb +6 -7
  264. data/spec/models/spotlight/custom_field_spec.rb +51 -52
  265. data/spec/models/spotlight/exhibit_spec.rb +102 -60
  266. data/spec/models/spotlight/feature_page_spec.rb +32 -32
  267. data/spec/models/spotlight/featured_image_spec.rb +5 -5
  268. data/spec/models/spotlight/field_metadata_spec.rb +78 -0
  269. data/spec/models/spotlight/home_page_spec.rb +11 -20
  270. data/spec/models/spotlight/{spotlight_image_derivatives_spec.rb → image_derivatives_spec.rb} +2 -2
  271. data/spec/models/spotlight/main_navigation_spec.rb +7 -9
  272. data/spec/models/spotlight/masthead_spec.rb +6 -6
  273. data/spec/models/spotlight/page_spec.rb +26 -29
  274. data/spec/models/spotlight/resource_spec.rb +56 -26
  275. data/spec/models/spotlight/resources/open_graph_spec.rb +16 -18
  276. data/spec/models/spotlight/resources/upload_spec.rb +32 -35
  277. data/spec/models/spotlight/resources/web_spec.rb +9 -11
  278. data/spec/models/spotlight/role_spec.rb +20 -20
  279. data/spec/models/spotlight/search_spec.rb +32 -15
  280. data/spec/models/spotlight/solr_document/atomic_updates_spec.rb +34 -0
  281. data/spec/models/spotlight/{solr_document_images_spec.rb → solr_document/spotlight_images_spec.rb} +18 -10
  282. data/spec/models/spotlight/solr_document/uploaded_resource_spec.rb +52 -0
  283. data/spec/models/spotlight/solr_document_sidecar_spec.rb +3 -4
  284. data/spec/routing/spotlight/exhibit_catalog_spec.rb +5 -5
  285. data/spec/routing/spotlight/pages_routing_spec.rb +24 -25
  286. data/spec/serializers/spotlight/exhibit_export_serializer_spec.rb +88 -68
  287. data/spec/spec_helper.rb +13 -22
  288. data/spec/support/features/test_features_helpers.rb +50 -46
  289. data/spec/support/views/test_view_helpers.rb +1 -1
  290. data/spec/test_app_templates/Gemfile.extra +0 -1
  291. data/spec/test_app_templates/carrierwave.rb +2 -2
  292. data/spec/test_app_templates/catalog_controller.rb +42 -42
  293. data/spec/test_app_templates/lib/generators/test_app_generator.rb +20 -11
  294. data/spec/test_app_templates/spotlight_test.rake +3 -3
  295. data/spec/uploaders/spotlight/item_uploader_spec.rb +68 -0
  296. data/spec/views/_user_util_links.html.erb_spec.rb +14 -14
  297. data/spec/views/shared/_analytics.html.erb_spec.rb +4 -6
  298. data/spec/views/shared/_exhibit_masthead.html.erb_spec.rb +19 -20
  299. data/spec/views/shared/_exhibit_navbar.html.erb_spec.rb +129 -131
  300. data/spec/views/shared/_footer.html.erb_spec.rb +6 -7
  301. data/spec/views/shared/_header_navbar.html.erb_spec.rb +5 -5
  302. data/spec/views/spotlight/about_pages/_empty.html.erb_spec.rb +4 -4
  303. data/spec/views/spotlight/about_pages/_sidebar.html.erb_spec.rb +9 -11
  304. data/spec/views/spotlight/about_pages/index.html.erb_spec.rb +31 -28
  305. data/spec/views/spotlight/browse/_search.html.erb_spec.rb +6 -6
  306. data/spec/views/spotlight/browse/_sort_and_per_page.html.erb_spec.rb +10 -12
  307. data/spec/views/spotlight/browse/index.html.erb_spec.rb +6 -6
  308. data/spec/views/spotlight/browse/show.html.erb_spec.rb +19 -20
  309. data/spec/views/spotlight/catalog/_edit_default.html.erb_spec.rb +7 -7
  310. data/spec/views/spotlight/catalog/admin.html.erb_spec.rb +7 -7
  311. data/spec/views/spotlight/catalog/edit.html.erb_spec.rb +3 -6
  312. data/spec/views/spotlight/catalog/new.html.erb_spec.rb +8 -10
  313. data/spec/views/spotlight/contacts/edit.html.erb_spec.rb +8 -8
  314. data/spec/views/spotlight/dashboards/_analytics.html.erb_spec.rb +22 -22
  315. data/spec/views/spotlight/exhibits/edit.html.erb_spec.rb +7 -8
  316. data/spec/views/spotlight/feature_pages/_empty.html.erb_spec.rb +5 -5
  317. data/spec/views/spotlight/feature_pages/_sidebar.html.erb_spec.rb +24 -26
  318. data/spec/views/spotlight/home_pages/_empty.html.erb_spec.rb +13 -9
  319. data/spec/views/spotlight/home_pages/_sidebar.html.erb_spec.rb +6 -6
  320. data/spec/views/spotlight/metadata_configurations/_metadata_field.html.erb_spec.rb +26 -0
  321. data/spec/views/spotlight/metadata_configurations/edit.html.erb_spec.rb +22 -0
  322. data/spec/views/spotlight/pages/edit.html.erb_spec.rb +16 -16
  323. data/spec/views/spotlight/pages/index.html.erb_spec.rb +19 -17
  324. data/spec/views/spotlight/pages/new.html.erb_spec.rb +6 -6
  325. data/spec/views/spotlight/pages/show.html.erb_spec.rb +27 -28
  326. data/spec/views/spotlight/roles/index.html.erb_spec.rb +6 -6
  327. data/spec/views/spotlight/search_configurations/_search_fields.html.erb_spec.rb +54 -0
  328. data/spec/views/spotlight/search_configurations/_sort.html.erb_spec.rb +28 -0
  329. data/spec/views/spotlight/searches/_search.html.erb_spec.rb +20 -10
  330. data/spec/views/spotlight/searches/edit.html.erb_spec.rb +12 -11
  331. data/spec/views/spotlight/searches/index.html.erb_spec.rb +12 -7
  332. data/spec/views/spotlight/sir_trevor/blocks/_iframe_block.html.erb_spec.rb +7 -8
  333. data/spec/views/spotlight/sir_trevor/blocks/_rule_block.html.erb_spec.rb +4 -4
  334. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_block.html.erb_spec.rb +38 -0
  335. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb_spec.rb +7 -8
  336. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_embed_block.html.erb_spec.rb +18 -13
  337. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb_spec.rb +14 -12
  338. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb_spec.rb +11 -12
  339. data/spec/views/spotlight/tags/index.html.erb_spec.rb +9 -9
  340. metadata +167 -83
  341. data/app/controllers/spotlight/blacklight_configurations_controller.rb +0 -101
  342. data/app/controllers/spotlight/resources/csv_controller.rb +0 -23
  343. data/app/forms/spotlight/appearance.rb +0 -86
  344. data/app/helpers/spotlight/attachments_helper.rb +0 -4
  345. data/app/helpers/spotlight/blacklight_configurations_helper.rb +0 -15
  346. data/app/jobs/spotlight/set_default_thumbnail_job.rb +0 -16
  347. data/app/models/spotlight/resources/csv.rb +0 -80
  348. data/app/uploaders/spotlight/csv_uploader.rb +0 -15
  349. data/app/views/spotlight/blacklight_configurations/edit_facet_fields.html.erb +0 -47
  350. data/app/views/spotlight/blacklight_configurations/edit_sort_fields.html.erb +0 -65
  351. data/app/views/spotlight/resources/csv/_form.html.erb +0 -17
  352. data/app/views/spotlight/resources/csv/new.html.erb +0 -3
  353. data/spec/controllers/spotlight/blacklight_configurations_controller_spec.rb +0 -167
  354. data/spec/features/edit_sort_fields_spec.rb +0 -42
  355. data/spec/features/exhibits/edit_facet_fields_spec.rb +0 -37
  356. data/spec/features/javascript/facet_admin_spec.rb +0 -36
  357. data/spec/features/search_facets_admin_spec.rb +0 -19
  358. data/spec/features/update_appearance_spec.rb +0 -58
  359. data/spec/helpers/spotlight/blacklight_configurations_helper_spec.rb +0 -12
  360. data/spec/models/spotlight/appearance_spec.rb +0 -33
  361. data/spec/models/spotlight/resources/csv_spec.rb +0 -101
  362. data/spec/models/spotlight/solr_document_atomic_updates_spec.rb +0 -29
  363. data/spec/models/spotlight/solr_document_uploaded_resource_spec.rb +0 -45
  364. data/spec/uploaders/item_uploader_spec.rb +0 -62
  365. data/spec/views/spotlight/blacklight_configuration/_metadata_field.html.erb_spec.rb +0 -27
  366. data/spec/views/spotlight/blacklight_configuration/edit_metadata_fields.html.erb_spec.rb +0 -23
  367. data/spec/views/spotlight/blacklight_configuration/edit_sort_fields.html.erb_spec.rb +0 -19
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,4 @@
1
- ENV["RAILS_ENV"] ||= 'test'
1
+ ENV['RAILS_ENV'] ||= 'test'
2
2
 
3
3
  require 'factory_girl'
4
4
  require 'database_cleaner'
@@ -13,7 +13,7 @@ require 'rspec/active_model/mocks'
13
13
 
14
14
  require 'capybara/poltergeist'
15
15
 
16
- if ENV["POLTERGEIST_DEBUG"]
16
+ if ENV['POLTERGEIST_DEBUG']
17
17
  Capybara.register_driver :poltergeist_debug do |app|
18
18
  Capybara::Poltergeist::Driver.new(app, inspector: true, phantomjs_options: ['--load-images=no'])
19
19
  end
@@ -24,33 +24,26 @@ else
24
24
  end
25
25
  Capybara.javascript_driver = :poltergeist
26
26
  end
27
- Capybara.default_wait_time = 10
27
+ Capybara.default_max_wait_time = 10
28
28
 
29
- # Setting this to false when running tests so that we don't have to set up
30
- # exhibit specific solr documents for tests that don't use the default exhibit.
31
- Spotlight::Engine.config.filter_resources_by_exhibit = false
32
-
33
-
34
- if ENV["COVERAGE"] or ENV["CI"]
29
+ if ENV['COVERAGE'] || ENV['CI']
35
30
  require 'simplecov'
36
- require 'coveralls' if ENV["CI"]
31
+ require 'coveralls' if ENV['CI']
37
32
 
38
- SimpleCov.formatter = Coveralls::SimpleCov::Formatter if ENV["CI"]
33
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter if ENV['CI']
39
34
  SimpleCov.start do
40
- add_filter "/spec/"
35
+ add_filter '/spec/'
41
36
  end
42
37
  end
43
38
 
44
39
  require 'spotlight'
45
40
 
41
+ Dir['./spec/support/**/*.rb'].sort.each { |f| require f }
46
42
 
47
- Dir["./spec/support/**/*.rb"].sort.each {|f| require f}
48
-
49
- FactoryGirl.definition_file_paths = [File.expand_path("../factories", __FILE__)]
43
+ FactoryGirl.definition_file_paths = [File.expand_path('../factories', __FILE__)]
50
44
  FactoryGirl.find_definitions
51
45
 
52
- FIXTURES_PATH = File.expand_path("../fixtures", __FILE__);
53
-
46
+ FIXTURES_PATH = File.expand_path('../fixtures', __FILE__)
54
47
 
55
48
  RSpec.configure do |config|
56
49
  config.infer_spec_type_from_file_location!
@@ -73,9 +66,7 @@ RSpec.configure do |config|
73
66
  DatabaseCleaner.clean
74
67
  end
75
68
 
76
- if ENV['CI']
77
- config.filter_run_excluding js: true
78
- end
69
+ config.filter_run_excluding js: true if ENV['CI']
79
70
 
80
71
  config.include Devise::TestHelpers, type: :controller
81
72
  config.include Devise::TestHelpers, type: :view
@@ -87,8 +78,8 @@ RSpec.configure do |config|
87
78
  config.include Spotlight::TestFeaturesHelpers, type: :feature
88
79
  end
89
80
 
90
- def add_new_page_via_button(title="New Page")
91
- add_link = find("[data-expanded-add-button]")
81
+ def add_new_page_via_button(title = 'New Page')
82
+ add_link = find('[data-expanded-add-button]')
92
83
  within(add_link) do
93
84
  expect(page).to have_css("input[type='text']", visible: false)
94
85
  end
@@ -1,64 +1,68 @@
1
- module Spotlight::TestFeaturesHelpers
2
- def fill_in_typeahead_field opts = {}
3
- # Poltergeist / Capybara doesn't fire the events typeahead.js
4
- # is listening for, so we help it out a little:
5
- page.execute_script <<-EOF
6
- $("[data-twitter-typeahead]").val("#{opts[:with]}").trigger("input");
7
- $("[data-twitter-typeahead]").typeahead("open");
8
- $(".tt-suggestion").click();
9
- EOF
1
+ module Spotlight
2
+ module TestFeaturesHelpers
3
+ def fill_in_typeahead_field(opts = {})
4
+ # Poltergeist / Capybara doesn't fire the events typeahead.js
5
+ # is listening for, so we help it out a little:
6
+ page.execute_script <<-EOF
7
+ $("[data-twitter-typeahead]").val("#{opts[:with]}").trigger("input");
8
+ $("[data-twitter-typeahead]").typeahead("open");
9
+ $(".tt-suggestion").click();
10
+ EOF
10
11
 
11
- find('.tt-suggestion', text: opts[:with], match: :first).click
12
- end
13
-
14
- def add_widget type = nil
15
- # Lame hack to get the sir-trevor Add widget link to work.
16
- # Not sure if it's the font-icon delayed loading, or something weird w/ the
17
- # test under javascript where the click handler hasn't been applied when the click happens,
18
- # but clicking on it an additional time seems to do the trick. 5 times is totally arbitrary,
19
- # it seems to work after the first attempt.
20
- 5.times do
21
- break if all("a[data-type]").present?
22
- find('[data-icon="add"]').click
23
- sleep(0.1)
12
+ find('.tt-suggestion', text: opts[:with], match: :first).click
24
13
  end
25
14
 
26
- if type
15
+ def add_widget(type)
16
+ click_add_widget
17
+
27
18
  # click the item + image widget
28
19
  expect(page).to have_css("a[data-type='#{type}']")
29
20
  find("a[data-type='#{type}']").click
30
21
  end
31
- end
32
22
 
33
- def save_page
34
- sleep 1
35
- click_button("Save changes")
36
- # verify that the page was created
37
- expect(page).to have_content("page was successfully updated")
38
- end
23
+ def click_add_widget
24
+ # Lame hack to get the sir-trevor Add widget link to work.
25
+ # Not sure if it's the font-icon delayed loading, or something weird w/ the
26
+ # test under javascript where the click handler hasn't been applied when the click happens,
27
+ # but clicking on it an additional time seems to do the trick. 5 times is totally arbitrary,
28
+ # it seems to work after the first attempt.
29
+ 5.times do
30
+ break if all('a[data-type]').present?
31
+ find('[data-icon="add"]').click
32
+ sleep(0.1)
33
+ end
34
+ end
39
35
 
40
- RSpec::Matchers.define :have_breadcrumbs do |*expected|
41
- match do |actual|
42
- errors = []
43
- errors << "Unable to find breadcrumbs" unless actual.has_css? ".breadcrumb"
36
+ def save_page
37
+ sleep 1
38
+ click_button('Save changes')
39
+ # verify that the page was created
40
+ expect(page).to have_content('page was successfully updated')
41
+ end
42
+
43
+ RSpec::Matchers.define :have_breadcrumbs do |*expected|
44
+ match do |actual|
45
+ errors = []
46
+ errors << 'Unable to find breadcrumbs' unless actual.has_css? '.breadcrumb'
47
+
48
+ breadcrumbs = expected.dup
44
49
 
45
- breadcrumbs = expected.dup
50
+ actual.within('.breadcrumb') do
51
+ last = breadcrumbs.pop
52
+ breadcrumbs.each do |e|
53
+ errors << "Unable to find breadcrumb #{e}" unless actual.has_link? e
54
+ end
46
55
 
47
- actual.within(".breadcrumb") do
48
- last = breadcrumbs.pop
49
- breadcrumbs.each do |e|
50
- errors << "Unable to find breadcrumb #{e}" unless actual.has_link? e
56
+ errors << "Unable to find breadcrumb #{last}" unless actual.has_content? last
57
+ errors << "Expected #{last} not to be a link" if actual.has_link? last
51
58
  end
52
59
 
53
- errors << "Unable to find breadcrumb #{last}" unless actual.has_content? last
54
- errors << "Expected #{last} not to be a link" if actual.has_link? last
60
+ errors.empty?
55
61
  end
56
62
 
57
- errors.empty?
58
- end
59
-
60
- failure_message do |actual|
61
- "expected that #{actual.all(".breadcrumb li").map { |x| x.text }.join(" / ")} would include #{expected.join(" / ")}"
63
+ failure_message do |actual|
64
+ "expected that #{actual.all('.breadcrumb li').map(&:text).join(' / ')} would include #{expected.join(' / ')}"
65
+ end
62
66
  end
63
67
  end
64
68
  end
@@ -9,4 +9,4 @@ module Spotlight
9
9
  end
10
10
  end
11
11
  end
12
- end
12
+ end
@@ -1 +0,0 @@
1
- gem "sir_trevor_rails", github: "sul-dlss/sir-trevor-rails"
@@ -1,6 +1,6 @@
1
- if Rails.env.test? or Rails.env.cucumber?
1
+ if Rails.env.test? || Rails.env.cucumber?
2
2
  CarrierWave.configure do |config|
3
3
  config.storage = :file
4
4
  config.enable_processing = false
5
5
  end
6
- end
6
+ end
@@ -1,29 +1,28 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'blacklight/catalog'
3
3
 
4
- class CatalogController < ApplicationController
5
-
4
+ class CatalogController < ApplicationController
6
5
  include Blacklight::Catalog
7
6
  helper Openseadragon::OpenseadragonHelper
8
7
 
9
8
  configure_blacklight do |config|
10
9
  ## Default parameters to send to solr for all search-like requests. See also SolrHelper#solr_search_params
11
- config.default_solr_params = {
12
- :qt => 'search',
13
- :rows => 10,
14
- :fl => '*'
10
+ config.default_solr_params = {
11
+ qt: 'search',
12
+ rows: 10,
13
+ fl: '*'
15
14
  }
16
15
 
17
- ## Default parameters to send on single-document requests to Solr. These settings are the Blackligt defaults (see SolrHelper#solr_doc_params) or
16
+ ## Default parameters to send on single-document requests to Solr. These settings are the Blackligt defaults (see SolrHelper#solr_doc_params) or
18
17
  ## parameters included in the Blacklight-jetty document requestHandler.
19
18
  #
20
- #config.default_document_solr_params = {
19
+ # config.default_document_solr_params = {
21
20
  # :qt => 'document',
22
21
  # ## These are hard-coded in the blacklight 'document' requestHandler
23
22
  # # :fl => '*',
24
23
  # # :rows => 1
25
- # # :q => '{!raw f=id v=$id}'
26
- #}
24
+ # # :q => '{!raw f=id v=$id}'
25
+ # }
27
26
 
28
27
  # solr field configuration for search results/index views
29
28
  config.index.title_field = 'full_title_tesim'
@@ -43,24 +42,24 @@ class CatalogController < ApplicationController
43
42
  # * If left unset, then all facet values returned by solr will be displayed.
44
43
  # * If set to an integer, then "f.somefield.facet.limit" will be added to
45
44
  # solr request, with actual solr request being +1 your configured limit --
46
- # you configure the number of items you actually want _displayed_ in a page.
45
+ # you configure the number of items you actually want _displayed_ in a page.
47
46
  # * If set to 'true', then no additional parameters will be sent to solr,
48
47
  # but any 'sniffed' request limit parameters will be used for paging, with
49
- # paging at requested limit -1. Can sniff from facet.limit or
48
+ # paging at requested limit -1. Can sniff from facet.limit or
50
49
  # f.specific_field.facet.limit solr request params. This 'true' config
51
50
  # can be used if you set limits in :default_solr_params, or as defaults
52
51
  # on the solr side in the request handler itself. Request handler defaults
53
52
  # sniffing requires solr requests to be made with "echoParams=all", for
54
- # app code to actually have it echo'd back to see it.
53
+ # app code to actually have it echo'd back to see it.
55
54
  #
56
- # :show may be set to false if you don't want the facet to be drawn in the
55
+ # :show may be set to false if you don't want the facet to be drawn in the
57
56
  # facet bar
58
- config.add_facet_field 'genre_ssim', :label => 'Genre', :limit => true
59
- config.add_facet_field 'personal_name_ssm', :label => 'Personal Names', :limit => true
60
- config.add_facet_field 'corporate_name_ssm', :label => 'Corporate Names', :limit => true
61
- config.add_facet_field 'subject_geographic_ssim', :label => 'Geographic'
62
- config.add_facet_field 'subject_temporal_ssim', :label => 'Era'
63
- config.add_facet_field 'language_ssim', :label => 'Language'
57
+ config.add_facet_field 'genre_ssim', label: 'Genre', limit: true
58
+ config.add_facet_field 'personal_name_ssm', label: 'Personal Names', limit: true
59
+ config.add_facet_field 'corporate_name_ssm', label: 'Corporate Names', limit: true
60
+ config.add_facet_field 'subject_geographic_ssim', label: 'Geographic'
61
+ config.add_facet_field 'subject_temporal_ssim', label: 'Era'
62
+ config.add_facet_field 'language_ssim', label: 'Language'
64
63
 
65
64
  # Have BL send all facet field names to Solr, which has been the default
66
65
  # previously. Simply remove these lines if you'd rather use Solr request
@@ -68,26 +67,30 @@ class CatalogController < ApplicationController
68
67
  config.add_facet_fields_to_solr_request!
69
68
 
70
69
  # solr fields to be displayed in the index (search results) view
71
- # The ordering of the field names is the order of the display
72
- config.add_index_field 'language_ssm', :label => 'Language'
73
- config.add_index_field 'abstract_tesim', :label => 'Abstract'
74
- config.add_index_field 'note_mapuse_tesim', :label => 'Type'
75
- config.add_index_field 'note_source_tesim', :label => 'Source'
76
- config.add_index_field 'subject_geographic_tesim', :label => 'Geographic Subject'
77
- config.add_index_field 'subject_temporal_tesim', :label => 'Temporal Subject'
70
+ # The ordering of the field names is the order of the display
71
+ config.add_index_field 'language_ssm', label: 'Language'
72
+ config.add_index_field 'abstract_tesim', label: 'Abstract'
73
+ config.add_index_field 'note_mapuse_tesim', label: 'Type'
74
+ config.add_index_field 'note_source_tesim', label: 'Source'
75
+ config.add_index_field 'subject_geographic_tesim', label: 'Geographic Subject'
76
+ config.add_index_field 'subject_temporal_tesim', label: 'Temporal Subject'
78
77
 
79
78
  # solr fields to be displayed in the show (single result) view
80
- # The ordering of the field names is the order of the display
81
- config.add_show_field 'note_phys_desc_tesim', :label => 'Note'
82
- config.add_show_field 'note_source_tesim', :label => 'Source'
83
- config.add_show_field 'note_desc_note_tesim', :label => 'Note'
84
- config.add_show_field 'note_references_tesim', :label => 'References'
85
- config.add_show_field 'note_provenance_tesim', :label => 'Provenance'
86
- config.add_show_field 'note_page_num_tesim', :label => 'Page Number'
87
- config.add_show_field 'subject_geographic_tesim', :label => 'Geographic Subject'
88
- config.add_show_field 'subject_temporal_tesim', :label => 'Temporal Subject'
89
- config.add_show_field 'personal_name_ssm', :label => 'Personal Names'
90
- config.add_show_field 'corporate_name_ssm', :label => 'Corporate Names'
79
+ # The ordering of the field names is the order of the display
80
+ config.add_show_field 'note_phys_desc_tesim', label: 'Note'
81
+ config.add_show_field 'note_source_tesim', label: 'Source'
82
+ config.add_show_field 'note_desc_note_tesim', label: 'Note'
83
+ config.add_show_field 'note_references_tesim', label: 'References'
84
+ config.add_show_field 'note_provenance_tesim', label: 'Provenance'
85
+ config.add_show_field 'note_page_num_tesim', label: 'Page Number'
86
+ config.add_show_field 'subject_geographic_tesim', label: 'Geographic Subject'
87
+ config.add_show_field 'subject_temporal_tesim', label: 'Temporal Subject'
88
+ config.add_show_field 'personal_name_ssm', label: 'Personal Names'
89
+ config.add_show_field 'corporate_name_ssm', label: 'Corporate Names'
90
+
91
+ config.add_search_field 'all_fields', label: 'All fields'
92
+ config.add_search_field 'title', label: 'Title', solr_local_parameters: { qf: 'full_title_tesim', pf: 'full_title_tesim' }
93
+ config.add_search_field 'author', label: 'Author', solr_local_parameters: { qf: '$qf_author', pf: '$pf_author' }
91
94
 
92
95
  config.add_sort_field 'relevance', sort: 'score desc, sort_title_ssi asc', label: 'Relevance'
93
96
  config.add_sort_field 'title', sort: 'sort_title_ssi asc', label: 'Title'
@@ -96,7 +99,4 @@ class CatalogController < ApplicationController
96
99
  config.add_sort_field 'source', sort: 'sort_source_ssi asc', label: 'Source'
97
100
  config.add_sort_field 'identifier', sort: 'id asc', label: 'Identifier'
98
101
  end
99
-
100
-
101
-
102
- end
102
+ end
@@ -1,27 +1,26 @@
1
1
  require 'rails/generators'
2
2
 
3
3
  class TestAppGenerator < Rails::Generators::Base
4
- source_root "../../spec/test_app_templates"
4
+ source_root '../../spec/test_app_templates'
5
5
 
6
6
  def add_gems
7
- gem 'blacklight', ">= 5.4.0.rc1", "<6"
8
- gem "blacklight-gallery", ">= 0.3.0"
9
- gem "sir_trevor_rails", github: "sul-dlss/sir-trevor-rails"
10
- gem "jettywrapper"
7
+ gem 'blacklight', '~> 5.13'
8
+ gem 'blacklight-gallery', '>= 0.3.0'
9
+ gem 'jettywrapper'
11
10
  Bundler.with_clean_env do
12
- run "bundle install"
11
+ run 'bundle install'
13
12
  end
14
13
  end
15
14
 
16
15
  def run_blacklight_generator
17
- say_status("warning", "GENERATING BL", :yellow)
16
+ say_status('warning', 'GENERATING BL', :yellow)
18
17
 
19
18
  generate 'blacklight:install', '--devise'
20
19
  end
21
20
 
22
21
  def run_spotlight_migrations
23
- rake "spotlight:install:migrations"
24
- rake "db:migrate"
22
+ rake 'spotlight:install:migrations'
23
+ rake 'db:migrate'
25
24
  end
26
25
 
27
26
  def add_spotlight_routes_and_assets
@@ -29,7 +28,7 @@ class TestAppGenerator < Rails::Generators::Base
29
28
  end
30
29
 
31
30
  def install_test_catalog_controller
32
- copy_file "catalog_controller.rb", "app/controllers/catalog_controller.rb", force: true
31
+ copy_file 'catalog_controller.rb', 'app/controllers/catalog_controller.rb', force: true
33
32
  end
34
33
 
35
34
  def add_rake_tasks_to_app
@@ -37,6 +36,16 @@ class TestAppGenerator < Rails::Generators::Base
37
36
  end
38
37
 
39
38
  def disable_carrierwave_processing
40
- copy_file "carrierwave.rb", "config/initializers/carrierwave.rb"
39
+ copy_file 'carrierwave.rb', 'config/initializers/carrierwave.rb'
40
+ end
41
+
42
+ def disable_filter_resources_by_exhibit
43
+ initializer 'disable_filter_resources_by_exhibit.rb' do
44
+ <<-EOF
45
+ # Setting this to false when running tests so that we don't have to set up
46
+ # exhibit specific solr documents for tests that don't use the default exhibit.
47
+ Spotlight::Engine.config.filter_resources_by_exhibit = false
48
+ EOF
49
+ end
41
50
  end
42
51
  end
@@ -2,11 +2,11 @@ require 'rake'
2
2
 
3
3
  namespace :spotlight_test do
4
4
  namespace :solr do
5
- desc "Index test data into solr; must be run from within an app (see spotlight:fixtures)"
5
+ desc 'Index test data into solr; must be run from within an app (see spotlight:fixtures)'
6
6
  task :seed do
7
- docs = YAML::load(File.open(File.expand_path(File.join('..', 'fixtures', 'sample_solr_documents.yml'), Rails.root)))
7
+ docs = YAML.load(File.open(File.expand_path(File.join('..', 'fixtures', 'sample_solr_documents.yml'), Rails.root)))
8
8
  Blacklight.default_index.connection.add docs
9
9
  Blacklight.default_index.connection.commit
10
10
  end
11
11
  end
12
- end
12
+ end
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+ require 'carrierwave/test/matchers'
3
+
4
+ describe Spotlight::ItemUploader do
5
+ include CarrierWave::Test::Matchers
6
+ let(:exhibit) { FactoryGirl.create(:exhibit) }
7
+ let(:resource) { stub_model(Spotlight::Resources::Upload) }
8
+ before do
9
+ allow(resource).to receive(:exhibit).and_return(exhibit)
10
+ described_class.enable_processing = true
11
+ end
12
+ after do
13
+ described_class.enable_processing = false
14
+ end
15
+ describe 'default configuration' do
16
+ subject do
17
+ described_class.new(resource, :resource)
18
+ end
19
+
20
+ before do
21
+ subject.store!(File.open(File.expand_path(File.join('..', 'fixtures', '800x600.png'), Rails.root)))
22
+ end
23
+
24
+ after do
25
+ subject.remove!
26
+ end
27
+
28
+ context 'the thumb version' do
29
+ it 'scales down an image so that the longest edge is 400px (maintaining aspect ratio)' do
30
+ expect(subject.thumb).to have_dimensions(400, 300)
31
+ end
32
+ end
33
+
34
+ context 'the square version' do
35
+ it 'scales down a landscape image to fit within 100px by 100px' do
36
+ expect(subject.square).to be_no_larger_than(100, 100)
37
+ end
38
+ end
39
+ end
40
+ describe 'with added configurations' do
41
+ subject do
42
+ described_class.new(resource, :resource)
43
+ end
44
+
45
+ before do
46
+ Spotlight::ImageDerivatives.spotlight_image_derivatives << {
47
+ version: :super_tiny,
48
+ blacklight_config_field: :super_tiny_field,
49
+ lambda: lambda do
50
+ version :super_tiny do
51
+ process resize_to_fill: [25, 25]
52
+ end
53
+ end
54
+ }
55
+ subject.store!(File.open(File.expand_path(File.join('..', 'fixtures', '800x600.png'), Rails.root)))
56
+ end
57
+
58
+ after do
59
+ subject.remove!
60
+ end
61
+
62
+ context 'the newly configured version' do
63
+ pending 'should have the newly configured dimensions' do
64
+ expect(subject.super_tiny).to have_dimensions(25, 25)
65
+ end
66
+ end
67
+ end
68
+ end