umlaut 3.3.1 → 4.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (555) hide show
  1. data/README.md +13 -12
  2. data/active_record_patch/connection_pool.rb +41 -449
  3. data/app/assets/javascripts/bootstrap3-typeahead.js +415 -0
  4. data/app/assets/javascripts/umlaut.js +8 -4
  5. data/app/assets/javascripts/umlaut/ajax_windows.js +15 -21
  6. data/app/assets/javascripts/umlaut/search_autocomplete.js +95 -90
  7. data/app/assets/javascripts/umlaut/update_html.js +12 -4
  8. data/app/assets/stylesheets/umlaut.css.scss +2 -4
  9. data/app/assets/stylesheets/umlaut/_az.scss +6 -6
  10. data/app/assets/stylesheets/umlaut/_forms.scss +21 -15
  11. data/app/assets/stylesheets/umlaut/_layout.scss +4 -5
  12. data/app/assets/stylesheets/umlaut/_misc.scss +12 -9
  13. data/app/assets/stylesheets/umlaut/_mixins.scss +2 -3
  14. data/app/assets/stylesheets/umlaut/_resolve.scss +45 -24
  15. data/app/assets/stylesheets/umlaut/_results.scss +7 -7
  16. data/app/assets/stylesheets/umlaut/_search.scss +16 -5
  17. data/app/assets/stylesheets/umlaut/_spinner.scss +1 -1
  18. data/app/assets/stylesheets/umlaut/_variables.scss +2 -2
  19. data/app/controllers/export_email_controller.rb +11 -4
  20. data/app/controllers/resolve_controller.rb +14 -30
  21. data/app/controllers/search_controller.rb +3 -8
  22. data/app/controllers/umlaut/controller_behavior.rb +30 -1
  23. data/app/controllers/umlaut/error_handling.rb +1 -1
  24. data/app/controllers/umlaut_configurable.rb +13 -10
  25. data/app/controllers/umlaut_controller.rb +4 -0
  26. data/app/helpers/emailer_helper.rb +10 -10
  27. data/app/helpers/export_email_helper.rb +1 -1
  28. data/app/helpers/resolve_helper.rb +3 -2
  29. data/app/helpers/search_helper.rb +26 -29
  30. data/app/helpers/umlaut/footer_helper.rb +4 -6
  31. data/app/helpers/umlaut/helper.rb +41 -7
  32. data/app/helpers/umlaut/url_generation.rb +10 -29
  33. data/app/mixin_logic/umlaut_http.rb +5 -2
  34. data/app/models/collection.rb +21 -6
  35. data/app/models/dispatched_service.rb +13 -0
  36. data/app/models/referent.rb +66 -88
  37. data/app/models/referent_value.rb +6 -5
  38. data/app/models/request.rb +35 -22
  39. data/app/models/service_response.rb +132 -66
  40. data/app/models/service_type_value.rb +22 -5
  41. data/app/models/service_wave.rb +30 -9
  42. data/app/models/sfx4/local/base.rb +0 -2
  43. data/app/models/sfx_url.rb +2 -2
  44. data/app/presentation/section_renderer.rb +68 -22
  45. data/app/service_adaptors/ajax_export.rb +1 -0
  46. data/app/service_adaptors/amazon.rb +7 -3
  47. data/app/service_adaptors/email_export.rb +1 -0
  48. data/app/service_adaptors/google_book_search.rb +8 -3
  49. data/app/service_adaptors/google_scholar_link.rb +6 -4
  50. data/app/service_adaptors/hathi_trust.rb +23 -18
  51. data/app/service_adaptors/hip_holding_search.rb +1 -1
  52. data/app/service_adaptors/internet_archive.rb +2 -0
  53. data/app/service_adaptors/isi.rb +2 -2
  54. data/app/service_adaptors/service.rb +31 -41
  55. data/app/service_adaptors/txt_holding_export.rb +3 -2
  56. data/app/service_adaptors/ulrichs_link.rb +5 -5
  57. data/app/service_adaptors/worldcat.rb +3 -1
  58. data/app/views/export_email/email.html.erb +10 -9
  59. data/app/views/export_email/send_txt.html.erb +4 -2
  60. data/app/views/export_email/txt.html.erb +44 -22
  61. data/app/views/feedback/new.html.erb +5 -5
  62. data/app/views/resolve/_background_progress.html.erb +23 -4
  63. data/app/views/resolve/_background_updater.html.erb +8 -8
  64. data/app/views/resolve/_citation.html.erb +11 -10
  65. data/app/views/resolve/_compact_citation.html.erb +3 -3
  66. data/app/views/resolve/_cover_image.html.erb +4 -4
  67. data/app/views/resolve/_fulltext.html.erb +1 -1
  68. data/app/views/resolve/_holding.html.erb +13 -13
  69. data/app/views/resolve/_manually_entered_warning.html.erb +9 -5
  70. data/app/views/resolve/_modal.html.erb +19 -15
  71. data/app/views/resolve/_search_inside.html.erb +20 -17
  72. data/app/views/resolve/_service_errors.html.erb +6 -6
  73. data/app/views/resolve/_standard_response_item.html.erb +7 -7
  74. data/app/views/resolve/get_permalink.html.erb +2 -2
  75. data/app/views/resolve/index.html.erb +13 -11
  76. data/app/views/search/_citation.html.erb +16 -16
  77. data/app/views/search/_pager.html.erb +6 -6
  78. data/app/views/search/books.html.erb +59 -19
  79. data/app/views/search/journal_search.html.erb +11 -11
  80. data/app/views/search/journals.html.erb +33 -33
  81. data/app/views/umlaut/_header.html.erb +7 -1
  82. data/app/views/umlaut/error.html.erb +13 -14
  83. data/bin/umlaut +141 -0
  84. data/config/locales/da.yml +122 -0
  85. data/config/locales/en.yml +227 -4
  86. data/db/orig_fixed_data/service_type_values.yml +18 -7
  87. data/lib/generators/templates/umlaut_services.yml +1 -1
  88. data/lib/generators/umlaut/install_generator.rb +0 -12
  89. data/lib/generators/umlaut/remove_turbolinks_generator.rb +14 -0
  90. data/lib/generators/umlaut_app_template.rb +37 -0
  91. data/lib/umlaut.rb +29 -0
  92. data/lib/umlaut/routes.rb +34 -38
  93. data/lib/umlaut/version.rb +6 -1
  94. data/test/dummy/app/assets/javascripts/application.js +1 -1
  95. data/test/dummy/app/controllers/umlaut_controller.rb +4 -2
  96. data/test/dummy/config/application.rb +2 -1
  97. data/test/dummy/config/environments/development.rb +1 -3
  98. data/test/dummy/config/environments/test.rb +2 -2
  99. data/test/dummy/config/travis_database.yml +0 -14
  100. data/test/dummy/config/umlaut_services.yml +9 -0
  101. data/test/dummy/config/umlaut_services.yml-JH +289 -0
  102. data/test/dummy/config/umlaut_services.yml-TEST +250 -0
  103. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_alerts.scssc +0 -0
  104. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_badges.scssc +0 -0
  105. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_breadcrumbs.scssc +0 -0
  106. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_button-groups.scssc +0 -0
  107. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_buttons.scssc +0 -0
  108. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_carousel.scssc +0 -0
  109. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_close.scssc +0 -0
  110. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_code.scssc +0 -0
  111. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_component-animations.scssc +0 -0
  112. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_dropdowns.scssc +0 -0
  113. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_forms.scssc +0 -0
  114. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_glyphicons.scssc +0 -0
  115. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_grid.scssc +0 -0
  116. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_input-groups.scssc +0 -0
  117. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_jumbotron.scssc +0 -0
  118. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_labels.scssc +0 -0
  119. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_list-group.scssc +0 -0
  120. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_media.scssc +0 -0
  121. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_mixins.scssc +0 -0
  122. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_modals.scssc +0 -0
  123. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_navbar.scssc +0 -0
  124. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_navs.scssc +0 -0
  125. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_normalize.scssc +0 -0
  126. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_pager.scssc +0 -0
  127. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_pagination.scssc +0 -0
  128. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_panels.scssc +0 -0
  129. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_popovers.scssc +0 -0
  130. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_print.scssc +0 -0
  131. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_progress-bars.scssc +0 -0
  132. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_responsive-embed.scssc +0 -0
  133. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_responsive-utilities.scssc +0 -0
  134. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_scaffolding.scssc +0 -0
  135. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_tables.scssc +0 -0
  136. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_thumbnails.scssc +0 -0
  137. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_tooltip.scssc +0 -0
  138. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_type.scssc +0 -0
  139. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_utilities.scssc +0 -0
  140. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_variables.scssc +0 -0
  141. data/test/dummy/tmp/cache/assets/development/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_wells.scssc +0 -0
  142. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_admin.scssc +0 -0
  143. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_az.scssc +0 -0
  144. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_forms.scssc +0 -0
  145. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_icons.scssc +0 -0
  146. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_layout.scssc +0 -0
  147. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_misc.scssc +0 -0
  148. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_mixins.scssc +0 -0
  149. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_modal.scssc +0 -0
  150. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_resolve.scssc +0 -0
  151. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_results.scssc +0 -0
  152. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_search.scssc +0 -0
  153. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_spinner.scssc +0 -0
  154. data/test/dummy/tmp/cache/assets/development/sass/524eaf90d4782546823a37b80882f8b66bf73010/_variables.scssc +0 -0
  155. data/test/dummy/tmp/cache/assets/development/sass/6e589d45ad6dae7b9687fd7eac1156e517932854/_bootstrap-sprockets.scssc +0 -0
  156. data/test/dummy/tmp/cache/assets/development/sass/6e589d45ad6dae7b9687fd7eac1156e517932854/bootstrap.scssc +0 -0
  157. data/test/dummy/tmp/cache/assets/development/sass/dc1017bdbb6af49581dc35eda2911a13c557c111/umlaut.css.scssc +0 -0
  158. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_alerts.scssc +0 -0
  159. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_background-variant.scssc +0 -0
  160. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_border-radius.scssc +0 -0
  161. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_buttons.scssc +0 -0
  162. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_center-block.scssc +0 -0
  163. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_clearfix.scssc +0 -0
  164. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_forms.scssc +0 -0
  165. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_gradients.scssc +0 -0
  166. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_grid-framework.scssc +0 -0
  167. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_grid.scssc +0 -0
  168. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_hide-text.scssc +0 -0
  169. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_image.scssc +0 -0
  170. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_labels.scssc +0 -0
  171. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_list-group.scssc +0 -0
  172. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_nav-divider.scssc +0 -0
  173. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_nav-vertical-align.scssc +0 -0
  174. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_opacity.scssc +0 -0
  175. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_pagination.scssc +0 -0
  176. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_panels.scssc +0 -0
  177. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_progress-bar.scssc +0 -0
  178. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_reset-filter.scssc +0 -0
  179. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_resize.scssc +0 -0
  180. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_responsive-visibility.scssc +0 -0
  181. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_size.scssc +0 -0
  182. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_tab-focus.scssc +0 -0
  183. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_table-row.scssc +0 -0
  184. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_text-emphasis.scssc +0 -0
  185. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_text-overflow.scssc +0 -0
  186. data/test/dummy/tmp/cache/assets/development/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_vendor-prefixes.scssc +0 -0
  187. data/test/dummy/tmp/cache/assets/development/sprockets/00fe8b9f2a1f7a1c312f627c379f5a50 +0 -0
  188. data/test/dummy/tmp/cache/assets/{DCB/620/sprockets%2F2332a294ceeab3ab9b5ee643989dc0eb → development/sprockets/04757b33bf029a112819cf86c6e899db} +0 -0
  189. data/test/dummy/tmp/cache/assets/development/sprockets/0bdc06801d1626641264f7c81f0bb383 +0 -0
  190. data/test/dummy/tmp/cache/assets/development/sprockets/1365f0b692ced0628311ee4566e1b707 +0 -0
  191. data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  192. data/test/dummy/tmp/cache/assets/{C99/040/sprockets%2F84d95490d4855608b8dd8602192f4f9c → development/sprockets/19f5d7a61a156ff3b78882b11cc679dc} +0 -0
  193. data/test/dummy/tmp/cache/assets/development/sprockets/1b2d587ae29ea4eaabb3bab0f022f3d3 +0 -0
  194. data/test/dummy/tmp/cache/assets/development/sprockets/1d9ea1c7ecfa0067960ac916ce4b65ca +0 -0
  195. data/test/dummy/tmp/cache/assets/development/sprockets/1e127abfd1414d0de67e3d78570c8195 +0 -0
  196. data/test/dummy/tmp/cache/assets/development/sprockets/22a2e14590ab60250be8e55802e0416b +0 -0
  197. data/test/dummy/tmp/cache/assets/{D72/1E0/sprockets%2Fdee77a9fb00d0a6229fd6b54a8f14197 → development/sprockets/29512f3dcf5161d055eb24ebcaaf8613} +0 -0
  198. data/test/dummy/tmp/cache/assets/development/sprockets/2b31649bad46580f69b4c7283d75d7da +0 -0
  199. data/test/dummy/tmp/cache/assets/development/sprockets/2b6799917cb806635bb25ceb87199288 +0 -0
  200. data/test/dummy/tmp/cache/assets/development/sprockets/2dcbebcad08aa99d46c19c8dceebc0e8 +0 -0
  201. data/test/dummy/tmp/cache/assets/{DD1/120/sprockets%2Fbee5967b8282dab9fce5c242bcc14c55 → development/sprockets/2e10962ed25d5e106895b21500eed819} +0 -0
  202. data/test/dummy/tmp/cache/assets/development/sprockets/2e7a2009e7fa93a461d747b153241335 +0 -0
  203. data/test/dummy/tmp/cache/assets/development/sprockets/2edf520c0d6a5e6fe31a96ff6249deb3 +0 -0
  204. data/test/dummy/tmp/cache/assets/{DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 → development/sprockets/2f5173deea6c795b8fdde723bb4b63af} +0 -0
  205. data/test/dummy/tmp/cache/assets/development/sprockets/33effed14152fbf68a290dc9bfdacc49 +0 -0
  206. data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  207. data/test/dummy/tmp/cache/assets/development/sprockets/362ddf5dec149d8860307be28f1b6aba +0 -0
  208. data/test/dummy/tmp/cache/assets/development/sprockets/3bb0e2c4964797a92ce18c9265d7c35d +0 -0
  209. data/test/dummy/tmp/cache/assets/development/sprockets/3de79b672a2a13cc1a0ecdb4f14087b6 +0 -0
  210. data/test/dummy/tmp/cache/assets/development/sprockets/4059619b2636e7c20d35170dfe625a63 +0 -0
  211. data/test/dummy/tmp/cache/assets/development/sprockets/43cc6f487d302bad3c176fb117bc8790 +0 -0
  212. data/test/dummy/tmp/cache/assets/development/sprockets/4c4d82da23f69029b0c8346855f2effe +0 -0
  213. data/test/dummy/tmp/cache/assets/development/sprockets/4e00e47769496546d5560ba11077191e +0 -0
  214. data/test/dummy/tmp/cache/assets/development/sprockets/4ed3382d5f8738e189d0fb787a29e487 +0 -0
  215. data/test/dummy/tmp/cache/assets/development/sprockets/50e6046f30d33ebf382887de6500721f +0 -0
  216. data/test/dummy/tmp/cache/assets/development/sprockets/5488b82c680f30f6fd6e237c86e7887a +0 -0
  217. data/test/dummy/tmp/cache/assets/{C9D/060/sprockets%2F5c8956a1666824a1d214531abd22e2a2 → development/sprockets/56381d00a030c7822e9a88c9ddae434f} +0 -0
  218. data/test/dummy/tmp/cache/assets/{D17/BC0/sprockets%2F1ae6578a93a7a3d848319dea314f592d → development/sprockets/5bdde916a6e5824d9c695657aaada893} +0 -0
  219. data/test/dummy/tmp/cache/assets/development/sprockets/5d7a36094a81c5e13f8603581fdcd0a0 +0 -0
  220. data/test/dummy/tmp/cache/assets/development/sprockets/62df0d3ba0011b6ebf283e9e4fd33a59 +0 -0
  221. data/test/dummy/tmp/cache/assets/development/sprockets/685077a71b34728322a6a3df7a818f16 +0 -0
  222. data/test/dummy/tmp/cache/assets/development/sprockets/74007643206dfef480fe67a4ee6a5af9 +0 -0
  223. data/test/dummy/tmp/cache/assets/development/sprockets/747ce3a1a163cd0edc663342abb508c8 +0 -0
  224. data/test/dummy/tmp/cache/assets/development/sprockets/7752e1fdfeb11e34353bb24822e8eddc +0 -0
  225. data/test/dummy/tmp/cache/assets/development/sprockets/7ab84c0db002136373ac7278f78e4d69 +0 -0
  226. data/test/dummy/tmp/cache/assets/{D65/820/sprockets%2Fae5318865ebb4a2b74e84c0e13fb921a → development/sprockets/80f1a2af00dac454055d31d97fa9ea16} +0 -0
  227. data/test/dummy/tmp/cache/assets/development/sprockets/827f39ace148dd5b450c5b5c4f7b7407 +0 -0
  228. data/test/dummy/tmp/cache/assets/{DEF/A60/sprockets%2F3fddcee3e5dbd24f28de1001e5f3a009 → development/sprockets/84bda1ce77f140dbe330abbb9654a389} +0 -0
  229. data/test/dummy/tmp/cache/assets/development/sprockets/91cf221e4f31c9b0e394d61e76e383a6 +0 -0
  230. data/test/dummy/tmp/cache/assets/development/sprockets/91fc9ce33c0477ac8e5c38f43ace64f3 +0 -0
  231. data/test/dummy/tmp/cache/assets/development/sprockets/984eb5d6325666ea28ac61b8f00bbf96 +0 -0
  232. data/test/dummy/tmp/cache/assets/development/sprockets/a5ca1b208ac1648c9233a4f82231cc9d +0 -0
  233. data/test/dummy/tmp/cache/assets/development/sprockets/b0644dc48561692b74e67cfa49f1fccc +0 -0
  234. data/test/dummy/tmp/cache/assets/development/sprockets/b45832a1ef97f445005b6a5ed08ad4e1 +0 -0
  235. data/test/dummy/tmp/cache/assets/development/sprockets/b57b9a3152cba1d2ce51c8890cd2c069 +0 -0
  236. data/test/dummy/tmp/cache/assets/development/sprockets/bf432dfd03a3577b6fecab95f67d3e10 +0 -0
  237. data/test/dummy/tmp/cache/assets/development/sprockets/c10ba9d7ca59eade850d472f4620e679 +0 -0
  238. data/test/dummy/tmp/cache/assets/development/sprockets/c127c56dd327b8471950e4e4eb774d58 +0 -0
  239. data/test/dummy/tmp/cache/assets/development/sprockets/c4883e8efaaa0dd40101433793d62dd0 +0 -0
  240. data/test/dummy/tmp/cache/assets/development/sprockets/ccb8dacf69b5ea6e8638d5659f87e93b +0 -0
  241. data/test/dummy/tmp/cache/assets/{E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af → development/sprockets/cffd775d018f68ce5dba1ee0d951a994} +0 -0
  242. data/test/dummy/tmp/cache/assets/development/sprockets/d06b36a24841048e094f62c017a0e23c +0 -0
  243. data/test/dummy/tmp/cache/assets/development/sprockets/d40077dd950a280248a90c9cd9bf1171 +0 -0
  244. data/test/dummy/tmp/cache/assets/development/sprockets/d49649ea0360b8433251241f77ab88c1 +0 -0
  245. data/test/dummy/tmp/cache/assets/development/sprockets/d6a0c8ca3c8a8f1bde4550db740138b8 +0 -0
  246. data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  247. data/test/dummy/tmp/cache/assets/development/sprockets/d81f215f779ce2609d4dfa76b02df41c +0 -0
  248. data/test/dummy/tmp/cache/assets/development/sprockets/de3f87130aaf9847386d1f5e5c9893f1 +0 -0
  249. data/test/dummy/tmp/cache/assets/development/sprockets/dea953187fcf46b6d47f7653acc099c6 +0 -0
  250. data/test/dummy/tmp/cache/assets/development/sprockets/e1bf78affc4ede54eac4249af8f16e82 +0 -0
  251. data/test/dummy/tmp/cache/assets/development/sprockets/eaff4713f011dd8b1946264e8f120fb6 +0 -0
  252. data/test/dummy/tmp/cache/assets/development/sprockets/ef4a528b7df4e9417e42bc5aaf40ef9b +0 -0
  253. data/test/dummy/tmp/cache/assets/development/sprockets/f6be26089ea600503193ac4a8119a33b +0 -0
  254. data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  255. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_alerts.scssc +0 -0
  256. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_badges.scssc +0 -0
  257. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_breadcrumbs.scssc +0 -0
  258. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_button-groups.scssc +0 -0
  259. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_buttons.scssc +0 -0
  260. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_carousel.scssc +0 -0
  261. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_close.scssc +0 -0
  262. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_code.scssc +0 -0
  263. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_component-animations.scssc +0 -0
  264. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_dropdowns.scssc +0 -0
  265. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_forms.scssc +0 -0
  266. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_glyphicons.scssc +0 -0
  267. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_grid.scssc +0 -0
  268. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_input-groups.scssc +0 -0
  269. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_jumbotron.scssc +0 -0
  270. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_labels.scssc +0 -0
  271. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_list-group.scssc +0 -0
  272. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_media.scssc +0 -0
  273. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_mixins.scssc +0 -0
  274. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_modals.scssc +0 -0
  275. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_navbar.scssc +0 -0
  276. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_navs.scssc +0 -0
  277. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_normalize.scssc +0 -0
  278. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_pager.scssc +0 -0
  279. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_pagination.scssc +0 -0
  280. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_panels.scssc +0 -0
  281. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_popovers.scssc +0 -0
  282. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_print.scssc +0 -0
  283. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_progress-bars.scssc +0 -0
  284. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_responsive-embed.scssc +0 -0
  285. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_responsive-utilities.scssc +0 -0
  286. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_scaffolding.scssc +0 -0
  287. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_tables.scssc +0 -0
  288. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_thumbnails.scssc +0 -0
  289. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_tooltip.scssc +0 -0
  290. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_type.scssc +0 -0
  291. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_utilities.scssc +0 -0
  292. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_variables.scssc +0 -0
  293. data/test/dummy/tmp/cache/assets/test/sass/05e2dc436ff96d50f418a3e756bafafe98e914ae/_wells.scssc +0 -0
  294. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_alerts.scssc +0 -0
  295. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_badges.scssc +0 -0
  296. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_breadcrumbs.scssc +0 -0
  297. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_button-groups.scssc +0 -0
  298. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_buttons.scssc +0 -0
  299. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_carousel.scssc +0 -0
  300. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_close.scssc +0 -0
  301. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_code.scssc +0 -0
  302. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_component-animations.scssc +0 -0
  303. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_dropdowns.scssc +0 -0
  304. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_forms.scssc +0 -0
  305. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_glyphicons.scssc +0 -0
  306. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_grid.scssc +0 -0
  307. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_input-groups.scssc +0 -0
  308. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_jumbotron.scssc +0 -0
  309. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_labels.scssc +0 -0
  310. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_list-group.scssc +0 -0
  311. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_media.scssc +0 -0
  312. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_mixins.scssc +0 -0
  313. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_modals.scssc +0 -0
  314. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_navbar.scssc +0 -0
  315. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_navs.scssc +0 -0
  316. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_normalize.scssc +0 -0
  317. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_pager.scssc +0 -0
  318. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_pagination.scssc +0 -0
  319. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_panels.scssc +0 -0
  320. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_popovers.scssc +0 -0
  321. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_print.scssc +0 -0
  322. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_progress-bars.scssc +0 -0
  323. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_responsive-embed.scssc +0 -0
  324. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_responsive-utilities.scssc +0 -0
  325. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_scaffolding.scssc +0 -0
  326. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_tables.scssc +0 -0
  327. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_thumbnails.scssc +0 -0
  328. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_tooltip.scssc +0 -0
  329. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_type.scssc +0 -0
  330. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_utilities.scssc +0 -0
  331. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_variables.scssc +0 -0
  332. data/test/dummy/tmp/cache/assets/test/sass/17fd8969872067ebc37af75de84fcc03527156bc/_wells.scssc +0 -0
  333. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_admin.scssc +0 -0
  334. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_az.scssc +0 -0
  335. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_forms.scssc +0 -0
  336. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_icons.scssc +0 -0
  337. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_layout.scssc +0 -0
  338. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_misc.scssc +0 -0
  339. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_mixins.scssc +0 -0
  340. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_modal.scssc +0 -0
  341. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_resolve.scssc +0 -0
  342. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_results.scssc +0 -0
  343. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_search.scssc +0 -0
  344. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_spinner.scssc +0 -0
  345. data/test/dummy/tmp/cache/assets/test/sass/524eaf90d4782546823a37b80882f8b66bf73010/_variables.scssc +0 -0
  346. data/test/dummy/tmp/cache/assets/test/sass/6e589d45ad6dae7b9687fd7eac1156e517932854/_bootstrap-sprockets.scssc +0 -0
  347. data/test/dummy/tmp/cache/assets/test/sass/6e589d45ad6dae7b9687fd7eac1156e517932854/bootstrap.scssc +0 -0
  348. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_alerts.scssc +0 -0
  349. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_background-variant.scssc +0 -0
  350. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_border-radius.scssc +0 -0
  351. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_buttons.scssc +0 -0
  352. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_center-block.scssc +0 -0
  353. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_clearfix.scssc +0 -0
  354. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_forms.scssc +0 -0
  355. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_gradients.scssc +0 -0
  356. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_grid-framework.scssc +0 -0
  357. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_grid.scssc +0 -0
  358. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_hide-text.scssc +0 -0
  359. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_image.scssc +0 -0
  360. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_labels.scssc +0 -0
  361. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_list-group.scssc +0 -0
  362. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_nav-divider.scssc +0 -0
  363. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_nav-vertical-align.scssc +0 -0
  364. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_opacity.scssc +0 -0
  365. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_pagination.scssc +0 -0
  366. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_panels.scssc +0 -0
  367. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_progress-bar.scssc +0 -0
  368. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_reset-filter.scssc +0 -0
  369. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_resize.scssc +0 -0
  370. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_responsive-visibility.scssc +0 -0
  371. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_size.scssc +0 -0
  372. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_tab-focus.scssc +0 -0
  373. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_table-row.scssc +0 -0
  374. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_text-emphasis.scssc +0 -0
  375. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_text-overflow.scssc +0 -0
  376. data/test/dummy/tmp/cache/assets/test/sass/881c1ba03280ae14123609245e8314b2ba917406/_vendor-prefixes.scssc +0 -0
  377. data/test/dummy/tmp/cache/assets/test/sass/d66be29359c981abd965733fad9a31a018759486/_bootstrap-sprockets.scssc +0 -0
  378. data/test/dummy/tmp/cache/assets/test/sass/d66be29359c981abd965733fad9a31a018759486/_bootstrap.scssc +0 -0
  379. data/test/dummy/tmp/cache/assets/test/sass/dc1017bdbb6af49581dc35eda2911a13c557c111/umlaut.css.scssc +0 -0
  380. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_alerts.scssc +0 -0
  381. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_background-variant.scssc +0 -0
  382. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_border-radius.scssc +0 -0
  383. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_buttons.scssc +0 -0
  384. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_center-block.scssc +0 -0
  385. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_clearfix.scssc +0 -0
  386. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_forms.scssc +0 -0
  387. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_gradients.scssc +0 -0
  388. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_grid-framework.scssc +0 -0
  389. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_grid.scssc +0 -0
  390. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_hide-text.scssc +0 -0
  391. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_image.scssc +0 -0
  392. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_labels.scssc +0 -0
  393. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_list-group.scssc +0 -0
  394. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_nav-divider.scssc +0 -0
  395. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_nav-vertical-align.scssc +0 -0
  396. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_opacity.scssc +0 -0
  397. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_pagination.scssc +0 -0
  398. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_panels.scssc +0 -0
  399. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_progress-bar.scssc +0 -0
  400. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_reset-filter.scssc +0 -0
  401. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_resize.scssc +0 -0
  402. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_responsive-visibility.scssc +0 -0
  403. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_size.scssc +0 -0
  404. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_tab-focus.scssc +0 -0
  405. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_table-row.scssc +0 -0
  406. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_text-emphasis.scssc +0 -0
  407. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_text-overflow.scssc +0 -0
  408. data/test/dummy/tmp/cache/assets/test/sass/f8ee09d7b9a6023c8ba1b1569df57c6a072dd36e/_vendor-prefixes.scssc +0 -0
  409. data/test/dummy/tmp/cache/assets/test/sprockets/00fe8b9f2a1f7a1c312f627c379f5a50 +0 -0
  410. data/test/dummy/tmp/cache/assets/test/sprockets/04757b33bf029a112819cf86c6e899db +0 -0
  411. data/test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  412. data/test/dummy/tmp/cache/assets/test/sprockets/1a72ab0727d6b1c53a2425bce68ccd29 +0 -0
  413. data/test/dummy/tmp/cache/assets/{D02/B30/sprockets%2Fb9332ebd1d306cc9120a386ca986034d → test/sprockets/1b2d587ae29ea4eaabb3bab0f022f3d3} +0 -0
  414. data/test/dummy/tmp/cache/assets/test/sprockets/1d9ea1c7ecfa0067960ac916ce4b65ca +0 -0
  415. data/test/dummy/tmp/cache/assets/{D65/0D0/sprockets%2F9fd0b369f009be410bdb0b6e5458b3a6 → test/sprockets/1e127abfd1414d0de67e3d78570c8195} +0 -0
  416. data/test/dummy/tmp/cache/assets/test/sprockets/204c5ef815c91ad1dba36952ada84453 +0 -0
  417. data/test/dummy/tmp/cache/assets/test/sprockets/29512f3dcf5161d055eb24ebcaaf8613 +0 -0
  418. data/test/dummy/tmp/cache/assets/test/sprockets/2b31649bad46580f69b4c7283d75d7da +0 -0
  419. data/test/dummy/tmp/cache/assets/test/sprockets/2b6799917cb806635bb25ceb87199288 +0 -0
  420. data/test/dummy/tmp/cache/assets/test/sprockets/2dcbebcad08aa99d46c19c8dceebc0e8 +0 -0
  421. data/test/dummy/tmp/cache/assets/test/sprockets/2e10962ed25d5e106895b21500eed819 +0 -0
  422. data/test/dummy/tmp/cache/assets/test/sprockets/2e7a2009e7fa93a461d747b153241335 +0 -0
  423. data/test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  424. data/test/dummy/tmp/cache/assets/test/sprockets/300b3cf1812a5e2ba89266b8198caf8c +0 -0
  425. data/test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  426. data/test/dummy/tmp/cache/assets/test/sprockets/3bb0e2c4964797a92ce18c9265d7c35d +0 -0
  427. data/test/dummy/tmp/cache/assets/test/sprockets/3de79b672a2a13cc1a0ecdb4f14087b6 +0 -0
  428. data/test/dummy/tmp/cache/assets/test/sprockets/4059619b2636e7c20d35170dfe625a63 +0 -0
  429. data/test/dummy/tmp/cache/assets/test/sprockets/42d8221eac1dc91b1c055df56147f009 +0 -0
  430. data/test/dummy/tmp/cache/assets/test/sprockets/43bdfbe7d60eec9cab5eda9af30fae29 +0 -0
  431. data/test/dummy/tmp/cache/assets/test/sprockets/43cc6f487d302bad3c176fb117bc8790 +0 -0
  432. data/test/dummy/tmp/cache/assets/test/sprockets/4403ea9870ef12ff2940eb16ee72aefd +0 -0
  433. data/test/dummy/tmp/cache/assets/test/sprockets/4c4d82da23f69029b0c8346855f2effe +0 -0
  434. data/test/dummy/tmp/cache/assets/test/sprockets/4e00e47769496546d5560ba11077191e +0 -0
  435. data/test/dummy/tmp/cache/assets/{DAB/C70/sprockets%2Ff8ac0db14f84bce083a7c58f965e806f → test/sprockets/4ed3382d5f8738e189d0fb787a29e487} +0 -0
  436. data/test/dummy/tmp/cache/assets/test/sprockets/50e6046f30d33ebf382887de6500721f +0 -0
  437. data/test/dummy/tmp/cache/assets/test/sprockets/5488b82c680f30f6fd6e237c86e7887a +0 -0
  438. data/test/dummy/tmp/cache/assets/test/sprockets/58901a70c4225a06a7b7402515a9b987 +0 -0
  439. data/test/dummy/tmp/cache/assets/test/sprockets/5bdde916a6e5824d9c695657aaada893 +0 -0
  440. data/test/dummy/tmp/cache/assets/test/sprockets/5d7a36094a81c5e13f8603581fdcd0a0 +0 -0
  441. data/test/dummy/tmp/cache/assets/test/sprockets/62df0d3ba0011b6ebf283e9e4fd33a59 +0 -0
  442. data/test/dummy/tmp/cache/assets/test/sprockets/641d193a017d5c7220a38ee54b714fa3 +0 -0
  443. data/test/dummy/tmp/cache/assets/test/sprockets/65c94ad4022a7bb639254a1716375313 +0 -0
  444. data/test/dummy/tmp/cache/assets/test/sprockets/661a6079c9ca1cbcf6215e9113867d30 +0 -0
  445. data/test/dummy/tmp/cache/assets/test/sprockets/685077a71b34728322a6a3df7a818f16 +0 -0
  446. data/test/dummy/tmp/cache/assets/test/sprockets/74007643206dfef480fe67a4ee6a5af9 +0 -0
  447. data/test/dummy/tmp/cache/assets/test/sprockets/747ce3a1a163cd0edc663342abb508c8 +0 -0
  448. data/test/dummy/tmp/cache/assets/{D47/690/sprockets%2Fd92186d33469ff2bd01ba096f33dfd78 → test/sprockets/7752e1fdfeb11e34353bb24822e8eddc} +0 -0
  449. data/test/dummy/tmp/cache/assets/test/sprockets/7ab84c0db002136373ac7278f78e4d69 +0 -0
  450. data/test/dummy/tmp/cache/assets/test/sprockets/80f1a2af00dac454055d31d97fa9ea16 +0 -0
  451. data/test/dummy/tmp/cache/assets/test/sprockets/84bda1ce77f140dbe330abbb9654a389 +0 -0
  452. data/test/dummy/tmp/cache/assets/test/sprockets/91cf221e4f31c9b0e394d61e76e383a6 +0 -0
  453. data/test/dummy/tmp/cache/assets/test/sprockets/91fc9ce33c0477ac8e5c38f43ace64f3 +0 -0
  454. data/test/dummy/tmp/cache/assets/test/sprockets/9424bf97ebe97817bf589d5409eb1b49 +0 -0
  455. data/test/dummy/tmp/cache/assets/test/sprockets/97197c94037eb886f290e1db6db71839 +0 -0
  456. data/test/dummy/tmp/cache/assets/test/sprockets/984eb5d6325666ea28ac61b8f00bbf96 +0 -0
  457. data/test/dummy/tmp/cache/assets/test/sprockets/9e9540a6ef6178fdc44134b8170b9104 +0 -0
  458. data/test/dummy/tmp/cache/assets/test/sprockets/a4605dfa1ec12c0c0a5fa6149836e146 +0 -0
  459. data/test/dummy/tmp/cache/assets/test/sprockets/a5ca1b208ac1648c9233a4f82231cc9d +0 -0
  460. data/test/dummy/tmp/cache/assets/test/sprockets/a8ae1c833918295d04a2921439ec6dda +0 -0
  461. data/test/dummy/tmp/cache/assets/test/sprockets/b0644dc48561692b74e67cfa49f1fccc +0 -0
  462. data/test/dummy/tmp/cache/assets/test/sprockets/b45832a1ef97f445005b6a5ed08ad4e1 +0 -0
  463. data/test/dummy/tmp/cache/assets/test/sprockets/b530e8eed86f8a06c34ebfba012ced9f +0 -0
  464. data/test/dummy/tmp/cache/assets/test/sprockets/bbff1f14224b48e4d838bcfb3ed8a610 +0 -0
  465. data/test/dummy/tmp/cache/assets/test/sprockets/c10ba9d7ca59eade850d472f4620e679 +0 -0
  466. data/test/dummy/tmp/cache/assets/test/sprockets/c127c56dd327b8471950e4e4eb774d58 +0 -0
  467. data/test/dummy/tmp/cache/assets/test/sprockets/c4883e8efaaa0dd40101433793d62dd0 +0 -0
  468. data/test/dummy/tmp/cache/assets/test/sprockets/c696c2db7d8317ca35a7243d8bd4f3b2 +0 -0
  469. data/test/dummy/tmp/cache/assets/test/sprockets/ccb8dacf69b5ea6e8638d5659f87e93b +0 -0
  470. data/test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  471. data/test/dummy/tmp/cache/assets/test/sprockets/d40077dd950a280248a90c9cd9bf1171 +0 -0
  472. data/test/dummy/tmp/cache/assets/test/sprockets/d49649ea0360b8433251241f77ab88c1 +0 -0
  473. data/test/dummy/tmp/cache/assets/test/sprockets/d6a0c8ca3c8a8f1bde4550db740138b8 +0 -0
  474. data/test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  475. data/test/dummy/tmp/cache/assets/test/sprockets/db71108aa3843a309c5247dd6481dd12 +0 -0
  476. data/test/dummy/tmp/cache/assets/test/sprockets/dd484b056ce971aa93a7b69c6ec28fb3 +0 -0
  477. data/test/dummy/tmp/cache/assets/test/sprockets/de3f87130aaf9847386d1f5e5c9893f1 +0 -0
  478. data/test/dummy/tmp/cache/assets/test/sprockets/dea953187fcf46b6d47f7653acc099c6 +0 -0
  479. data/test/dummy/tmp/cache/assets/test/sprockets/df2a44cb5db91d63eb01e3d4a1673b75 +0 -0
  480. data/test/dummy/tmp/cache/assets/test/sprockets/e1bf78affc4ede54eac4249af8f16e82 +0 -0
  481. data/test/dummy/tmp/cache/assets/test/sprockets/e776d52f6ae606355fa1070b2eb7825b +0 -0
  482. data/test/dummy/tmp/cache/assets/test/sprockets/eaff4713f011dd8b1946264e8f120fb6 +0 -0
  483. data/test/dummy/tmp/cache/assets/test/sprockets/f6be26089ea600503193ac4a8119a33b +0 -0
  484. data/test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  485. data/test/functional/feedback_controller_test.rb +1 -1
  486. data/test/functional/resolve_controller_test-NOFIXTURES.rb +227 -0
  487. data/test/functional/resolve_controller_test.rb +155 -14
  488. data/test/functional/search_controller_test.rb +1 -1
  489. data/test/helper/list_with_limit_test.rb +11 -0
  490. data/test/test_helper.rb +63 -26
  491. data/test/unit/active_record_connection_pool_test.rb +43 -25
  492. data/test/unit/aws_product_sign_test.rb +3 -3
  493. data/test/unit/collection_test.rb +39 -3
  494. data/test/unit/determine_services_test.rb +11 -11
  495. data/test/unit/dispatched_service_test.rb +16 -0
  496. data/test/unit/dissertation_catch_test.rb +1 -2
  497. data/test/unit/google_book_search_test.rb +6 -8
  498. data/test/unit/internet_archive_test.rb +6 -5
  499. data/test/unit/permalink_test.rb +4 -2
  500. data/test/unit/referent_test.rb +60 -0
  501. data/test/unit/referent_to_citation_test.rb +29 -2
  502. data/test/unit/request_test.rb +48 -0
  503. data/test/unit/service_response_test.rb +63 -4
  504. data/test/unit/service_test.rb +35 -5
  505. data/test/unit/service_type_value_test.rb +25 -0
  506. data/test/unit/sfx4_search_test.rb +1 -1
  507. data/test/unit/sfx_test.rb +4 -2
  508. data/test/unit/worldcat_test.rb +1 -3
  509. data/test/vcr_cassettes/collection/live_dispatch.yml +311 -0
  510. data/test/vcr_cassettes/sfx/nytimes_by_issn.yml +1 -1
  511. metadata +831 -145
  512. data/app/controllers/search_methods/sfx4_solr/README.md +0 -57
  513. data/app/controllers/search_methods/sfx4_solr/local.rb +0 -40
  514. data/app/controllers/search_methods/sfx4_solr/searcher.rb +0 -118
  515. data/app/models/sfx4/global/base.rb +0 -24
  516. data/app/models/sfx4/global/kb_objects.rb +0 -34
  517. data/app/views/search/opensearch_description.rxml +0 -10
  518. data/lib/service_adaptors/README.md +0 -0
  519. data/test/dummy/db/migrate/20120927163304_sfx4_global.rb +0 -26
  520. data/test/dummy/tmp/cache/assets/BFF/760/sprockets%2Fe00969069e468419c393709f042b4527 +0 -0
  521. data/test/dummy/tmp/cache/assets/CC7/D80/sprockets%2F62a4c21a1d5bac4064e25082f523f238 +0 -0
  522. data/test/dummy/tmp/cache/assets/CC8/C70/sprockets%2F397590f867a06c2d0595c75ed4269e9b +0 -0
  523. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  524. data/test/dummy/tmp/cache/assets/CE3/1F0/sprockets%2F9a3b0380fe964d77f0013845d3d355fd +0 -0
  525. data/test/dummy/tmp/cache/assets/CE7/FA0/sprockets%2F98df08987c1b5c0f643a21538a7182ec +0 -0
  526. data/test/dummy/tmp/cache/assets/CEA/930/sprockets%2F42ebf67295336dfb5725a8bb12881a98 +0 -0
  527. data/test/dummy/tmp/cache/assets/D15/FC0/sprockets%2F8cbf3a8b7acb7fc27a42168846226385 +0 -0
  528. data/test/dummy/tmp/cache/assets/D2D/240/sprockets%2F6610ec2488ff4a57d54efb798f1a9994 +0 -0
  529. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  530. data/test/dummy/tmp/cache/assets/D33/2C0/sprockets%2F790e9527eead8b020b92b34dc6a600d2 +0 -0
  531. data/test/dummy/tmp/cache/assets/D38/930/sprockets%2F45cee52fe11df0057793a6751aa65a4c +0 -0
  532. data/test/dummy/tmp/cache/assets/D39/B30/sprockets%2Fcb7b9f6963b829c678ff9267c63577ce +0 -0
  533. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  534. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  535. data/test/dummy/tmp/cache/assets/D5F/690/sprockets%2Febe18c52ead548a955a1f2be191130b3 +0 -0
  536. data/test/dummy/tmp/cache/assets/D6A/A80/sprockets%2F22d5d4e74a9a3f3deb5a92704ae750f3 +0 -0
  537. data/test/dummy/tmp/cache/assets/D6B/020/sprockets%2Ffba640f8143fc0c24e3e6616e2eb93a9 +0 -0
  538. data/test/dummy/tmp/cache/assets/D6B/8C0/sprockets%2Fa0dc07225af433e77fd6a9028a8e3c6e +0 -0
  539. data/test/dummy/tmp/cache/assets/D98/990/sprockets%2F710ede3e7f5ebab14e9772fa88c00c02 +0 -0
  540. data/test/dummy/tmp/cache/assets/DAD/BA0/sprockets%2F193f81f7e4eae26eaaa7d909c0c8e956 +0 -0
  541. data/test/dummy/tmp/cache/assets/DD6/010/sprockets%2F15a8fcbaccc97804fce2ee514e371f79 +0 -0
  542. data/test/dummy/tmp/cache/assets/E2E/350/sprockets%2Fbea81b7c4fdf19664eff44b21ea53dbe +0 -0
  543. data/test/dummy/tmp/cache/assets/EF1/680/sprockets%2Fed8ede7dea4bd22aacb9584fbe7d6cad +0 -0
  544. data/test/fixtures/sfx4/global/KB_OBJECTS.yml +0 -46
  545. data/test/integration/request_test.rb +0 -25
  546. data/test/performance/browsing_test.rb +0 -9
  547. data/test/unit/sfx4_solr_search_test.rb +0 -81
  548. data/test/vcr_cassettes/resolve/fulltext_with_edition_warning.yml +0 -44
  549. data/test/vcr_cassettes/resolve/manually_entered.yml +0 -84
  550. data/test/vcr_cassettes/resolve/no_holdings.yml +0 -649
  551. data/test/vcr_cassettes/resolve/nytimes_by_issn.yml +0 -224
  552. data/test/vcr_cassettes/sfx4_solr/find_by_group.yml +0 -125
  553. data/test/vcr_cassettes/sfx4_solr/find_by_title_begins_with.yml +0 -71
  554. data/test/vcr_cassettes/sfx4_solr/find_by_title_contains.yml +0 -72
  555. data/test/vcr_cassettes/sfx4_solr/find_by_title_exact.yml +0 -36
@@ -4,17 +4,60 @@ require 'test_helper'
4
4
  require 'uri'
5
5
  require 'rack/utils'
6
6
 
7
+ # This test is kind of a mess. Testing the resolve controller is hard, with it's threading and it's
8
+ # standard use of services that make HTTP calls.
9
+ #
10
+ # We are not testing a 'live' request, but instead mocking already returned service responses,
11
+ # and testing with DummyServices. Could be refactored further to have the DummyServices
12
+ # actually returning responses instead of loading them into the DB ourselves.
13
+ #
14
+ # Note on testing the resolve controller: Making a request to ResolveController#index will
15
+ # fire off a background thread (which fires off more bg threads) to dispatch background services.
16
+ #
17
+ # If you don't wait on these, they will be going on in the background of possible subsequent
18
+ # tests, which is messy. And more painfully, they'll wind up making http requests OUTSIDE
19
+ # of the VCR block, since the VCR block ends with the threads still going on their own.
20
+ #
21
+ # So it's important to wait on them before ending the VCR block or otherwise going on.
22
+ # Immediately after doing an HTTP interaction, you can get the bg thread by:
23
+ #
24
+ # bg_thread = @controller.bg_thread
25
+ #
26
+ # (Do this before making another HTTP interaction which will reset @controller).
27
+ # Then you can wait on it by `bg_thread.join`.
7
28
  class ResolveControllerTest < ActionController::TestCase
8
29
  extend TestWithCassette
9
- fixtures :requests, :referents, :referent_values, :dispatched_services, :service_responses
10
30
 
11
31
  setup do
12
32
  @controller = ResolveController.new
33
+
34
+ # Set it up with a fake Service Collection, so it will go quick and won't
35
+ # try to contact any external resources. We mock all our service responses
36
+ # anyhow. Right now we can only use ID's that already exist in the umlaut_services.yml
37
+ # though.
38
+ @controller.extend(Module.new do
39
+ def create_collection
40
+ services = {
41
+ "DummyService" => {
42
+ "type" => "DummyService",
43
+ "priority" => 'c'
44
+ }
45
+ }
46
+ return Collection.new(@user_request, services)
47
+ end
48
+ protected :create_collection
49
+ end)
50
+
13
51
  end
14
52
 
15
- test_with_cassette("nytimes by issn", :resolve, :match_requests_on => [:method, :uri_without_ctx_tim]) do
16
- umlaut_request = requests(:nytimes)
53
+ test("nytimes by issn") do
54
+ umlaut_request = nytimes_request!
55
+
17
56
  get :index, "umlaut.request_id" => umlaut_request.id
57
+
58
+ # Wait on all bg services
59
+ @controller.bg_thread.join
60
+
18
61
  assert_response :success
19
62
  assert_select "title", "Find It | The New York times"
20
63
  assert_select "h1", "Find It"
@@ -25,7 +68,7 @@ class ResolveControllerTest < ActionController::TestCase
25
68
  assert_equal 1, scripts.size
26
69
  # Make sure we have an HtmlUpdater in our script
27
70
  scripts.each do |script|
28
- assert_match /var updater = new Umlaut.HtmlUpdater\("http:\/\/test\.host\/", "umlaut\.request_id=#{umlaut_request.id}"\);/, script.to_s
71
+ assert_match /var updater = new Umlaut.HtmlUpdater\("http:\/\/test\.host\/", "umlaut\.request_id=#{umlaut_request.id}", "en"\);/, script.to_s
29
72
  end
30
73
  end
31
74
  # Citation section assertions
@@ -77,7 +120,7 @@ class ResolveControllerTest < ActionController::TestCase
77
120
  assert_select ".umlaut-sidebar .umlaut-section.export_citation" do |sections|
78
121
  assert_equal 1, sections.size
79
122
  sections.each do |section|
80
- assert_select section, ".section_heading h3", { :count => 1, :text => "Export tool" }
123
+ assert_select section, ".section_heading h3", { :count => 1, :text => ServiceTypeValue.find("export_citation").display_name_pluralize.titlecase }
81
124
  assert_select section, ".response_list", 1
82
125
  end
83
126
  end
@@ -108,7 +151,7 @@ class ResolveControllerTest < ActionController::TestCase
108
151
  end
109
152
  end
110
153
 
111
- test_with_cassette("POSTed OpenURL redirects to GET", :resolve, :match_requests_on => [:method, :uri_without_ctx_tim]) do
154
+ test("POSTed OpenURL redirects to GET") do
112
155
  # an actual post request Gale GREENr was sending us
113
156
  pparams = {"genre"=>"article", "sid"=>"gale:GRNR", "__char_set"=>"utf8", "spage"=>"138", "issn"=>"0016-7398", "issue"=>"2", "pid"=>"info:sid/gale:ugnid:balt85423", "date"=>"2010", "aulast"=>"Hedley, Peter J.", "au"=>"Hedley, Peter J.", "atitle"=>"Evolution of the Irrawaddy delta region since 1850.(Report)", "title"=>"The Geographical Journal", "aufirst"=>"Hedley, Peter J.", "volume"=>"176"}
114
157
  post(:index, pparams)
@@ -125,22 +168,44 @@ class ResolveControllerTest < ActionController::TestCase
125
168
  assert (redirected_params.to_a - pparams.to_a).empty?, "Redirected params include all of original POSTed params"
126
169
  end
127
170
 
128
- test_with_cassette("fulltext with edition warning", :resolve, :match_requests_on => [:method, :uri_without_ctx_tim]) do
129
- umlaut_request = requests(:momo)
171
+ test("fulltext with edition warning") do
172
+ umlaut_request = fake_umlaut_request("?aufirst=Michael&aulast=Ende&btitle=Momo&genre=book&isbn=038519093X&pub=Doubleday")
173
+ umlaut_request.service_responses.build(
174
+ service_id: "InternetArchive",
175
+ display_text: "the Internet Archive: Open Source Book",
176
+ url: "http://archive.org/details/MomoOvveroLarcanaStoria...",
177
+ service_data: {:match_reliability=>"unsure", :edition_str=>"Momo, ovvero l'arcana storia dei ladri di tempo e della bambina che restituì agli uomini il tempo trafugato"},
178
+ service_type_value_name: "fulltext"
179
+ )
180
+ umlaut_request.save!
181
+
130
182
  get(:index, {'umlaut.request_id' => umlaut_request.id})
183
+
131
184
  assert_response :success
132
185
  assert_select 'div#fulltext ul.response_list li.response_item' do |elements|
133
186
  assert_equal(1, elements.size)
134
187
  elements.each do |element|
135
188
  assert_select element, "a", {:count => 1, :href => "", :text => "the Internet Archive: Open Source Book"}
136
189
  assert_select element, 'div.edition_warning', {:count => 1,
137
- :text => "Edition information Momo, ovvero l&#x27;arcana storia dei ladri di tempo e della bambina che restituì agli uomini il tempo trafugato"}
190
+ :text => "Edition information Momo, ovvero l&#39;arcana storia dei ladri di tempo e della bambina che restituì agli uomini il tempo trafugato"}
138
191
  end
139
192
  end
193
+
194
+ # Wait on all bg services
195
+ @controller.bg_thread.join
140
196
  end
141
197
 
142
- test_with_cassette("no holdings", :resolve, :match_requests_on => [:method, :uri_without_ctx_tim]) do
143
- umlaut_request = requests(:advocate)
198
+ test("no holdings") do
199
+ umlaut_request = fake_umlaut_request("/?issn=1832-9373&jtitle=Advocate&rfr_id=info%3Asid%2Fsfxit.com%3Acitation&object_id=2670000000017711")
200
+ umlaut_request.service_responses.build(
201
+ service_id: "SFX",
202
+ display_text: "Gale Cengage Newsstand",
203
+ url: "http://find.galegroup.com/openurl/openurl?res_id=i...",
204
+ service_type_value_name: "fulltext",
205
+ service_data: {:authentication=>"", :source=>"SFX/", :coverage=>"Available from 2009.", :sfx_base_url=>"http://sfx.library.nyu.edu/sfxlcl41", :sfx_obj_index=>1, :sfx_target_index=>1, :sfx_request_id=>"3766609", :sfx_target_service_id=>"1000000000003344", :sfx_target_name=>"GALEGROUP_IT_NEWSSTAND", :citation_volume=>nil, :citation_issue=>nil, :citation_spage=>nil, :debug_info=>" Target: GALEGROUP_IT_NEWSSTAND ; SFX object ID: 2670000000017711"}
206
+ )
207
+ umlaut_request.save!
208
+
144
209
  get(:index, {'umlaut.request_id' => umlaut_request.id})
145
210
  assert_response :success
146
211
  assert_select 'div#fulltext ul.response_list li.response_item' do |elements|
@@ -152,18 +217,94 @@ class ResolveControllerTest < ActionController::TestCase
152
217
  end
153
218
  # Assert no holdings
154
219
  assert_select 'div#holding div.umlaut-holdings', :count => 0
220
+
221
+ # Wait on all bg services
222
+ @controller.bg_thread.join
155
223
  end
156
224
 
157
- test_with_cassette("manually entered", :resolve, :match_requests_on => [:method, :uri_without_ctx_tim]) do
158
- umlaut_request = requests(:manually_entered)
225
+ test("manually entered") do
226
+ umlaut_request = fake_umlaut_request("?genre=article&jtitle=Entry+Manual&rfr_id=info%3Asid%2Fsfxit.com%3Acitation")
227
+
159
228
  get(:index, {'umlaut.request_id' => umlaut_request.id})
160
229
  assert_response :success
161
- assert_select('.resource_info_sections > div.alert.alert-error',
230
+ assert_select('.resource_info_sections > div.alert.alert-danger',
162
231
  {:text => "Warning: Find It does not know about a journal with this name. Please check your entry."}) do |error_divs|
163
232
  assert_equal 1, error_divs.size, "More than one error div"
164
233
  error_divs.each do |error_div|
165
234
  assert_select error_div, 'i.umlaut_icons-famfamfam-error', 1
166
235
  end
167
236
  end
237
+
238
+ # Wait on all bg services
239
+ @controller.bg_thread.join
240
+ end
241
+
242
+ def nytimes_request!
243
+ umlaut_request = fake_umlaut_request("?title=The+New+York+times&issn=0362-4331")
244
+
245
+ umlaut_request.service_responses.build(
246
+ service_id: "SFX",
247
+ display_text: "EBSCOhost Newspaper Source Plus",
248
+ url: "http://search.ebscohost.com/login.aspx?direct=true&db=n5h&scope=site&jn=New+York+Times",
249
+ service_data: {:coverage=>"Available from 1985.", },
250
+ service_type_value_name: "fulltext"
251
+ )
252
+ umlaut_request.service_responses.build(
253
+ service_id: "DummyService",
254
+ display_text: "Library holding",
255
+ url: "http://holding.library.edu/DOCID",
256
+ notes: "Some notes.",
257
+ service_data: {:title=>"The New York times", :status=>"Check Availability", :display_type=>"journal", :request_url=>"http://request.library.edu/DOCID", :call_number=>"(Call Number)", :collection=>"Library Holding", :collection_str=>"Library Holding", :coverage_str_array=>["Coverage 1", "Coverage 2"], :match_reliability=>"unsure"},
258
+ service_type_value_name: "holding"
259
+ )
260
+ umlaut_request.service_responses.build(
261
+ service_id: "SFX",
262
+ display_text: "EBSCOhost Business Abstracts with Full Text",
263
+ url: "http://search.ebscohost.com/direct.asp?db=bft&jn=3...",
264
+ service_data: {:authentication=>"", :source=>"SFX/", :coverage=>"Available from 2011.", :sfx_base_url=>"http://sfx.library.edu/local", :sfx_obj_index=>1, :sfx_target_index=>1, :sfx_request_id=>"2576884", :sfx_target_service_id=>"3450000000000057", :sfx_target_name=>"EBSCOHOST_BUSINESS_ABSTRACTS_FULL_TEXT_WILSON", :citation_volume=>nil, :citation_issue=>nil, :citation_spage=>nil, :debug_info=>" Target: EBSCOHOST_BUSINESS_ABSTRACTS_FULL_TEXT_WILSON ; SFX object ID: 110975413976006"},
265
+ service_type_value_name: "fulltext"
266
+ )
267
+ umlaut_request.service_responses.build(
268
+ service_id: "EmailExport",
269
+ display_text: "Email",
270
+ service_data: {:link_supports_ajax_call=>true},
271
+ service_type_value_name: "export_citation"
272
+ )
273
+ umlaut_request.service_responses.build(
274
+ service_id: "SFX",
275
+ display_text: "Ask a Librarian",
276
+ url: "http://library.edu/ask",
277
+ service_data: {:display_text=>"Ask a Librarian", :url=>"http://library.edu/ask"},
278
+ service_type_value_name: "help"
279
+ )
280
+ umlaut_request.service_responses.build(
281
+ service_id: "SFX",
282
+ display_text: "EBSCOhost Business Abstracts with Full Text",
283
+ url: "https://ezproxy.library.edu/login?url=http://searc...",
284
+ service_data: {:authentication=>"", :source=>"SFX/", :coverage=>"Available from 2011.", :sfx_base_url=>"http://sfx.library.edu/local", :sfx_obj_index=>1, :sfx_target_index=>1, :sfx_request_id=>"2567643", :sfx_target_service_id=>"3450000000000057", :sfx_target_name=>"EBSCOHOST_BUSINESS_ABSTRACTS_FULL_TEXT_WILSON", :citation_volume=>nil, :citation_issue=>nil, :citation_spage=>nil, :debug_info=>" Target: EBSCOHOST_BUSINESS_ABSTRACTS_FULL_TEXT_WILSON ; SFX object ID: 110975413976006"},
285
+ service_type_value_name: "fulltext"
286
+ )
287
+ umlaut_request.service_responses.build(
288
+ service_id: "Ulrichs",
289
+ display_text: "Periodical information",
290
+ url: "https://ulrichsweb.serialssolutions.com/api/openur...",
291
+ service_type_value_name: "highlighted_link"
292
+ )
293
+ umlaut_request.service_responses.build(
294
+ service_id: "Ulrichs",
295
+ display_text: "Periodical information",
296
+ url: "https://ulrichsweb.serialssolutions.com/api/openur...",
297
+ service_type_value_name: "highlighted_link"
298
+ )
299
+ umlaut_request.service_responses.build(
300
+ service_id: "SFX",
301
+ display_text: "Proquest",
302
+ url: "http://proquest.umi.com/pqdweb?RQT=318&VName=PQD&c...",
303
+ service_data: {:display_text=>"Proquest", :url=>"http://proquest.umi.com/pqdweb?RQT=318&VName=PQD&clientid=9269&pmid=7818"},
304
+ service_type_value_name: "fulltext"
305
+ )
306
+ umlaut_request.save!
307
+
308
+ return umlaut_request
168
309
  end
169
310
  end
@@ -18,7 +18,7 @@ class SearchControllerTest < ActionController::TestCase
18
18
  return unless Sfx4::Local::AzTitle.connection_configured?
19
19
  get :journal_search, "rft.jtitle"=>"Account", "umlaut.title_search_type"=>"begins"
20
20
  assert_response :success
21
- assert_select "title", "Find It | Journal titles that begin with &#x27;Account&#x27;"
21
+ assert_select "title", "Find It | Journal titles that begin with &#39;Account&#39;"
22
22
  assert_select ".umlaut-search-form", 1
23
23
  assert_select ".umlaut-results", 1
24
24
  assert_select ".umlaut-results .umlaut-result", :minimum => 1
@@ -4,6 +4,17 @@ require 'nokogiri'
4
4
  class ListWithLimitTest < ActionView::TestCase
5
5
  include ResolveHelper
6
6
 
7
+ # Have to override url_for to supply a default controller, so
8
+ # routing won't complain for our tests -- we don't actually
9
+ # want/need to test routing here, we just need to stop routing
10
+ # from complaining. This is very hacky yes.
11
+ def url_for(*args)
12
+ if args.first.kind_of? Hash
13
+ args.first[:controller] ||= "resolve"
14
+ end
15
+ super
16
+ end
17
+
7
18
  def setup
8
19
  @user_request = Request.new(:id => 999999)
9
20
  end
@@ -1,10 +1,16 @@
1
+ ENV["RAILS_ENV"] ||= "test"
2
+
3
+ require File.expand_path('../dummy/config/environment', __FILE__)
4
+ #require 'engine_cart'
5
+ #EngineCart.load_application!
6
+
7
+ require 'rails/test_help'
8
+ require 'minitest/unit'
9
+
1
10
  require 'coveralls'
2
11
  Coveralls.wear!
3
- # Configure Rails Environment
4
- ENV["RAILS_ENV"] = "test"
5
12
 
6
- require File.expand_path("../dummy/config/environment.rb", __FILE__)
7
- require "rails/test_help"
13
+
8
14
  ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
9
15
 
10
16
  Rails.backtrace_cleaner.remove_silencers!
@@ -14,8 +20,23 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
14
20
 
15
21
  # Complete stack trace with deprecation warnings from rails
16
22
  ActiveSupport::Deprecation.debug = true
23
+ #ActiveSupport::Deprecation.silenced = true
24
+
25
+ # Fix stack traces to include Umlaut source lines
26
+ #Rails.backtrace_cleaner.remove_silencers!
27
+ #app_dirs_pattern = /^\/?(app|config|lib|test)/
28
+ #Rails.backtrace_cleaner.add_silencer do |line|
29
+ # require 'debugger'
30
+ # debugger if line =~ /umlaut/
31
+ # line =~ app_dirs_pattern
32
+ #end
33
+
34
+ require 'collection'
35
+ Collection.forward_background_exceptions = true
17
36
 
18
37
  class ActiveSupport::TestCase
38
+ ActiveRecord::Migration.check_pending!
39
+
19
40
  # Load SFX 4 fixtures only if we are explicitly creating a mock_instance
20
41
  # which should really only be the case for travis-ci.org
21
42
  def self.sfx4_fixtures(*fixture_names)
@@ -23,38 +44,41 @@ class ActiveSupport::TestCase
23
44
  # which should really only be the case for travis-ci.org
24
45
  if (sfx4_mock_instance?)
25
46
  warn "Loading SFX4 fixtures."
26
- sfx4s = ["Global", "Local"]
27
- sfx4s.each do |sfx4|
28
- # Get the db module associate with this sfx4 instance
29
- sfx4_module = Sfx4.const_get(sfx4.to_sym)
30
- # Get the connection from the :Base class for each sfx4
31
- # Set the path
32
- path = "#{File.dirname(__FILE__)}/fixtures/#{sfx4_module.to_s.underscore}"
33
- # Get class names hash of table_name => class_name
34
- class_names = {}
35
- connection = nil
36
- fixture_names.collect{|t|t.to_s}.each do |table|
37
- next unless sfx4_module.const_defined?(table.classify)
38
- #Find class from table name
39
- klass = sfx4_module.const_get table.classify
40
- connection ||= klass.connection
41
- class_names[klass.table_name.downcase.to_sym] = klass.name
42
- end
47
+ sfx4s = ["Local"]
48
+
49
+ # Get the db module associate with this sfx4 instance
50
+ # Get the connection from the :Base class for each sfx4
51
+ # Set the path
52
+ path = "#{File.dirname(__FILE__)}/fixtures/sfx4/local"
53
+
54
+ # Get class names hash of table_name => class_name
55
+ class_names = {}
56
+ connection = nil
57
+
58
+ fixture_names.collect{|t|t.to_s}.each do |table|
59
+
60
+ require "sfx4/local/#{table}" rescue nil
61
+
62
+ next unless Sfx4::Local.const_defined?(table.classify)
63
+ #Find class from table name
64
+ klass = Sfx4::Local.const_get table.classify
65
+ connection ||= klass.connection
66
+
67
+ class_names[klass.table_name.downcase.to_sym] = klass
68
+
43
69
  # Table names are just the keys of the class names
44
70
  table_names = class_names.keys.collect{|t| t.to_s.upcase}
45
71
  # Create and Instantiate Fixtures
46
- ActiveRecord::Fixtures.create_fixtures(path, table_names, class_names){connection}.first.fixtures
72
+ ActiveRecord::FixtureSet.create_fixtures(path, table_names, class_names){connection}.first.fixtures
47
73
  end
48
74
  else
49
- warn "Skipping SFX4 fixtures since the SFX DB specified is not a mock instance."
75
+ warn "\n!!!Skipping SFX4 fixtures since the SFX DB specified is not a mock instance.!!!\n"
50
76
  end
51
77
  end
52
78
 
53
79
  def self.sfx4_mock_instance?
54
80
  (Sfx4::Local::Base.connection_configured? and
55
- Sfx4::Local::Base.connection_config[:mock_instance] and
56
- Sfx4::Global::Base.connection_configured? and
57
- Sfx4::Global::Base.connection_config[:mock_instance])
81
+ Sfx4::Local::Base.connection_config[:mock_instance])
58
82
  end
59
83
  end
60
84
 
@@ -96,6 +120,19 @@ def assert_length(size, list)
96
120
  assert_equal size, list.length, "Expected size of #{size} for #{list}"
97
121
  end
98
122
 
123
+ # We want to put assert_present and assert_blank back, they were
124
+ # useful, why did minitest deprecate it?
125
+ module ActiveSupport::Testing::Assertions
126
+ def assert_present(object, message=nil)
127
+ message ||= "#{object.inspect} is blank"
128
+ assert object.present?, message
129
+ end
130
+
131
+ def assert_blank(object, message=nil)
132
+ message ||= "#{object.inspect} is not blank"
133
+ assert object.blank?, message
134
+ end
135
+ end
99
136
 
100
137
  # Methods you can use to make a mocked up Rails Request and corersponding Umlaut Request
101
138
  # Pass in a URL, absolute or partial, eg "/resolve?isbn=X"
@@ -1,35 +1,53 @@
1
- # Test that the bug in AR ConnectionPool is fixed, either becuase of a local
2
- # patch (temporarily in config/initializers/patch/connection_pool.rb)
3
- # or because of a future version of Rails.
4
- # See https://github.com/rails/rails/issues/5330
5
-
6
1
  require 'test_helper'
2
+ require 'minitest/unit'
7
3
 
8
- class ActiveRecordConnectionPoolTest < Test::Unit::TestCase
4
+ class ActiveRecordConnectionPoolTest < ActiveSupport::TestCase
9
5
 
6
+ # Test that the bug in AR ConnectionPool is fixed, either becuase of a local
7
+ # patch (temporarily in config/initializers/patch/connection_pool.rb)
8
+ # or because of a future version of Rails.
9
+ # See https://github.com/rails/rails/issues/5330
10
+ #
11
+ # This is fixed in current rails, but it's painful enough to debug that we're going
12
+ # to leave our own regression test in here
10
13
  def test_threaded_with_connection
11
- # Neccesary to have a checked out connection in thread
12
- # other than one we will test, in order to trigger bug
13
- # we are testing fix for.
14
- main_thread_conn = ActiveRecord::Base.connection_pool.checkout
15
-
16
- aThread = Thread.new do
17
- ActiveRecord::Base.connection_pool.with_connection do
18
- ActiveRecord::Base.connection # need to do something AR to trigger the checkout
19
-
20
- reserved_thread_ids = ActiveRecord::Base.connection_pool.instance_variable_get(:@reserved_connections)
14
+ # Neccesary to have a checked out connection in thread
15
+ # other than one we will test, in order to trigger bug
16
+ # we are testing fix for.
17
+ main_thread_conn = ActiveRecord::Base.connection_pool.checkout
21
18
 
22
- assert reserved_thread_ids.has_key?( Thread.current.object_id ), "thread should be in reserved connections"
23
- end
24
- reserved_thread_ids = ActiveRecord::Base.connection_pool.instance_variable_get(:@reserved_connections)
25
- assert !reserved_thread_ids.has_key?( Thread.current.object_id ), "thread should not be in reserved connections"
26
- end
27
- aThread.join
28
-
29
- ActiveRecord::Base.connection_pool.checkin main_thread_conn
19
+ aThread = Thread.new do
20
+ ActiveRecord::Base.connection_pool.with_connection do
21
+ ActiveRecord::Base.connection # need to do something AR to trigger the checkout
30
22
 
31
23
  reserved_thread_ids = ActiveRecord::Base.connection_pool.instance_variable_get(:@reserved_connections)
32
- assert !reserved_thread_ids.has_key?( aThread.object_id ), "thread should not be in reserved connections"
24
+
25
+ assert reserved_thread_ids.keys.include?( Thread.current.object_id ), "thread should be in reserved connections"
26
+ end
27
+ reserved_thread_ids = ActiveRecord::Base.connection_pool.instance_variable_get(:@reserved_connections)
28
+ assert !reserved_thread_ids.keys.include?( Thread.current.object_id ), "thread should not be in reserved connections"
29
+ end
30
+ aThread.join
31
+
32
+ ActiveRecord::Base.connection_pool.checkin main_thread_conn
33
+
34
+ reserved_thread_ids = ActiveRecord::Base.connection_pool.instance_variable_get(:@reserved_connections)
35
+ assert !reserved_thread_ids.keys.include?( aThread.object_id ), "thread should not be in reserved connections"
36
+ end
37
+
38
+ # Our own monkey-patched behavior
39
+ def test_forbid_implicit_checkout
40
+ assert_raises(ActiveRecord::ImplicitConnectionForbiddenError) do
41
+ t = Thread.new do
42
+ # Avoid warning to console for implicit checkout, we're doing it on
43
+ # purpose for testing.
44
+ Thread.current[:ar_implicit_checkout_warning_silenced] = true
45
+
46
+ ActiveRecord::Base.forbid_implicit_checkout_for_thread!
47
+ ActiveRecord::Base.connection
33
48
  end
49
+ t.join
50
+ end
51
+ end
34
52
 
35
53
  end