sufia 6.2.0 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +146 -0
  3. data/.travis.yml +4 -7
  4. data/Gemfile +2 -0
  5. data/History.md +29 -1
  6. data/README.md +25 -9
  7. data/SUFIA_VERSION +1 -1
  8. data/app/assets/stylesheets/sufia/_collections.scss +15 -0
  9. data/app/assets/stylesheets/sufia/_file-listing.scss +7 -0
  10. data/app/assets/stylesheets/sufia/_home-page.scss +10 -0
  11. data/app/builders/sufia/bootstrap_breadcrumbs_builder.rb +3 -5
  12. data/app/controllers/admin/stats_controller.rb +1 -76
  13. data/app/controllers/api/items_controller.rb +4 -6
  14. data/app/controllers/api/zotero_controller.rb +5 -5
  15. data/app/controllers/authorities_controller.rb +5 -1
  16. data/app/controllers/batch_edits_controller.rb +3 -3
  17. data/app/controllers/concerns/sufia/admin/depositor_stats.rb +41 -0
  18. data/app/controllers/concerns/sufia/admin/stats_behavior.rb +94 -0
  19. data/app/controllers/concerns/sufia/batch_controller_behavior.rb +16 -18
  20. data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +54 -56
  21. data/app/controllers/concerns/sufia/breadcrumbs.rb +3 -6
  22. data/app/controllers/concerns/sufia/collections_controller_behavior.rb +39 -39
  23. data/app/controllers/concerns/sufia/controller.rb +10 -10
  24. data/app/controllers/concerns/sufia/dashboard_controller_behavior.rb +17 -18
  25. data/app/controllers/concerns/sufia/depositors_controller_behavior.rb +9 -12
  26. data/app/controllers/concerns/sufia/files_controller/browse_everything.rb +6 -7
  27. data/app/controllers/concerns/sufia/files_controller/local_ingest_behavior.rb +39 -40
  28. data/app/controllers/concerns/sufia/files_controller/upload_complete_behavior.rb +1 -1
  29. data/app/controllers/concerns/sufia/files_controller_behavior.rb +109 -110
  30. data/app/controllers/concerns/sufia/homepage_controller.rb +8 -8
  31. data/app/controllers/concerns/sufia/my_controller_behavior.rb +13 -10
  32. data/app/controllers/concerns/sufia/single_use_links_controller_behavior.rb +11 -14
  33. data/app/controllers/concerns/sufia/single_use_links_viewer_controller_behavior.rb +27 -21
  34. data/app/controllers/concerns/sufia/transfers_controller_behavior.rb +17 -17
  35. data/app/controllers/concerns/sufia/users_controller_behavior.rb +54 -54
  36. data/app/controllers/contact_form_controller.rb +1 -1
  37. data/app/controllers/content_blocks_controller.rb +11 -12
  38. data/app/controllers/directory_controller.rb +2 -3
  39. data/app/controllers/featured_work_lists_controller.rb +1 -1
  40. data/app/controllers/featured_works_controller.rb +2 -4
  41. data/app/controllers/homepage_controller.rb +1 -2
  42. data/app/controllers/mailbox_controller.rb +12 -32
  43. data/app/controllers/my/collections_controller.rb +3 -4
  44. data/app/controllers/my/files_controller.rb +4 -6
  45. data/app/controllers/my/highlights_controller.rb +4 -6
  46. data/app/controllers/my/shares_controller.rb +3 -5
  47. data/app/controllers/pages_controller.rb +1 -3
  48. data/app/controllers/single_use_links_controller.rb +0 -1
  49. data/app/controllers/single_use_links_viewer_controller.rb +0 -1
  50. data/app/controllers/static_controller.rb +1 -0
  51. data/app/forms/sufia/forms/collection_edit_form.rb +2 -2
  52. data/app/helpers/batch_edits_helper.rb +1 -3
  53. data/app/helpers/content_block_helper.rb +7 -8
  54. data/app/helpers/generic_file_helper.rb +23 -24
  55. data/app/helpers/sufia/blacklight_override.rb +6 -7
  56. data/app/helpers/sufia/dashboard_helper_behavior.rb +4 -7
  57. data/app/helpers/sufia/permissions_helper.rb +3 -4
  58. data/app/helpers/sufia/sufia_helper_behavior.rb +30 -29
  59. data/app/helpers/trophy_helper.rb +15 -15
  60. data/app/inputs/select_with_modal_help_input.rb +3 -3
  61. data/app/inputs/with_help_icon.rb +4 -4
  62. data/app/jobs/content_delete_event_job.rb +0 -1
  63. data/app/jobs/content_depositor_change_event_job.rb +1 -2
  64. data/app/jobs/event_job.rb +0 -1
  65. data/app/jobs/user_unfollow_event_job.rb +1 -0
  66. data/app/models/concerns/sufia/solr_document_behavior.rb +1 -2
  67. data/app/models/contact_form.rb +6 -6
  68. data/app/models/content_block.rb +1 -2
  69. data/app/models/featured_work_list.rb +3 -5
  70. data/app/models/user_mailbox.rb +44 -0
  71. data/app/presenters/sufia/collection_presenter.rb +6 -8
  72. data/app/presenters/sufia/generic_file_presenter.rb +2 -2
  73. data/app/presenters/sufia/presenter_renderer.rb +2 -2
  74. data/app/presenters/sufia/version_list_presenter.rb +1 -1
  75. data/app/presenters/sufia/version_presenter.rb +3 -6
  76. data/app/search_builders/deposit_search_builder.rb +19 -0
  77. data/app/search_builders/sufia/my_search_builder_behavior.rb +1 -2
  78. data/app/search_builders/sufia/search_builder.rb +1 -3
  79. data/app/uploaders/tinymce_asset_uploader.rb +0 -2
  80. data/app/views/_controls.html.erb +5 -5
  81. data/app/views/admin/stats/_deposits.html.erb +19 -0
  82. data/app/views/admin/stats/index.html.erb +2 -0
  83. data/app/views/batch_edits/edit.html.erb +2 -2
  84. data/app/views/collections/_edit_actions.html.erb +3 -3
  85. data/app/views/collections/_form_for_select_collection.html.erb +2 -2
  86. data/app/views/collections/_sort_and_per_page.html.erb +12 -9
  87. data/app/views/collections/_view_type_group.html.erb +1 -1
  88. data/app/views/collections/edit.html.erb +5 -5
  89. data/app/views/collections/show.html.erb +7 -6
  90. data/app/views/homepage/_announcement.html.erb +5 -0
  91. data/app/views/homepage/_home.html.erb +1 -0
  92. data/app/views/my/_sort_and_per_page.html.erb +14 -10
  93. data/app/views/my/index.html.erb +1 -1
  94. data/app/views/pages/show.html.erb +0 -2
  95. data/app/views/single_use_links/new_download.html.erb +1 -1
  96. data/app/views/single_use_links_viewer/show.html.erb +1 -1
  97. data/app/views/users/_notify_link.html.erb +1 -1
  98. data/app/views/users/_notify_number.html.erb +2 -2
  99. data/config/initializers/simple_form.rb +1 -1
  100. data/config/initializers/simple_form_bootstrap.rb +1 -1
  101. data/config/locales/sufia.en.yml +4 -0
  102. data/config/routes.rb +2 -3
  103. data/lib/generators/sufia/admin_stat_generator.rb +0 -3
  104. data/lib/generators/sufia/install_generator.rb +8 -9
  105. data/lib/generators/sufia/templates/catalog_controller.rb +2 -3
  106. data/lib/generators/sufia/templates/config/action_dispatch_http_upload_monkey_patch.rb +1 -0
  107. data/lib/generators/sufia/upgrade400_generator.rb +9 -9
  108. data/lib/generators/sufia/upgrade600_generator.rb +1 -4
  109. data/lib/sufia.rb +2 -2
  110. data/lib/sufia/arkivo/actor.rb +1 -1
  111. data/lib/sufia/arkivo/create_subscription_job.rb +30 -30
  112. data/lib/sufia/arkivo/metadata_munger.rb +7 -7
  113. data/lib/sufia/arkivo/schema_validator.rb +1 -1
  114. data/lib/sufia/single_use_error.rb +0 -1
  115. data/lib/sufia/version.rb +1 -1
  116. data/lib/sufia/zotero/config.rb +13 -13
  117. data/spec/actors/generic_file/actor_spec.rb +17 -18
  118. data/spec/controllers/admin_stats_controller_spec.rb +56 -5
  119. data/spec/controllers/api/zotero_controller_spec.rb +10 -9
  120. data/spec/controllers/authorities_controller_spec.rb +8 -8
  121. data/spec/controllers/batch_controller_spec.rb +19 -20
  122. data/spec/controllers/batch_edits_controller_spec.rb +8 -9
  123. data/spec/controllers/catalog_controller_spec.rb +7 -9
  124. data/spec/controllers/collections_controller_spec.rb +30 -32
  125. data/spec/controllers/content_blocks_controller_spec.rb +4 -4
  126. data/spec/controllers/dashboard_controller_spec.rb +12 -12
  127. data/spec/controllers/depositors_controller_spec.rb +8 -8
  128. data/spec/controllers/downloads_controller_spec.rb +10 -11
  129. data/spec/controllers/featured_work_lists_controller_spec.rb +4 -4
  130. data/spec/controllers/featured_works_controller_spec.rb +11 -12
  131. data/spec/controllers/generic_files_controller_spec.rb +154 -125
  132. data/spec/controllers/homepage_controller_spec.rb +22 -15
  133. data/spec/controllers/mailbox_controller_spec.rb +20 -36
  134. data/spec/controllers/my/collections_controller_spec.rb +4 -5
  135. data/spec/controllers/my/files_controller_spec.rb +10 -11
  136. data/spec/controllers/my/highlights_controller_spec.rb +4 -5
  137. data/spec/controllers/my/shares_controller_spec.rb +12 -14
  138. data/spec/controllers/my_controller_spec.rb +1 -3
  139. data/spec/controllers/pages_controller_spec.rb +4 -4
  140. data/spec/controllers/single_use_links_controller_spec.rb +1 -3
  141. data/spec/controllers/single_use_links_viewer_controller_spec.rb +1 -2
  142. data/spec/controllers/static_controller_spec.rb +1 -1
  143. data/spec/controllers/tinymce_assets_controller_spec.rb +8 -9
  144. data/spec/controllers/transfers_controller_spec.rb +19 -19
  145. data/spec/controllers/users_controller_spec.rb +33 -35
  146. data/spec/factories/api_items.rb +2 -2
  147. data/spec/factories/content_blocks.rb +1 -1
  148. data/spec/factories/featured_works.rb +1 -1
  149. data/spec/factories/generic_files.rb +3 -3
  150. data/spec/factories/users.rb +7 -8
  151. data/spec/features/browse_dashboard_files_spec.rb +14 -18
  152. data/spec/features/browse_files_spec.rb +3 -4
  153. data/spec/features/catalog_search_spec.rb +3 -5
  154. data/spec/features/cloud_upload_spec.rb +2 -2
  155. data/spec/features/collection_spec.rb +21 -21
  156. data/spec/features/contact_form_spec.rb +10 -11
  157. data/spec/features/display_dashboard_spec.rb +5 -9
  158. data/spec/features/edit_file_spec.rb +8 -9
  159. data/spec/features/featured_item_spec.rb +1 -1
  160. data/spec/features/ingest_upload_files_spec.rb +5 -5
  161. data/spec/features/notifications_spec.rb +2 -6
  162. data/spec/features/ownership_transfer_spec.rb +2 -2
  163. data/spec/features/proxy_spec.rb +2 -2
  164. data/spec/features/search_spec.rb +3 -4
  165. data/spec/features/single_use_links_spec.rb +1 -1
  166. data/spec/features/users_spec.rb +4 -5
  167. data/spec/forms/collection_edit_form_spec.rb +2 -2
  168. data/spec/forms/generic_file_edit_form_spec.rb +6 -7
  169. data/spec/helpers/batch_edits_helper_spec.rb +9 -13
  170. data/spec/helpers/content_block_helper_spec.rb +3 -3
  171. data/spec/helpers/dashboard_helper_spec.rb +19 -24
  172. data/spec/helpers/generic_file_helper_spec.rb +5 -7
  173. data/spec/helpers/sufia_helper_spec.rb +43 -54
  174. data/spec/helpers/trophy_helper_spec.rb +5 -5
  175. data/spec/inputs/multi_value_with_help_input_spec.rb +1 -2
  176. data/spec/inputs/select_with_help_input_spec.rb +19 -15
  177. data/spec/javascripts/jasmine_spec.rb +4 -5
  178. data/spec/javascripts/support/jasmine_helper.rb +9 -9
  179. data/spec/jobs/active_fedora_id_based_job_spec.rb +7 -5
  180. data/spec/jobs/audit_job_spec.rb +7 -7
  181. data/spec/jobs/batch_update_job_spec.rb +5 -6
  182. data/spec/jobs/characterize_job_spec.rb +1 -1
  183. data/spec/jobs/content_depositor_change_event_job_spec.rb +1 -1
  184. data/spec/jobs/create_derivatives_job_spec.rb +5 -5
  185. data/spec/jobs/event_jobs_spec.rb +16 -16
  186. data/spec/jobs/import_url_job_spec.rb +36 -5
  187. data/spec/jobs/ingest_local_file_job_spec.rb +31 -20
  188. data/spec/jobs/sufia_resque_queue_spec.rb +1 -1
  189. data/spec/lib/sufia/analytics_spec.rb +0 -1
  190. data/spec/lib/sufia/arkivo/actor_spec.rb +6 -6
  191. data/spec/lib/sufia/arkivo/schema_validator_spec.rb +18 -18
  192. data/spec/lib/sufia/breadcrumbs_spec.rb +5 -6
  193. data/spec/lib/sufia/messages_spec.rb +11 -12
  194. data/spec/lib/sufia/readable_permissions_spec.rb +8 -10
  195. data/spec/lib/sufia/upload_complete_behavior_spec.rb +6 -7
  196. data/spec/lib/sufia/user_stat_importer_spec.rb +30 -33
  197. data/spec/lib/sufia/writable_permissions_spec.rb +1 -3
  198. data/spec/lib/sufia/zotero/config_spec.rb +4 -6
  199. data/spec/models/ability_spec.rb +11 -9
  200. data/spec/models/batch_spec.rb +13 -13
  201. data/spec/models/characterization_spec.rb +2 -3
  202. data/spec/models/checksum_audit_log_spec.rb +18 -19
  203. data/spec/models/collection_spec.rb +11 -12
  204. data/spec/models/content_block_spec.rb +33 -22
  205. data/spec/models/download_spec.rb +3 -5
  206. data/spec/models/featured_work_list_spec.rb +3 -3
  207. data/spec/models/featured_work_spec.rb +12 -14
  208. data/spec/models/file_content_datastream_spec.rb +9 -7
  209. data/spec/models/file_download_stat_spec.rb +34 -40
  210. data/spec/models/file_usage_spec.rb +46 -52
  211. data/spec/models/file_view_stat_spec.rb +35 -41
  212. data/spec/models/fits_datastream_spec.rb +23 -25
  213. data/spec/models/generic_file/visibility_spec.rb +10 -5
  214. data/spec/models/generic_file_spec.rb +86 -88
  215. data/spec/models/geo_names_resource_spec.rb +3 -5
  216. data/spec/models/local_authority_spec.rb +30 -33
  217. data/spec/models/pageview_spec.rb +3 -3
  218. data/spec/models/proxy_deposit_request_spec.rb +3 -3
  219. data/spec/models/single_use_link_spec.rb +36 -36
  220. data/spec/models/solr_document_spec.rb +3 -6
  221. data/spec/models/trophy_spec.rb +8 -9
  222. data/spec/models/user_mailbox_spec.rb +62 -0
  223. data/spec/models/user_spec.rb +28 -29
  224. data/spec/presenters/presenter_renderer_spec.rb +1 -1
  225. data/spec/presenters/sufia/generic_file_presenter_spec.rb +5 -5
  226. data/spec/presenters/sufia/version_list_presenter_spec.rb +2 -2
  227. data/spec/presenters/sufia/version_presenter_spec.rb +1 -1
  228. data/spec/routing/featured_works_route_spec.rb +4 -4
  229. data/spec/routing/ownership_transfers_route_spec.rb +1 -1
  230. data/spec/routing/route_spec.rb +89 -89
  231. data/spec/services/generic_file_audit_service_spec.rb +8 -8
  232. data/spec/services/repository_audit_service_spec.rb +7 -3
  233. data/spec/spec_helper.rb +5 -4
  234. data/spec/support/features/session_helpers.rb +1 -1
  235. data/spec/support/input_support.rb +1 -2
  236. data/spec/support/rake.rb +1 -1
  237. data/spec/support/selectors.rb +1 -6
  238. data/spec/support/statistic_helper.rb +1 -1
  239. data/spec/support/uploaded_file_monkeypatch.rb +1 -1
  240. data/spec/tasks/rake_spec.rb +3 -5
  241. data/spec/views/admin/stats/index.html.erb_spec.rb +16 -16
  242. data/spec/views/batch/edit.html.erb_spec.rb +1 -3
  243. data/spec/views/batch_edits/check_all_spec.rb +5 -5
  244. data/spec/views/batch_edits/edit.html.erb_spec.rb +1 -3
  245. data/spec/views/catalog/index.html.erb_spec.rb +1 -3
  246. data/spec/views/catalog/sort_and_per_page.html.erb_spec.rb +4 -5
  247. data/spec/views/collections/_form.html.erb_spec.rb +5 -3
  248. data/spec/views/collections/_show_descriptions.html.erb_spec.rb +7 -8
  249. data/spec/views/collections/_show_document_list.erb_spec.rb +4 -6
  250. data/spec/views/dashboard/index_spec.rb +14 -21
  251. data/spec/views/generic_file/_browse_everything.html.erb_spec.rb +2 -2
  252. data/spec/views/generic_file/_permission_form.html.erb_spec.rb +8 -9
  253. data/spec/views/generic_file/edit.html.erb_spec.rb +7 -7
  254. data/spec/views/generic_file/show.html.erb_spec.rb +24 -25
  255. data/spec/views/generic_file/stats.html.erb_spec.rb +19 -19
  256. data/spec/views/homepage/_announcement.html.erb_spec.rb +51 -0
  257. data/spec/views/homepage/_featured_works.html.erb_spec.rb +5 -9
  258. data/spec/views/homepage/_home_header.html.erb_spec.rb +2 -2
  259. data/spec/views/my/facet.html.erb_spec.rb +4 -4
  260. data/spec/views/single_use_links/new_download.html.erb_spec.rb +28 -0
  261. data/spec/views/single_use_links_viewer/show.html.erb_spec.rb +29 -0
  262. data/spec/views/users/_follower_modal.html.erb_spec.rb +7 -8
  263. data/spec/views/users/_following_modal.html.erb_spec.rb +4 -5
  264. data/spec/views/users/_notify_number.html.erb_spec.rb +2 -5
  265. data/spec/views/users/_user_util_links.html.erb_spec.rb +5 -8
  266. data/spec/views/users/index.html.erb_spec.rb +4 -6
  267. data/spec/views/users/show.html.erb_spec.rb +4 -7
  268. data/tasks/sufia-dev.rake +19 -3
  269. metadata +20 -5
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- RSpec.describe FileViewStat, :type => :model do
4
- let(:file_id) {"99"}
5
- let(:user_id) {123}
6
- let(:date) {DateTime.new}
7
- let(:file_stat) {FileViewStat.create(views:"25", date: date, file_id: file_id, user_id: user_id)}
3
+ RSpec.describe FileViewStat, type: :model do
4
+ let(:file_id) { "99" }
5
+ let(:user_id) { 123 }
6
+ let(:date) { DateTime.new }
7
+ let(:file_stat) { described_class.create(views: "25", date: date, file_id: file_id, user_id: user_id) }
8
8
 
9
9
  it "has attributes" do
10
10
  expect(file_stat).to respond_to(:views)
@@ -17,72 +17,66 @@ RSpec.describe FileViewStat, :type => :model do
17
17
  end
18
18
 
19
19
  describe "#get_float_statistics" do
20
-
21
- let(:dates) {
20
+ let(:dates) do
22
21
  ldates = []
23
- 4.downto(0) {|idx| ldates << (Date.today-idx.day) }
22
+ 4.downto(0) { |idx| ldates << (Date.today - idx.day) }
24
23
  ldates
25
- }
26
- let(:date_strs) {
27
- dates.map {|date| date.strftime("%Y%m%d") }
28
- }
24
+ end
25
+ let(:date_strs) do
26
+ dates.map { |date| date.strftime("%Y%m%d") }
27
+ end
29
28
 
30
- let(:view_output) {
29
+ let(:view_output) do
31
30
  [[statistic_date(dates[0]), 4], [statistic_date(dates[1]), 8], [statistic_date(dates[2]), 6], [statistic_date(dates[3]), 10]]
32
- }
31
+ end
33
32
 
34
33
  # This is what the data looks like that's returned from Google Analytics (GA) via the Legato gem
35
34
  # Due to the nature of querying GA, testing this data in an automated fashion is problematc.
36
35
  # Sample data structures were created by sending real events to GA from a test instance of
37
36
  # Scholarsphere. The data below are essentially a "cut and paste" from the output of query
38
37
  # results from the Legato gem.
39
- let(:sample_pageview_statistics) {
38
+ let(:sample_pageview_statistics) do
40
39
  [
41
- OpenStruct.new(date: date_strs[0], pageviews: 4),
42
- OpenStruct.new(date: date_strs[1], pageviews: 8),
43
- OpenStruct.new(date: date_strs[2], pageviews: 6),
44
- OpenStruct.new(date: date_strs[3], pageviews: 10),
45
- #OpenStruct.new(date: date_strs[4], pageviews: 2)
40
+ OpenStruct.new(date: date_strs[0], pageviews: 4),
41
+ OpenStruct.new(date: date_strs[1], pageviews: 8),
42
+ OpenStruct.new(date: date_strs[2], pageviews: 6),
43
+ OpenStruct.new(date: date_strs[3], pageviews: 10),
44
+ # OpenStruct.new(date: date_strs[4], pageviews: 2)
46
45
  ]
47
- }
46
+ end
48
47
  describe "cache empty" do
49
- let(:stats) {
50
- expect(FileViewStat).to receive(:ga_statistics).and_return(sample_pageview_statistics)
51
- FileViewStat.statistics(file_id, Date.today-4.day, user_id)
52
- }
48
+ let(:stats) do
49
+ expect(described_class).to receive(:ga_statistics).and_return(sample_pageview_statistics)
50
+ described_class.statistics(file_id, Date.today - 4.day, user_id)
51
+ end
53
52
 
54
53
  it "includes cached ga data" do
55
- expect(FileViewStat.to_flots stats).to include(*view_output)
54
+ expect(described_class.to_flots stats).to include(*view_output)
56
55
  end
57
56
 
58
57
  it "caches data" do
59
- expect(FileViewStat.to_flots stats).to include(*view_output)
58
+ expect(described_class.to_flots stats).to include(*view_output)
60
59
  expect(stats.first.user_id).to eq user_id
61
60
 
62
61
  # at this point all data should be cached
63
- allow(FileViewStat).to receive(:ga_statistics).with(Date.today, file_id).and_raise("We should not call Google Analytics All data should be cached!")
62
+ allow(described_class).to receive(:ga_statistics).with(Date.today, file_id).and_raise("We should not call Google Analytics All data should be cached!")
64
63
 
65
- stats2 = FileViewStat.statistics(file_id,Date.today-5.day)
66
- expect(FileViewStat.to_flots stats2).to include(*view_output)
64
+ stats2 = described_class.statistics(file_id, Date.today - 5.day)
65
+ expect(described_class.to_flots stats2).to include(*view_output)
67
66
  end
68
-
69
67
  end
70
68
 
71
69
  describe "cache loaded" do
70
+ let!(:file_view_stat) { described_class.create(date: (Date.today - 5.day).to_datetime, file_id: file_id, views: "25") }
72
71
 
73
- let!(:file_view_stat) { FileViewStat.create(date: (Date.today-5.day).to_datetime, file_id: file_id, views:"25")}
74
-
75
- let(:stats) {
76
- expect(FileViewStat).to receive(:ga_statistics).and_return(sample_pageview_statistics)
77
- FileViewStat.statistics(file_id,Date.today-5.day)
78
- }
72
+ let(:stats) do
73
+ expect(described_class).to receive(:ga_statistics).and_return(sample_pageview_statistics)
74
+ described_class.statistics(file_id, Date.today - 5.day)
75
+ end
79
76
 
80
77
  it "includes cached data" do
81
- expect(FileViewStat.to_flots stats).to include([file_view_stat.date.to_i*1000,file_view_stat.views],*view_output)
78
+ expect(described_class.to_flots stats).to include([file_view_stat.date.to_i * 1000, file_view_stat.views], *view_output)
82
79
  end
83
-
84
80
  end
85
-
86
81
  end
87
82
  end
88
-
@@ -7,36 +7,36 @@ describe FitsDatastream, type: :model, unless: $in_travis do
7
7
  @file.add_file(File.open(fixture_path + '/world.png'), path: 'content', original_name: 'world.png')
8
8
  @file.characterize
9
9
  end
10
- it "should have a format label" do
10
+ it "has a format label" do
11
11
  expect(@file.format_label).to eq ["Portable Network Graphics"]
12
12
  end
13
- it "should have a mime type" do
13
+ it "has a mime type" do
14
14
  expect(@file.mime_type).to eq "image/png"
15
15
  end
16
- it "should have a file size" do
16
+ it "has a file size" do
17
17
  expect(@file.file_size).to eq ["4218"]
18
18
  end
19
- it "should have a last modified timestamp" do
19
+ it "has a last modified timestamp" do
20
20
  expect(@file.last_modified).to_not be_empty
21
21
  end
22
- it "should have a filename" do
22
+ it "has a filename" do
23
23
  expect(@file.filename).to_not be_empty
24
24
  end
25
- it "should have a checksum" do
25
+ it "has a checksum" do
26
26
  expect(@file.original_checksum).to eq ["28da6259ae5707c68708192a40b3e85c"]
27
27
  end
28
- it "should have a height" do
28
+ it "has a height" do
29
29
  expect(@file.height).to eq ["50"]
30
30
  end
31
- it "should have a width" do
31
+ it "has a width" do
32
32
  expect(@file.width).to eq ["50"]
33
33
  end
34
34
 
35
35
  let(:datastream) { @file.characterization }
36
36
  let(:xml) { datastream.ng_xml }
37
- let(:namespace) { {'ns'=>'http://hul.harvard.edu/ois/xml/ns/fits/fits_output'} }
37
+ let(:namespace) { { 'ns' => 'http://hul.harvard.edu/ois/xml/ns/fits/fits_output' } }
38
38
 
39
- it "should make the fits XML" do
39
+ it "makes the fits XML" do
40
40
  expect(xml.xpath('//ns:imageWidth/text()', namespace).inner_text).to eq '50'
41
41
  end
42
42
  end
@@ -47,37 +47,37 @@ describe FitsDatastream, type: :model, unless: $in_travis do
47
47
  @file.add_file(File.open(fixture_path + '/sample_mpeg4.mp4'), path: 'content', original_name: 'sample_mpeg4.mp4')
48
48
  @file.characterize
49
49
  end
50
- it "should have a format label" do
50
+ it "has a format label" do
51
51
  expect(@file.format_label).to eq ["ISO Media, MPEG v4 system, version 2"]
52
52
  end
53
- it "should have a mime type" do
53
+ it "has a mime type" do
54
54
  expect(@file.mime_type).to eq "video/mp4"
55
55
  end
56
- it "should have a file size" do
56
+ it "has a file size" do
57
57
  expect(@file.file_size).to eq ["245779"]
58
58
  end
59
- it "should have a last modified timestamp" do
59
+ it "has a last modified timestamp" do
60
60
  expect(@file.last_modified).to_not be_empty
61
61
  end
62
- it "should have a filename" do
62
+ it "has a filename" do
63
63
  expect(@file.filename).to_not be_empty
64
64
  end
65
- it "should have a checksum" do
65
+ it "has a checksum" do
66
66
  expect(@file.original_checksum).to eq ["dc77a8de8c091c19d86df74280f6feb7"]
67
67
  end
68
- it "should have a width" do
68
+ it "has a width" do
69
69
  expect(@file.width).to eq ["190"]
70
70
  end
71
- it "should have a height" do
71
+ it "has a height" do
72
72
  expect(@file.height).to eq ["240"]
73
73
  end
74
- it "should have a sample_rate" do
74
+ it "has a sample_rate" do
75
75
  expect(@file.sample_rate).to eq ["32000"]
76
76
  end
77
- it "should have a duration" do
77
+ it "has a duration" do
78
78
  expect(@file.duration).to eq ["4.97 s"]
79
79
  end
80
- it "should have a frame_rate" do
80
+ it "has a frame_rate" do
81
81
  expect(@file.frame_rate.count).to eq 1
82
82
  expect(@file.frame_rate[0].to_f).to eq 30.0
83
83
  end
@@ -93,7 +93,7 @@ describe FitsDatastream, type: :model, unless: $in_travis do
93
93
  @myfile.reload
94
94
  end
95
95
 
96
- it "should return expected results after a save" do
96
+ it "returns expected results after a save" do
97
97
  expect(@myfile.file_size).to eq ['218882']
98
98
  expect(@myfile.original_checksum).to eq ['5a2d761cab7c15b2b3bb3465ce64586d']
99
99
 
@@ -124,10 +124,8 @@ describe FitsDatastream, type: :model, unless: $in_travis do
124
124
  @myfile.reload
125
125
  end
126
126
 
127
- it "should return expected content for full text" do
127
+ it "returns expected content for full text" do
128
128
  expect(@myfile.full_text.content).to eq("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nLavf56.15.102")
129
129
  end
130
130
  end
131
-
132
-
133
131
  end
@@ -1,19 +1,24 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Sufia::GenericFile, :type => :model do
3
+ describe Sufia::GenericFile, type: :model do
4
4
  module VisibilityOverride
5
5
  extend ActiveSupport::Concern
6
6
  include Sufia::GenericFile::Permissions
7
- def visibility; super; end
8
- def visibility=(value); super(value); end
7
+ def visibility
8
+ super
9
+ end
10
+
11
+ def visibility=(value)
12
+ super(value)
13
+ end
9
14
  end
10
15
  class MockParent < ActiveFedora::Base
11
16
  include VisibilityOverride
12
17
  end
13
18
 
14
19
  it 'allows for overrides of visibility' do
15
- expect{
20
+ expect do
16
21
  MockParent.new(visibility: Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE)
17
- }.to_not raise_error
22
+ end.to_not raise_error
18
23
  end
19
24
  end
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe GenericFile, :type => :model do
3
+ describe GenericFile, type: :model do
4
4
  let(:user) { FactoryGirl.find_or_create(:jill) }
5
5
 
6
6
  before(:each) do
7
- @file = GenericFile.new
7
+ @file = described_class.new
8
8
  @file.apply_depositor_metadata(user.user_key)
9
9
  end
10
10
 
@@ -15,7 +15,7 @@ describe GenericFile, :type => :model do
15
15
 
16
16
  context "when it is initialized" do
17
17
  it "has empty arrays for all the properties" do
18
- subject.attributes.each do |k,v|
18
+ subject.attributes.each do |_k, v|
19
19
  expect(Array(v)).to eq([])
20
20
  end
21
21
  end
@@ -39,7 +39,7 @@ describe GenericFile, :type => :model do
39
39
  before do
40
40
  @file.proxy_depositor = "sally@example.com"
41
41
  end
42
- it "should include proxies" do
42
+ it "includes proxies" do
43
43
  expect(@file).to respond_to(:relative_path)
44
44
  expect(@file).to respond_to(:depositor)
45
45
  expect(@file.proxy_depositor).to eq 'sally@example.com'
@@ -162,55 +162,54 @@ describe GenericFile, :type => :model do
162
162
  end
163
163
 
164
164
  describe "visibility" do
165
- it "should not be changed when it's new" do
165
+ it "is not changed when it's new" do
166
166
  expect(subject).not_to be_visibility_changed
167
167
  end
168
- it "should be changed when it has been changed" do
169
- subject.visibility= 'open'
168
+ it "is changed when it has been changed" do
169
+ subject.visibility = 'open'
170
170
  expect(subject).to be_visibility_changed
171
171
  end
172
172
 
173
- it "should not be changed when it's set to its previous value" do
174
- subject.visibility= 'restricted'
173
+ it "is not changed when it's set to its previous value" do
174
+ subject.visibility = 'restricted'
175
175
  expect(subject).not_to be_visibility_changed
176
176
  end
177
-
178
177
  end
179
178
 
180
179
  describe "#apply_depositor_metadata" do
181
180
  before { subject.apply_depositor_metadata('jcoyne') }
182
181
 
183
- it "should grant edit access and record the depositor" do
182
+ it "grants edit access and record the depositor" do
184
183
  expect(subject.edit_users).to eq ['jcoyne']
185
184
  expect(subject.depositor).to eq 'jcoyne'
186
185
  end
187
186
  end
188
187
 
189
188
  describe "attributes" do
190
- it "should have a set of permissions" do
191
- subject.read_groups=['group1', 'group2']
192
- subject.edit_users=['user1']
193
- subject.read_users=['user2', 'user3']
189
+ it "has a set of permissions" do
190
+ subject.read_groups = ['group1', 'group2']
191
+ subject.edit_users = ['user1']
192
+ subject.read_users = ['user2', 'user3']
194
193
  expect(subject.permissions.map(&:to_hash)).to match_array [
195
- {type: "group", access: "read", name: "group1"},
196
- {type: "group", access: "read", name: "group2"},
197
- {type: "person", access: "read", name: "user2"},
198
- {type: "person", access: "read", name: "user3"},
199
- {type: "person", access: "edit", name: "user1"}]
194
+ { type: "group", access: "read", name: "group1" },
195
+ { type: "group", access: "read", name: "group2" },
196
+ { type: "person", access: "read", name: "user2" },
197
+ { type: "person", access: "read", name: "user3" },
198
+ { type: "person", access: "edit", name: "user1" }]
200
199
  end
201
200
 
202
- it "should have a characterization datastream" do
201
+ it "has a characterization datastream" do
203
202
  expect(subject.characterization).to be_kind_of FitsDatastream
204
203
  end
205
204
 
206
- it "should have content datastream" do
205
+ it "has content datastream" do
207
206
  subject.add_file(File.open(fixture_path + '/world.png'), path: 'content', original_name: 'world.png')
208
207
  expect(subject.content).to be_kind_of FileContentDatastream
209
208
  end
210
209
  end
211
210
 
212
211
  describe "metadata" do
213
- it "should have descriptive metadata" do
212
+ it "has descriptive metadata" do
214
213
  expect(subject).to respond_to(:relative_path)
215
214
  expect(subject).to respond_to(:depositor)
216
215
  expect(subject).to respond_to(:related_url)
@@ -230,7 +229,7 @@ describe GenericFile, :type => :model do
230
229
  expect(subject).to respond_to(:resource_type)
231
230
  expect(subject).to respond_to(:identifier)
232
231
  end
233
- it "should delegate methods to characterization metadata" do
232
+ it "delegates methods to characterization metadata" do
234
233
  expect(subject).to respond_to(:format_label)
235
234
  expect(subject).to respond_to(:mime_type)
236
235
  expect(subject).to respond_to(:file_size)
@@ -242,14 +241,14 @@ describe GenericFile, :type => :model do
242
241
  expect(subject).to respond_to(:file_author)
243
242
  expect(subject).to respond_to(:page_count)
244
243
  end
245
- it "should redefine to_param to make redis keys more recognizable" do
244
+ it "redefines to_param to make redis keys more recognizable" do
246
245
  expect(subject.to_param).to eq subject.id
247
246
  end
248
247
 
249
248
  describe "that have been saved" do
250
249
  before { subject.apply_depositor_metadata('jcoyne') }
251
250
 
252
- it "should have activity stream-related methods defined" do
251
+ it "has activity stream-related methods defined" do
253
252
  subject.save!
254
253
  f = subject.reload
255
254
  expect(f).to respond_to(:stream)
@@ -258,7 +257,7 @@ describe GenericFile, :type => :model do
258
257
  expect(f).to respond_to(:log_event)
259
258
  end
260
259
 
261
- it "should be able to set values via delegated methods" do
260
+ it "is able to set values via delegated methods" do
262
261
  subject.related_url = ["http://example.org/"]
263
262
  subject.creator = ["John Doe"]
264
263
  subject.title = ["New work"]
@@ -269,7 +268,7 @@ describe GenericFile, :type => :model do
269
268
  expect(f.title).to eq ["New work"]
270
269
  end
271
270
 
272
- it "should be able to be added to w/o unexpected graph behavior" do
271
+ it "is able to be added to w/o unexpected graph behavior" do
273
272
  subject.creator = ["John Doe"]
274
273
  subject.title = ["New work"]
275
274
  subject.save!
@@ -338,27 +337,27 @@ describe GenericFile, :type => :model do
338
337
  expect(local['all_text_timv']).to eq('abcxyz')
339
338
  end
340
339
  end
341
- it "should support multi-valued fields in solr" do
340
+ it "supports multi-valued fields in solr" do
342
341
  subject.tag = ["tag1", "tag2"]
343
342
  expect { subject.save }.not_to raise_error
344
343
  subject.delete
345
344
  end
346
- it "should support setting and getting the relative_path value" do
345
+ it "supports setting and getting the relative_path value" do
347
346
  subject.relative_path = "documents/research/NSF/2010"
348
347
  expect(subject.relative_path).to eq "documents/research/NSF/2010"
349
348
  end
350
349
  describe "create_thumbnail" do
351
350
  before do
352
- @f = GenericFile.new
351
+ @f = described_class.new
353
352
  @f.apply_depositor_metadata('mjg36')
354
353
  end
355
354
  describe "with a video", if: Sufia.config.enable_ffmpeg do
356
355
  before do
357
- allow(@f).to receive(mime_type: 'video/quicktime') #Would get set by the characterization job
356
+ allow(@f).to receive(mime_type: 'video/quicktime') # Would get set by the characterization job
358
357
  @f.add_file(File.open("#{fixture_path}/countdown.avi", 'rb'), path: 'content', original_name: 'countdown.avi')
359
358
  @f.save
360
359
  end
361
- it "should make a png thumbnail" do
360
+ it "makes a png thumbnail" do
362
361
  @f.create_thumbnail
363
362
  expect(@f.thumbnail.content.size).to eq 4768 # this is a bad test. I just want to show that it did something.
364
363
  expect(@f.thumbnail.mime_type).to eq 'image/png'
@@ -368,16 +367,16 @@ describe GenericFile, :type => :model do
368
367
  describe "trophies" do
369
368
  before do
370
369
  u = FactoryGirl.find_or_create(:jill)
371
- @f = GenericFile.new.tap do |gf|
370
+ @f = described_class.new.tap do |gf|
372
371
  gf.apply_depositor_metadata(u)
373
372
  gf.save!
374
373
  end
375
374
  @t = Trophy.create(user_id: u.id, generic_file_id: @f.id)
376
375
  end
377
- it "should have a trophy" do
376
+ it "has a trophy" do
378
377
  expect(Trophy.where(generic_file_id: @f.id).count).to eq 1
379
378
  end
380
- it "should remove all trophies when file is deleted" do
379
+ it "removes all trophies when file is deleted" do
381
380
  @f.destroy
382
381
  expect(Trophy.where(generic_file_id: @f.id).count).to eq 0
383
382
  end
@@ -385,21 +384,21 @@ describe GenericFile, :type => :model do
385
384
 
386
385
  describe "#related_files" do
387
386
  let!(:f1) do
388
- GenericFile.new.tap do |f|
387
+ described_class.new.tap do |f|
389
388
  f.apply_depositor_metadata('mjg36')
390
389
  f.batch_id = batch_id
391
390
  f.save
392
391
  end
393
392
  end
394
393
  let!(:f2) do
395
- GenericFile.new.tap do |f|
394
+ described_class.new.tap do |f|
396
395
  f.apply_depositor_metadata('mjg36')
397
396
  f.batch_id = batch_id
398
397
  f.save
399
398
  end
400
399
  end
401
400
  let!(:f3) do
402
- GenericFile.new.tap do |f|
401
+ described_class.new.tap do |f|
403
402
  f.apply_depositor_metadata('mjg36')
404
403
  f.batch_id = batch_id
405
404
  f.save
@@ -410,7 +409,7 @@ describe GenericFile, :type => :model do
410
409
  let(:batch) { Batch.create }
411
410
  let(:batch_id) { batch.id }
412
411
 
413
- it "shouldn't return itself from the related_files method" do
412
+ it "does not return itself from the related_files method" do
414
413
  expect(f1.related_files).to match_array [f2, f3]
415
414
  expect(f2.related_files).to match_array [f1, f3]
416
415
  expect(f3.related_files).to match_array [f1, f2]
@@ -420,7 +419,7 @@ describe GenericFile, :type => :model do
420
419
  context "when there are no related files" do
421
420
  let(:batch_id) { nil }
422
421
 
423
- it "should return an empty array when there are no related files" do
422
+ it "returns an empty array when there are no related files" do
424
423
  expect(f1.related_files).to eq []
425
424
  end
426
425
  end
@@ -434,12 +433,12 @@ describe GenericFile, :type => :model do
434
433
  let(:noid) { 'wd3763094' }
435
434
 
436
435
  subject do
437
- GenericFile.create { |f| f.apply_depositor_metadata('mjg36') }
436
+ described_class.create { |f| f.apply_depositor_metadata('mjg36') }
438
437
  end
439
438
 
440
439
  it "runs the overridden #assign_id method" do
441
440
  expect_any_instance_of(ActiveFedora::Noid::Service).to receive(:mint).once
442
- GenericFile.create { |f| f.apply_depositor_metadata('mjg36') }
441
+ described_class.create { |f| f.apply_depositor_metadata('mjg36') }
443
442
  end
444
443
 
445
444
  it "returns the expected identifier" do
@@ -454,37 +453,37 @@ describe GenericFile, :type => :model do
454
453
  let(:url) { 'http://localhost:8983/fedora/rest/test/wd/37/63/09/wd3763094' }
455
454
 
456
455
  it "transforms the url into an id" do
457
- expect(GenericFile.uri_to_id(url)).to eq 'wd3763094'
456
+ expect(described_class.uri_to_id(url)).to eq 'wd3763094'
458
457
  end
459
458
  end
460
459
  end
461
460
 
462
461
  context "with access control metadata" do
463
462
  subject do
464
- GenericFile.new do |m|
463
+ described_class.new do |m|
465
464
  m.apply_depositor_metadata('jcoyne')
466
- m.permissions_attributes = [{type: 'person', access: 'read', name: "person1"},
467
- {type: 'person', access: 'read', name: "person2"},
468
- {type: 'group', access: 'read', name: "group-6"},
469
- {type: 'group', access: 'read', name: "group-7"},
470
- {type: 'group', access: 'edit', name: "group-8"}]
465
+ m.permissions_attributes = [{ type: 'person', access: 'read', name: "person1" },
466
+ { type: 'person', access: 'read', name: "person2" },
467
+ { type: 'group', access: 'read', name: "group-6" },
468
+ { type: 'group', access: 'read', name: "group-7" },
469
+ { type: 'group', access: 'edit', name: "group-8" }]
471
470
  end
472
471
  end
473
472
 
474
- it "should have read groups accessor" do
473
+ it "has read groups accessor" do
475
474
  expect(subject.read_groups).to eq ['group-6', 'group-7']
476
475
  end
477
476
 
478
- it "should have read groups string accessor" do
477
+ it "has read groups string accessor" do
479
478
  expect(subject.read_groups_string).to eq 'group-6, group-7'
480
479
  end
481
480
 
482
- it "should have read groups writer" do
481
+ it "has read groups writer" do
483
482
  subject.read_groups = ['group-2', 'group-3']
484
483
  expect(subject.read_groups).to eq ['group-2', 'group-3']
485
484
  end
486
485
 
487
- it "should have read groups string writer" do
486
+ it "has read groups string writer" do
488
487
  subject.read_groups_string = 'umg/up.dlt.staff, group-3'
489
488
  expect(subject.read_groups).to eq ['umg/up.dlt.staff', 'group-3']
490
489
  expect(subject.edit_groups).to eq ['group-8']
@@ -492,7 +491,7 @@ describe GenericFile, :type => :model do
492
491
  expect(subject.edit_users).to eq ['jcoyne']
493
492
  end
494
493
 
495
- it "should only revoke eligible groups" do
494
+ it "onlies revoke eligible groups" do
496
495
  subject.set_read_groups(['group-2', 'group-3'], ['group-6'])
497
496
  # 'group-7' is not eligible to be revoked
498
497
  expect(subject.read_groups).to match_array ['group-2', 'group-3', 'group-7']
@@ -520,7 +519,7 @@ describe GenericFile, :type => :model do
520
519
  end
521
520
  context "when public has edit access" do
522
521
  before { asset.edit_groups = ['public'] }
523
- it "should be valid" do
522
+ it "is valid" do
524
523
  expect(asset).to be_valid
525
524
  end
526
525
  end
@@ -528,9 +527,9 @@ describe GenericFile, :type => :model do
528
527
 
529
528
  context "when the depositor does not have edit access" do
530
529
  before do
531
- subject.permissions = [ Hydra::AccessControls::Permission.new(type: 'person', name: 'mjg36', access: 'read')]
530
+ subject.permissions = [Hydra::AccessControls::Permission.new(type: 'person', name: 'mjg36', access: 'read')]
532
531
  end
533
- it "should be invalid" do
532
+ it "is invalid" do
534
533
  expect(subject).to_not be_valid
535
534
  expect(subject.errors[:edit_users]).to include('Depositor must have edit access')
536
535
  end
@@ -539,7 +538,7 @@ describe GenericFile, :type => :model do
539
538
  context "when the public has edit access" do
540
539
  before { subject.edit_groups = ['public'] }
541
540
 
542
- it "should be invalid" do
541
+ it "is invalid" do
543
542
  expect(subject).to_not be_valid
544
543
  expect(subject.errors[:edit_groups]).to include('Public cannot have edit access')
545
544
  end
@@ -548,14 +547,14 @@ describe GenericFile, :type => :model do
548
547
  context "when registered has edit access" do
549
548
  before { subject.edit_groups = ['registered'] }
550
549
 
551
- it "should be invalid" do
550
+ it "is invalid" do
552
551
  expect(subject).to_not be_valid
553
552
  expect(subject.errors[:edit_groups]).to include('Registered cannot have edit access')
554
553
  end
555
554
  end
556
555
 
557
556
  context "everything is copacetic" do
558
- it "should be valid" do
557
+ it "is valid" do
559
558
  expect(subject).to be_valid
560
559
  end
561
560
  end
@@ -580,7 +579,7 @@ describe GenericFile, :type => :model do
580
579
  it "does not save a new version of a GenericFile" do
581
580
  subject.save!
582
581
  allow(Sufia::GenericFile::Actor).to receive(:virus_check).and_raise(Sufia::VirusFoundError)
583
- subject.add_file(File.new(fixture_path + '/sufia_generic_stub.txt') , path: 'content', original_name: 'sufia_generic_stub.txt')
582
+ subject.add_file(File.new(fixture_path + '/sufia_generic_stub.txt'), path: 'content', original_name: 'sufia_generic_stub.txt')
584
583
  subject.save
585
584
  expect(subject.reload.content.content).to eq "small\n"
586
585
  end
@@ -590,7 +589,7 @@ describe GenericFile, :type => :model do
590
589
  describe "to_solr record" do
591
590
  let(:depositor) { 'jcoyne' }
592
591
  subject do
593
- GenericFile.new.tap do |f|
592
+ described_class.new.tap do |f|
594
593
  f.apply_depositor_metadata(depositor)
595
594
  f.save
596
595
  end
@@ -598,13 +597,13 @@ describe GenericFile, :type => :model do
598
597
  let(:depositor_key) { Solrizer.solr_name("depositor") }
599
598
  let(:title_key) { Solrizer.solr_name("title", :stored_searchable, type: :string) }
600
599
  let(:title) { ["abc123"] }
601
- let(:no_terms) { GenericFile.find(subject.id).to_solr }
602
- let(:terms) {
603
- file = GenericFile.find(subject.id)
600
+ let(:no_terms) { described_class.find(subject.id).to_solr }
601
+ let(:terms) do
602
+ file = described_class.find(subject.id)
604
603
  file.title = title
605
604
  file.save
606
605
  file.to_solr
607
- }
606
+ end
608
607
 
609
608
  context "without terms" do
610
609
  specify "title is nil" do
@@ -620,7 +619,6 @@ describe GenericFile, :type => :model do
620
619
  expect(terms[title_key]).to eql(title)
621
620
  end
622
621
  end
623
-
624
622
  end
625
623
 
626
624
  describe "public?" do
@@ -636,7 +634,7 @@ describe GenericFile, :type => :model do
636
634
  end
637
635
 
638
636
  describe "find_by_date_created" do
639
- subject { GenericFile.find_by_date_created(start_date, end_date) }
637
+ subject { described_class.find_by_date_created(start_date, end_date) }
640
638
 
641
639
  context "with no start date" do
642
640
  let(:start_date) { nil }
@@ -645,8 +643,8 @@ describe GenericFile, :type => :model do
645
643
  end
646
644
 
647
645
  context "with no end date" do
648
- let(:start_date) {1.days.ago}
649
- let(:end_date) {nil}
646
+ let(:start_date) { 1.days.ago }
647
+ let(:end_date) { nil }
650
648
  before do
651
649
  @file.save
652
650
  end
@@ -664,7 +662,7 @@ describe GenericFile, :type => :model do
664
662
  end
665
663
 
666
664
  describe "where_access_is" do
667
- subject { GenericFile.where_access_is access_level }
665
+ subject { described_class.where_access_is access_level }
668
666
  before do
669
667
  @file.read_groups = read_groups
670
668
  @file.save
@@ -674,64 +672,64 @@ describe GenericFile, :type => :model do
674
672
  let(:read_groups) { ["private"] }
675
673
  context "when access level is private" do
676
674
  let(:access_level) { 'private' }
677
- it { is_expected.to eq [@file]}
675
+ it { is_expected.to eq [@file] }
678
676
  end
679
677
  context "when access level is public" do
680
678
  let(:access_level) { 'public' }
681
- it { is_expected.to eq []}
679
+ it { is_expected.to eq [] }
682
680
  end
683
681
  context "when access level is registered" do
684
682
  let(:access_level) { 'registered' }
685
- it { is_expected.to eq []}
683
+ it { is_expected.to eq [] }
686
684
  end
687
685
  end
688
686
  context "when file is public" do
689
687
  let(:read_groups) { ["public"] }
690
688
  context "when access level is private" do
691
689
  let(:access_level) { 'private' }
692
- it { is_expected.to eq []}
690
+ it { is_expected.to eq [] }
693
691
  end
694
692
  context "when access level is public" do
695
693
  let(:access_level) { 'public' }
696
- it { is_expected.to eq [@file]}
694
+ it { is_expected.to eq [@file] }
697
695
  end
698
696
  context "when access level is registered" do
699
697
  let(:access_level) { 'registered' }
700
- it { is_expected.to eq []}
698
+ it { is_expected.to eq [] }
701
699
  end
702
700
  end
703
701
  context "when file is registered" do
704
702
  let(:read_groups) { ["registered"] }
705
703
  context "when access level is private" do
706
704
  let(:access_level) { 'private' }
707
- it { is_expected.to eq []}
705
+ it { is_expected.to eq [] }
708
706
  end
709
707
  context "when access level is public" do
710
- let(:access_level) {'public'}
711
- it { is_expected.to eq []}
708
+ let(:access_level) { 'public' }
709
+ it { is_expected.to eq [] }
712
710
  end
713
711
  context "when access level is registered" do
714
712
  let(:access_level) { 'registered' }
715
- it { is_expected.to eq [@file]}
713
+ it { is_expected.to eq [@file] }
716
714
  end
717
715
  end
718
716
  end
719
717
  describe "where_private" do
720
718
  it "calls where_access_is with private" do
721
- expect(GenericFile).to receive(:where_access_is).with('private')
722
- GenericFile.where_private
719
+ expect(described_class).to receive(:where_access_is).with('private')
720
+ described_class.where_private
723
721
  end
724
722
  end
725
723
  describe "where_registered" do
726
724
  it "calls where_access_is with registered" do
727
- expect(GenericFile).to receive(:where_access_is).with('registered')
728
- GenericFile.where_registered
725
+ expect(described_class).to receive(:where_access_is).with('registered')
726
+ described_class.where_registered
729
727
  end
730
728
  end
731
729
  describe "where_public" do
732
730
  it "calls where_access_is with public" do
733
- expect(GenericFile).to receive(:where_access_is).with('public')
734
- GenericFile.where_public
731
+ expect(described_class).to receive(:where_access_is).with('public')
732
+ described_class.where_public
735
733
  end
736
734
  end
737
735
  end