sufia 0.0.1.pre2 → 0.0.1
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.
- data/Gemfile +2 -5
- data/README.md +44 -12
- data/app/assets/javascripts/{scholarsphere.js → sufia.js} +0 -0
- data/app/assets/stylesheets/{scholarsphere.css → sufia.css} +0 -0
- data/app/controllers/batch_controller.rb +2 -3
- data/app/controllers/batch_edits_controller.rb +4 -4
- data/app/controllers/dashboard_controller.rb +5 -3
- data/app/controllers/generic_files_controller.rb +77 -41
- data/app/controllers/users_controller.rb +9 -21
- data/app/helpers/blacklight/render_constraints_helper_behavior.rb +2 -2
- data/app/helpers/sufia_helper.rb +23 -2
- data/app/models/datastreams/file_content_datastream.rb +17 -9
- data/app/models/generic_file.rb +1 -809
- data/app/views/_add_assets_links.html.erb +1 -1
- data/app/views/_user_util_links.html.erb +2 -2
- data/app/views/batch/_metadata.html.erb +16 -16
- data/app/views/batch/edit.html.erb +16 -10
- data/app/views/batch_edits/_metadata.html.erb +16 -16
- data/app/views/catalog/_index_partials/_list_files.html.erb +2 -2
- data/app/views/catalog/index.html.erb +5 -0
- data/app/views/dashboard/_facet_limit.html.erb +1 -1
- data/app/views/dashboard/_facet_pagination.html.erb +4 -4
- data/app/views/dashboard/_facet_selected.html.erb +1 -1
- data/app/views/dashboard/_index_partials/_list_files.html.erb +8 -8
- data/app/views/dashboard/_search_form.html.erb +1 -1
- data/app/views/dashboard/_sort_and_per_page.html.erb +1 -1
- data/app/views/dashboard/index.html.erb +0 -1
- data/app/views/generic_files/_breadcrumbs.html.erb +1 -1
- data/app/views/generic_files/_descriptions.html.erb +3 -3
- data/app/views/generic_files/_field_form +3 -3
- data/app/views/generic_files/_media_display.html.erb +5 -4
- data/app/views/generic_files/_permission.html.erb +5 -5
- data/app/views/generic_files/_versioning.html.erb +1 -1
- data/app/views/generic_files/edit.html.erb +2 -2
- data/app/views/generic_files/show.html.erb +3 -3
- data/app/views/static/versions.html.erb +1 -1
- data/app/views/users/edit.html.erb +5 -3
- data/app/views/users/index.html.erb +3 -3
- data/app/views/users/show.html.erb +6 -6
- data/config/jetty.yml +6 -0
- data/config/routes.rb +8 -4
- data/features/browse_dashboard_files.feature +11 -1
- data/features/browse_files.feature +6 -5
- data/features/contact_form.feature +4 -0
- data/features/display_dashboard.feature +6 -3
- data/features/ingest_upload_files.feature +2 -2
- data/features/step_definitions/fixture_steps.rb +6 -5
- data/features/step_definitions/scholarsphere.rb +24 -1
- data/features/step_definitions/user_steps.rb +2 -2
- data/features/step_definitions/web_steps.rb +1 -1
- data/features/support/env.rb +26 -0
- data/features/users.feature +18 -0
- data/lib/active_support/core_ext/marshal.rb +22 -0
- data/lib/generators/sufia/sufia_generator.rb +18 -2
- data/lib/generators/sufia/templates/catalog_controller.rb +3 -4
- data/{spec/support → lib/generators/sufia/templates}/config/redis.yml +0 -0
- data/lib/generators/sufia/templates/config/sufia.rb +68 -0
- data/lib/generators/sufia/templates/migrations/add_ldap_attrs_to_user.rb +41 -0
- data/lib/kaminari/helpers/tag.rb +11 -0
- data/lib/sufia.rb +30 -7
- data/lib/sufia/controller.rb +1 -5
- data/lib/sufia/generic_file.rb +200 -0
- data/lib/sufia/generic_file/audit.rb +119 -0
- data/lib/sufia/generic_file/characterization.rb +82 -0
- data/lib/sufia/generic_file/export.rb +339 -0
- data/lib/sufia/generic_file/permissions.rb +64 -0
- data/lib/sufia/generic_file/thumbnail.rb +68 -0
- data/{app/models → lib/sufia/jobs}/audit_job.rb +13 -3
- data/lib/sufia/jobs/batch_update_job.rb +86 -0
- data/lib/sufia/jobs/characterize_job.rb +35 -0
- data/{app/models → lib/sufia/jobs}/content_delete_event_job.rb +3 -1
- data/{app/models → lib/sufia/jobs}/content_deposit_event_job.rb +1 -1
- data/{app/models → lib/sufia/jobs}/content_new_version_event_job.rb +1 -1
- data/{app/models → lib/sufia/jobs}/content_restored_version_event_job.rb +8 -0
- data/{app/models → lib/sufia/jobs}/content_update_event_job.rb +1 -1
- data/{app/models → lib/sufia/jobs}/event_job.rb +7 -3
- data/{app/models → lib/sufia/jobs}/resolrize_job.rb +4 -2
- data/lib/sufia/jobs/transcode_video_job.rb +79 -0
- data/{app/models → lib/sufia/jobs}/unzip_job.rb +11 -3
- data/{app/models → lib/sufia/jobs}/user_edit_profile_event_job.rb +6 -0
- data/{app/models → lib/sufia/jobs}/user_follow_event_job.rb +9 -4
- data/{app/models → lib/sufia/jobs}/user_unfollow_event_job.rb +6 -0
- data/lib/sufia/queue/resque.rb +30 -0
- data/lib/sufia/role_mapper.rb +0 -1
- data/{app/models/characterize_job.rb → lib/sufia/solr_document_behavior.rb} +6 -7
- data/lib/sufia/user.rb +3 -3
- data/lib/sufia/version.rb +1 -1
- data/lib/tasks/fixtures.rake +38 -38
- data/lib/tasks/resque.rake +1 -0
- data/solr_conf/conf/solrconfig.xml +32 -1615
- data/solr_conf/solr.xml +1 -1
- data/spec/active_fedora/unsaved_digital_object_spec.rb +4 -4
- data/spec/config/host_to_vhost_spec.rb +4 -4
- data/spec/controllers/authorities_controller_spec.rb +1 -1
- data/spec/controllers/batch_controller_spec.rb +12 -10
- data/spec/controllers/catalog_controller_spec.rb +13 -13
- data/spec/controllers/dashboard_controller_spec.rb +15 -15
- data/spec/controllers/downloads_controller_spec.rb +14 -14
- data/spec/controllers/generic_files_controller_spec.rb +88 -46
- data/spec/controllers/mailbox_controller_spec.rb +2 -2
- data/spec/controllers/sessions_controller_spec.rb +1 -1
- data/spec/controllers/single_use_link_controller_spec.rb +18 -18
- data/spec/controllers/users_controller_spec.rb +47 -31
- data/spec/fixtures/countdown.avi +0 -0
- data/spec/fixtures/sufia/.gitignore +1 -0
- data/spec/fixtures/{scholarsphere → sufia}/bg_header.jpg +0 -0
- data/spec/fixtures/sufia/sufia_test1.descMeta.txt +12 -0
- data/spec/fixtures/{scholarsphere → sufia}/sufia_test1.foxml.erb +2 -2
- data/spec/fixtures/{scholarsphere/scholarsphere_test1.txt → sufia/sufia_test1.txt} +0 -0
- data/spec/fixtures/sufia/sufia_test2.descMeta.txt +12 -0
- data/spec/fixtures/{scholarsphere/scholarsphere_test2.docx → sufia/sufia_test2.docx} +0 -0
- data/spec/fixtures/{scholarsphere/scholarsphere_test2.foxml.erb → sufia/sufia_test2.foxml.erb} +6 -6
- data/spec/fixtures/sufia/sufia_test3.descMeta.txt +12 -0
- data/spec/fixtures/{scholarsphere/scholarsphere_test3.foxml.erb → sufia/sufia_test3.foxml.erb} +6 -6
- data/spec/fixtures/{scholarsphere/scholarsphere_test3.xls → sufia/sufia_test3.xls} +0 -0
- data/spec/fixtures/sufia/sufia_test4.descMeta.txt +12 -0
- data/spec/fixtures/{scholarsphere/scholarsphere_test4.foxml.erb → sufia/sufia_test4.foxml.erb} +6 -6
- data/spec/fixtures/{scholarsphere/scholarsphere_test4.pdf → sufia/sufia_test4.pdf} +0 -0
- data/spec/fixtures/sufia/sufia_test5.descMeta.txt +19 -0
- data/spec/fixtures/{scholarsphere → sufia}/sufia_test5.foxml.erb +3 -3
- data/spec/fixtures/{scholarsphere/scholarsphere_test5.mp3 → sufia/sufia_test5.mp3} +0 -0
- data/spec/fixtures/sufia/sufia_test5.txt +1 -0
- data/spec/fixtures/sufia/sufia_test6.descMeta.txt +12 -0
- data/spec/fixtures/{scholarsphere/scholarsphere_test6.foxml.erb → sufia/sufia_test6.foxml.erb} +6 -6
- data/spec/fixtures/{scholarsphere/scholarsphere_test6.jp2 → sufia/sufia_test6.jp2} +0 -0
- data/spec/fixtures/sufia/sufia_test6.txt +1 -0
- data/spec/fixtures/sufia_generic_stub.descMeta.txt +12 -0
- data/spec/fixtures/{scholarsphere_generic_stub.foxml.erb → sufia_generic_stub.foxml.erb} +3 -3
- data/spec/fixtures/sufia_generic_stub.txt +1 -0
- data/spec/lib/sufia/role_mapper_spec.rb +1 -1
- data/spec/models/audit_job_spec.rb +8 -11
- data/spec/models/batch_spec.rb +5 -5
- data/spec/models/batch_update_job_spec.rb +18 -15
- data/spec/models/checksum_audit_log_spec.rb +6 -19
- data/spec/models/event_jobs_spec.rb +23 -23
- data/spec/models/file_content_datastream_spec.rb +14 -14
- data/spec/models/fits_datastream_spec.rb +1 -1
- data/spec/models/generic_file_spec.rb +88 -41
- data/spec/models/single_use_link_spec.rb +3 -3
- data/spec/models/transcode_video_job_spec.rb +30 -0
- data/spec/models/unzip_job_spec.rb +6 -4
- data/spec/rake/{scholarsphere_fixtures_spec.rb → sufia_fixtures_spec.rb} +16 -16
- data/spec/routing/route_spec.rb +4 -8
- data/spec/spec_helper.rb +0 -7
- data/spec/support/Gemfile +4 -2
- data/spec/support/fedora_conf/fedora.fcfg +953 -0
- data/spec/support/lib/generators/test_app_generator.rb +1 -11
- data/sufia.gemspec +5 -3
- data/tasks/{scholarsphere-db.rake → sufia-db.rake} +1 -1
- data/tasks/{scholarsphere-dev.rake → sufia-dev.rake} +7 -3
- data/tasks/{scholarsphere-fixtures.rake → sufia-fixtures.rake} +43 -43
- data/tasks/{scholarsphere.rake → sufia.rake} +2 -2
- metadata +126 -95
- data/app/models/batch_update_job.rb +0 -82
- data/app/models/solr_document.rb +0 -50
- data/lib/sufia/permissions.rb +0 -43
- data/spec/fixtures/scholarsphere/scholarsphere_test1.descMeta.txt +0 -12
- data/spec/fixtures/scholarsphere/scholarsphere_test2.descMeta.txt +0 -12
- data/spec/fixtures/scholarsphere/scholarsphere_test3.descMeta.txt +0 -12
- data/spec/fixtures/scholarsphere/scholarsphere_test4.descMeta.txt +0 -12
- data/spec/fixtures/scholarsphere/scholarsphere_test5.descMeta.txt +0 -19
- data/spec/fixtures/scholarsphere/scholarsphere_test5.txt +0 -1
- data/spec/fixtures/scholarsphere/scholarsphere_test6.descMeta.txt +0 -12
- data/spec/fixtures/scholarsphere/scholarsphere_test6.txt +0 -1
- data/spec/fixtures/scholarsphere/sufia_scholarsphere1.descMeta.txt +0 -12
- data/spec/fixtures/scholarsphere/sufia_scholarsphere1.foxml.erb +0 -79
- data/spec/fixtures/scholarsphere/sufia_scholarsphere1.txt +0 -1
- data/spec/fixtures/scholarsphere_generic_stub.descMeta.txt +0 -12
- data/spec/fixtures/scholarsphere_generic_stub.txt +0 -1
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<info:fedora/sufia:test4> <http://purl.org/dc/terms/publisher> "archivist1" .
|
|
2
|
+
<info:fedora/sufia:test4> <http://purl.org/dc/terms/description> "Test Document PDF Description" .
|
|
3
|
+
<info:fedora/sufia:test4> <http://purl.org/dc/terms/created> "4/11/2012" .
|
|
4
|
+
<info:fedora/sufia:test4> <http://purl.org/dc/terms/contributor> "archivist1" .
|
|
5
|
+
<info:fedora/sufia:test4> <http://purl.org/dc/terms/title> "Test Document PDF" .
|
|
6
|
+
<info:fedora/sufia:test4> <http://purl.org/dc/terms/relation> "test" .
|
|
7
|
+
<info:fedora/sufia:test4> <http://purl.org/dc/terms/subject> "PDF Test" .
|
|
8
|
+
<info:fedora/sufia:test4> <http://purl.org/dc/terms/language> "En" .
|
|
9
|
+
<info:fedora/sufia:test4> <http://xmlns.com/foaf/0.1/based_near> "State College" .
|
|
10
|
+
<info:fedora/sufia:test4> <http://purl.org/dc/terms/rights> "archivist1@example.com" .
|
|
11
|
+
<info:fedora/sufia:test4> <http://purl.org/dc/terms/creator> "archivist1@example.com" .
|
|
12
|
+
<info:fedora/sufia:test4> <http://purl.org/dc/terms/identifier> "Test" .
|
data/spec/fixtures/{scholarsphere/scholarsphere_test4.foxml.erb → sufia/sufia_test4.foxml.erb}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<foxml:digitalObject PID="
|
|
2
|
+
<foxml:digitalObject PID="sufia:test4" VERSION="1.1" xmlns:foxml="info:fedora/fedora-system:def/foxml#"
|
|
3
3
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/definitions/1/0/foxml1-1.xsd">
|
|
4
4
|
<foxml:objectProperties>
|
|
5
5
|
<foxml:property NAME="info:fedora/fedora-system:def/model#state" VALUE="Active"/>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
|
|
15
15
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
|
|
16
16
|
<dc:title>Test Data PDF</dc:title>
|
|
17
|
-
<dc:identifier>
|
|
17
|
+
<dc:identifier>sufia:test4</dc:identifier>
|
|
18
18
|
</oai_dc:dc>
|
|
19
19
|
</foxml:xmlContent>
|
|
20
20
|
</foxml:datastreamVersion>
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
|
|
33
33
|
<foxml:datastream CONTROL_GROUP="M" ID="descMetadata" STATE="A" VERSIONABLE="true">
|
|
34
34
|
<foxml:datastreamVersion ID="descMetadata.0" LABEL="" MIMETYPE="text/plain">
|
|
35
|
-
<foxml:contentLocation REF="file:<%=@localDir%>/
|
|
35
|
+
<foxml:contentLocation REF="file:<%=@localDir%>/sufia/sufia_test4.descMeta.txt" TYPE="URL"/>
|
|
36
36
|
</foxml:datastreamVersion>
|
|
37
37
|
</foxml:datastream>
|
|
38
38
|
<foxml:datastream CONTROL_GROUP="X" ID="RELS-EXT" STATE="A" VERSIONABLE="true">
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
LABEL="Fedora Object-to-Object Relationship Metadata" MIMETYPE="application/rdf+xml" SIZE="286">
|
|
41
41
|
<foxml:xmlContent>
|
|
42
42
|
<rdf:RDF xmlns:ns0="info:fedora/fedora-system:def/model#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
|
43
|
-
<rdf:Description rdf:about="info:fedora/
|
|
43
|
+
<rdf:Description rdf:about="info:fedora/sufia:test4">
|
|
44
44
|
<ns0:hasModel rdf:resource="info:fedora/afmodel:GenericFile"/>
|
|
45
45
|
</rdf:Description>
|
|
46
46
|
</rdf:RDF>
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
<foxml:datastream CONTROL_GROUP="M" ID="content" STATE="A" VERSIONABLE="true">
|
|
51
51
|
<foxml:datastreamVersion ID="content.0" LABEL="Test Data PDF"
|
|
52
52
|
MIMETYPE="application/pdf" SIZE="25">
|
|
53
|
-
<foxml:contentLocation REF="file:<%=@localDir%>/
|
|
53
|
+
<foxml:contentLocation REF="file:<%=@localDir%>/sufia/sufia_test4.pdf" TYPE="URL"/>
|
|
54
54
|
</foxml:datastreamVersion>
|
|
55
55
|
</foxml:datastream>
|
|
56
56
|
<foxml:datastream CONTROL_GROUP="X" ID="rightsMetadata" STATE="A" VERSIONABLE="true">
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
<access type="edit">
|
|
78
78
|
<human/>
|
|
79
79
|
<machine>
|
|
80
|
-
<person>archivist1</person>
|
|
80
|
+
<person>archivist1@example.com</person>
|
|
81
81
|
</machine>
|
|
82
82
|
</access>
|
|
83
83
|
<embargo>
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/publisher> "archivist1" .
|
|
2
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/description> "Test mp3 Description" .
|
|
3
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/created> "04/11/2012" .
|
|
4
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/contributor> "archivist1" .
|
|
5
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/title> "Test mp3" .
|
|
6
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/relation> "test" .
|
|
7
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/relation> "keya" .
|
|
8
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/relation> "keyb" .
|
|
9
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/relation> "keyc" .
|
|
10
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/relation> "keyd" .
|
|
11
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/relation> "keye" .
|
|
12
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/relation> "keyf" .
|
|
13
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/relation> "keyg" .
|
|
14
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/subject> "Test mp3 Test" .
|
|
15
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/language> "En" .
|
|
16
|
+
<info:fedora/sufia:test5> <http://xmlns.com/foaf/0.1/based_near> "State College" .
|
|
17
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/rights> "archivist2@example.com" .
|
|
18
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/creator> "archivist1@example.com" .
|
|
19
|
+
<info:fedora/sufia:test5> <http://purl.org/dc/terms/identifier> "Test" .
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
</foxml:datastream>
|
|
22
22
|
<foxml:datastream CONTROL_GROUP="M" ID="descMetadata" STATE="A" VERSIONABLE="true">
|
|
23
23
|
<foxml:datastreamVersion ID="descMetadata.0" LABEL="" MIMETYPE="text/plain">
|
|
24
|
-
<foxml:contentLocation REF="file:<%=@localDir%>/
|
|
24
|
+
<foxml:contentLocation REF="file:<%=@localDir%>/sufia/sufia_test5.descMeta.txt" TYPE="URL"/>
|
|
25
25
|
</foxml:datastreamVersion>
|
|
26
26
|
</foxml:datastream>
|
|
27
27
|
<foxml:datastream ID="properties" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
<foxml:datastream CONTROL_GROUP="M" ID="content" STATE="A" VERSIONABLE="true">
|
|
51
51
|
<foxml:datastreamVersion ID="content.0" LABEL="Test Data 1"
|
|
52
52
|
MIMETYPE="audio/mpeg3" SIZE="25">
|
|
53
|
-
<foxml:contentLocation REF="file:<%=@localDir%>/
|
|
53
|
+
<foxml:contentLocation REF="file:<%=@localDir%>/sufia/sufia_test5.mp3" TYPE="URL"/>
|
|
54
54
|
</foxml:datastreamVersion>
|
|
55
55
|
</foxml:datastream>
|
|
56
56
|
<foxml:datastream CONTROL_GROUP="X" ID="rightsMetadata" STATE="A" VERSIONABLE="true">
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
<access type="edit">
|
|
77
77
|
<human/>
|
|
78
78
|
<machine>
|
|
79
|
-
<person>archivist2</person>
|
|
79
|
+
<person>archivist2@example.com</person>
|
|
80
80
|
</machine>
|
|
81
81
|
</access>
|
|
82
82
|
<embargo>
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
This is a test fixture for sufia: test5.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<info:fedora/sufia:test6> <http://purl.org/dc/terms/publisher> "archivist1" .
|
|
2
|
+
<info:fedora/sufia:test6> <http://purl.org/dc/terms/description> "Test Image Description" .
|
|
3
|
+
<info:fedora/sufia:test6> <http://purl.org/dc/terms/created> "06/11/2012" .
|
|
4
|
+
<info:fedora/sufia:test6> <http://purl.org/dc/terms/contributor> "archivist1" .
|
|
5
|
+
<info:fedora/sufia:test6> <http://purl.org/dc/terms/title> "Test Image" .
|
|
6
|
+
<info:fedora/sufia:test6> <http://purl.org/dc/terms/relation> "test" .
|
|
7
|
+
<info:fedora/sufia:test6> <http://purl.org/dc/terms/subject> "Test Image Test" .
|
|
8
|
+
<info:fedora/sufia:test6> <http://purl.org/dc/terms/language> "En" .
|
|
9
|
+
<info:fedora/sufia:test6> <http://xmlns.com/foaf/0.1/based_near> "State College" .
|
|
10
|
+
<info:fedora/sufia:test6> <http://purl.org/dc/terms/rights> "archivist1@example.com" .
|
|
11
|
+
<info:fedora/sufia:test6> <http://purl.org/dc/terms/creator> "archivist1@example.com" .
|
|
12
|
+
<info:fedora/sufia:test6> <http://purl.org/dc/terms/identifier> "Test" .
|
data/spec/fixtures/{scholarsphere/scholarsphere_test6.foxml.erb → sufia/sufia_test6.foxml.erb}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<foxml:digitalObject PID="
|
|
2
|
+
<foxml:digitalObject PID="sufia:test6" VERSION="1.1" xmlns:foxml="info:fedora/fedora-system:def/foxml#"
|
|
3
3
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/definitions/1/0/foxml1-1.xsd">
|
|
4
4
|
<foxml:objectProperties>
|
|
5
5
|
<foxml:property NAME="info:fedora/fedora-system:def/model#state" VALUE="Active"/>
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
|
|
15
15
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
|
|
16
16
|
<dc:title>Test Image</dc:title>
|
|
17
|
-
<dc:identifier>
|
|
17
|
+
<dc:identifier>sufia:test6</dc:identifier>
|
|
18
18
|
</oai_dc:dc>
|
|
19
19
|
</foxml:xmlContent>
|
|
20
20
|
</foxml:datastreamVersion>
|
|
21
21
|
</foxml:datastream>
|
|
22
22
|
<foxml:datastream CONTROL_GROUP="M" ID="descMetadata" STATE="A" VERSIONABLE="true">
|
|
23
23
|
<foxml:datastreamVersion ID="descMetadata.0" LABEL="" MIMETYPE="text/plain">
|
|
24
|
-
<foxml:contentLocation REF="file:<%=@localDir%>/
|
|
24
|
+
<foxml:contentLocation REF="file:<%=@localDir%>/sufia/sufia_test6.descMeta.txt" TYPE="URL"/>
|
|
25
25
|
</foxml:datastreamVersion>
|
|
26
26
|
</foxml:datastream>
|
|
27
27
|
<foxml:datastream ID="properties" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
LABEL="Fedora Object-to-Object Relationship Metadata" MIMETYPE="application/rdf+xml" SIZE="286">
|
|
40
40
|
<foxml:xmlContent>
|
|
41
41
|
<rdf:RDF xmlns:ns0="info:fedora/fedora-system:def/model#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
|
42
|
-
<rdf:Description rdf:about="info:fedora/
|
|
42
|
+
<rdf:Description rdf:about="info:fedora/sufia:test6">
|
|
43
43
|
<ns0:hasModel rdf:resource="info:fedora/afmodel:GenericFile"/>
|
|
44
44
|
</rdf:Description>
|
|
45
45
|
</rdf:RDF>
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
<foxml:datastream CONTROL_GROUP="M" ID="content" STATE="A" VERSIONABLE="true">
|
|
50
50
|
<foxml:datastreamVersion ID="content.0" LABEL="Test Data 1"
|
|
51
51
|
MIMETYPE="image/jpeg">
|
|
52
|
-
<foxml:contentLocation REF="file:<%=@localDir%>/
|
|
52
|
+
<foxml:contentLocation REF="file:<%=@localDir%>/sufia/sufia_test6.jp2" TYPE="URL"/>
|
|
53
53
|
</foxml:datastreamVersion>
|
|
54
54
|
</foxml:datastream>
|
|
55
55
|
<foxml:datastream CONTROL_GROUP="X" ID="rightsMetadata" STATE="A" VERSIONABLE="true">
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
<access type="edit">
|
|
76
76
|
<human/>
|
|
77
77
|
<machine>
|
|
78
|
-
<person>archivist1</person>
|
|
78
|
+
<person>archivist1@example.com</person>
|
|
79
79
|
</machine>
|
|
80
80
|
</access>
|
|
81
81
|
<embargo>
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
This is a test fixture for sufia: test6.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<info:fedora/sufia:<%= @id %>> <http://purl.org/dc/terms/publisher> "<%= @user %>" .
|
|
2
|
+
<info:fedora/sufia:<%= @id %>> <http://purl.org/dc/terms/description> "<%= @title %> Description" .
|
|
3
|
+
<info:fedora/sufia:<%= @id %>> <http://purl.org/dc/terms/created> "<%= Time.now.strftime("%m/%d/%Y") %>" .
|
|
4
|
+
<info:fedora/sufia:<%= @id %>> <http://purl.org/dc/terms/contributor> "<%= @user %>" .
|
|
5
|
+
<info:fedora/sufia:<%= @id %>> <http://purl.org/dc/terms/title> "<%= @title %>" .
|
|
6
|
+
<info:fedora/sufia:<%= @id %>> <http://purl.org/dc/terms/relation> "test" .
|
|
7
|
+
<info:fedora/sufia:<%= @id %>> <http://purl.org/dc/terms/subject> "<%= @title %> Test" .
|
|
8
|
+
<info:fedora/sufia:<%= @id %>> <http://purl.org/dc/terms/language> "En" .
|
|
9
|
+
<info:fedora/sufia:<%= @id %>> <http://xmlns.com/foaf/0.1/based_near> "State College" .
|
|
10
|
+
<info:fedora/sufia:<%= @id %>> <http://purl.org/dc/terms/rights> "<%= @user %>" .
|
|
11
|
+
<info:fedora/sufia:<%= @id %>> <http://purl.org/dc/terms/creator> "<%= @user %>" .
|
|
12
|
+
<info:fedora/sufia:<%= @id %>> <http://purl.org/dc/terms/identifier> "Test" .
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
</foxml:datastream>
|
|
22
22
|
<foxml:datastream CONTROL_GROUP="M" ID="descMetadata" STATE="A" VERSIONABLE="true">
|
|
23
23
|
<foxml:datastreamVersion ID="descMetadata.0" LABEL="" MIMETYPE="text/plain">
|
|
24
|
-
<foxml:contentLocation REF="file:<%=@root%>/
|
|
24
|
+
<foxml:contentLocation REF="file:<%=@root%>/sufia/<%=SUFIA_TEST_NS%>_<%= @id %>.descMeta.txt" TYPE="URL"/>
|
|
25
25
|
</foxml:datastreamVersion>
|
|
26
26
|
</foxml:datastream>
|
|
27
27
|
<foxml:datastream CONTROL_GROUP="X" ID="RELS-EXT" STATE="A" VERSIONABLE="true">
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
<foxml:datastream CONTROL_GROUP="M" ID="content" STATE="A" VERSIONABLE="true">
|
|
40
40
|
<foxml:datastreamVersion ID="content.0" LABEL="Test Data 1"
|
|
41
41
|
MIMETYPE="text/plain" >
|
|
42
|
-
<foxml:contentLocation REF="file:<%=@root%>/
|
|
42
|
+
<foxml:contentLocation REF="file:<%=@root%>/sufia/<%=SUFIA_TEST_NS%>_<%= @id %>.txt" TYPE="URL"/>
|
|
43
43
|
</foxml:datastreamVersion>
|
|
44
44
|
</foxml:datastream>
|
|
45
45
|
<foxml:datastream CONTROL_GROUP="X" ID="rightsMetadata" STATE="A" VERSIONABLE="true">
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
<access type="edit">
|
|
66
66
|
<human/>
|
|
67
67
|
<machine>
|
|
68
|
-
<person>
|
|
68
|
+
<person>archivist1@example.com</person>
|
|
69
69
|
</machine>
|
|
70
70
|
</access>
|
|
71
71
|
<embargo>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
This is a test fixture for sufia: <%= @id %>.
|
|
@@ -17,7 +17,7 @@ require 'spec_helper'
|
|
|
17
17
|
describe RoleMapper do
|
|
18
18
|
before do
|
|
19
19
|
@user = FactoryGirl.create(:user)
|
|
20
|
-
User.any_instance.
|
|
20
|
+
User.any_instance.stub(:groups).and_return(["umg/up.dlt.gamma-ci", "umg/up.dlt.redmine"])
|
|
21
21
|
end
|
|
22
22
|
subject {::RoleMapper.roles(@user.user_key)}
|
|
23
23
|
it "should return LDAP groups" do
|
|
@@ -15,34 +15,31 @@
|
|
|
15
15
|
require 'spec_helper'
|
|
16
16
|
|
|
17
17
|
describe AuditJob do
|
|
18
|
-
before
|
|
18
|
+
before do
|
|
19
19
|
@user = FactoryGirl.find_or_create(:user)
|
|
20
20
|
@inbox = @user.mailbox.inbox
|
|
21
|
-
GenericFile.any_instance.
|
|
22
|
-
GenericFile.any_instance.
|
|
21
|
+
GenericFile.any_instance.should_receive(:characterize_if_changed).and_yield
|
|
22
|
+
GenericFile.any_instance.stub(:terms_of_service).and_return('1')
|
|
23
23
|
@file = GenericFile.new
|
|
24
24
|
@file.apply_depositor_metadata(@user.user_key)
|
|
25
25
|
@file.save
|
|
26
26
|
@ds = @file.datastreams.first
|
|
27
27
|
end
|
|
28
|
-
after
|
|
29
|
-
# clear any existing messages
|
|
30
|
-
@inbox.each(&:delete)
|
|
31
|
-
@user.delete
|
|
28
|
+
after do
|
|
32
29
|
@file.delete
|
|
33
30
|
end
|
|
34
31
|
describe "passing audit" do
|
|
35
32
|
it "should not send passing mail" do
|
|
36
|
-
ActiveFedora::RelsExtDatastream.any_instance.
|
|
37
|
-
|
|
33
|
+
ActiveFedora::RelsExtDatastream.any_instance.stub(:dsChecksumValid).and_return(true)
|
|
34
|
+
AuditJob.new(@file.pid, @ds[0], @ds[1].versionID).run
|
|
38
35
|
@inbox = @user.mailbox.inbox
|
|
39
36
|
@inbox.count.should == 0
|
|
40
37
|
end
|
|
41
38
|
end
|
|
42
39
|
describe "failing audit" do
|
|
43
40
|
it "should send failing mail" do
|
|
44
|
-
ActiveFedora::RelsExtDatastream.any_instance.
|
|
45
|
-
|
|
41
|
+
ActiveFedora::RelsExtDatastream.any_instance.stub(:dsChecksumValid).and_return(false)
|
|
42
|
+
AuditJob.new(@file.pid, @ds[0], @ds[1].versionID).run
|
|
46
43
|
@inbox = @user.mailbox.inbox
|
|
47
44
|
@inbox.count.should == 1
|
|
48
45
|
@inbox.each { |msg| msg.last_message.subject.should == AuditJob::FAIL }
|
data/spec/models/batch_spec.rb
CHANGED
|
@@ -17,8 +17,8 @@ require 'spec_helper'
|
|
|
17
17
|
describe Batch do
|
|
18
18
|
before(:all) do
|
|
19
19
|
@user = FactoryGirl.find_or_create(:user)
|
|
20
|
-
GenericFile.any_instance.
|
|
21
|
-
GenericFile.any_instance.
|
|
20
|
+
GenericFile.any_instance.should_receive(:characterize_if_changed).and_yield
|
|
21
|
+
GenericFile.any_instance.stub(:terms_of_service).and_return('1')
|
|
22
22
|
@file = GenericFile.new
|
|
23
23
|
@file.apply_depositor_metadata('mjg36')
|
|
24
24
|
@file.save
|
|
@@ -51,7 +51,7 @@ describe Batch do
|
|
|
51
51
|
end
|
|
52
52
|
it "should be able to have more than one file" do
|
|
53
53
|
# not sure why this is needed here too, but when the test runs alone it is not needed but when run in the group it is needed
|
|
54
|
-
GenericFile.any_instance.
|
|
54
|
+
GenericFile.any_instance.stub(:terms_of_service).and_return('1')
|
|
55
55
|
#logger.info "before create"
|
|
56
56
|
gf = GenericFile.new
|
|
57
57
|
#logger.info "after create"
|
|
@@ -71,14 +71,14 @@ describe Batch do
|
|
|
71
71
|
describe "find_or_create" do
|
|
72
72
|
describe "when the object exists" do
|
|
73
73
|
it "should find batch instead of creating" do
|
|
74
|
-
Batch.
|
|
74
|
+
Batch.should_receive(:create).never
|
|
75
75
|
@b2 = Batch.find_or_create( @batch.pid)
|
|
76
76
|
end
|
|
77
77
|
end
|
|
78
78
|
describe "when the object does not exist" do
|
|
79
79
|
it "should create" do
|
|
80
80
|
lambda {Batch.find("batch:123")}.should raise_error(ActiveFedora::ObjectNotFoundError)
|
|
81
|
-
Batch.
|
|
81
|
+
Batch.should_receive(:create).once.and_return("the batch")
|
|
82
82
|
@b2 = Batch.find_or_create( "batch:123")
|
|
83
83
|
@b2.should == "the batch"
|
|
84
84
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
1
2
|
# Copyright © 2012 The Pennsylvania State University
|
|
2
3
|
#
|
|
3
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -15,8 +16,8 @@
|
|
|
15
16
|
require 'spec_helper'
|
|
16
17
|
|
|
17
18
|
describe BatchUpdateJob do
|
|
18
|
-
before
|
|
19
|
-
GenericFile.any_instance.
|
|
19
|
+
before do
|
|
20
|
+
GenericFile.any_instance.stub(:terms_of_service).and_return('1')
|
|
20
21
|
@user = FactoryGirl.find_or_create(:user)
|
|
21
22
|
@batch = Batch.new
|
|
22
23
|
@batch.save
|
|
@@ -27,19 +28,17 @@ describe BatchUpdateJob do
|
|
|
27
28
|
@file2.apply_depositor_metadata('otherUser')
|
|
28
29
|
@file2.save
|
|
29
30
|
end
|
|
30
|
-
after
|
|
31
|
-
# clear any existing messages
|
|
31
|
+
after do
|
|
32
32
|
@batch.delete
|
|
33
|
-
@user.delete
|
|
34
33
|
@file.delete
|
|
35
34
|
@file2.delete
|
|
36
35
|
end
|
|
37
36
|
describe "failing update" do
|
|
38
37
|
it "should check permissions for each file before updating" do
|
|
39
|
-
BatchUpdateJob.any_instance.
|
|
40
|
-
User.any_instance.
|
|
41
|
-
|
|
42
|
-
BatchUpdateJob.
|
|
38
|
+
BatchUpdateJob.any_instance.stub(:get_permissions_solr_response_for_doc_id).and_return(["","mock solr permissions"])
|
|
39
|
+
User.any_instance.should_receive(:can?).with(:edit, "mock solr permissions").exactly(2).times
|
|
40
|
+
params = {'generic_file' => {'terms_of_service' => '1', 'read_groups_string' => '', 'read_users_string' => 'archivist1, archivist2', 'tag' => ['']}, 'id' => @batch.pid, 'controller' => 'batch', 'action' => 'update'}.with_indifferent_access
|
|
41
|
+
BatchUpdateJob.new(@user.user_key, params).run
|
|
43
42
|
@user.mailbox.inbox[0].messages[0].subject.should == "Batch upload permission denied"
|
|
44
43
|
@user.mailbox.inbox[0].messages[0].move_to_trash @user
|
|
45
44
|
#b = Batch.find(@batch.pid)
|
|
@@ -47,12 +46,16 @@ describe BatchUpdateJob do
|
|
|
47
46
|
end
|
|
48
47
|
describe "passing update" do
|
|
49
48
|
it "should log a content update event" do
|
|
50
|
-
BatchUpdateJob.any_instance.
|
|
51
|
-
User.any_instance.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
BatchUpdateJob.any_instance.stub(:get_permissions_solr_response_for_doc_id).and_return(["","mock solr permissions"])
|
|
50
|
+
User.any_instance.should_receive(:can?).with(:edit, "mock solr permissions").exactly(2).times.and_return(true)
|
|
51
|
+
s1 = stub('one')
|
|
52
|
+
ContentUpdateEventJob.should_receive(:new).with(@file.pid, @user.user_key).and_return(s1)
|
|
53
|
+
Sufia.queue.should_receive(:push).with(s1).once
|
|
54
|
+
s2 = stub('two')
|
|
55
|
+
ContentUpdateEventJob.should_receive(:new).with(@file2.pid, @user.user_key).and_return(s2)
|
|
56
|
+
Sufia.queue.should_receive(:push).with(s2).once
|
|
57
|
+
params = {'generic_file' => {'terms_of_service' => '1', 'read_groups_string' => '', 'read_users_string' => 'archivist1, archivist2', 'tag' => ['']}, 'id' => @batch.pid, 'controller' => 'batch', 'action' => 'update'}.with_indifferent_access
|
|
58
|
+
BatchUpdateJob.new(@user.user_key, params).run
|
|
56
59
|
@user.mailbox.inbox[0].messages[0].subject.should == "Batch upload complete"
|
|
57
60
|
@user.mailbox.inbox[0].messages[0].move_to_trash @user
|
|
58
61
|
end
|
|
@@ -16,22 +16,22 @@ require 'spec_helper'
|
|
|
16
16
|
|
|
17
17
|
describe ChecksumAuditLog do
|
|
18
18
|
before(:all) do
|
|
19
|
-
GenericFile.
|
|
20
|
-
GenericFile.any_instance.stubs(:characterize).returns(true) # stub out characterization so it does not get audited
|
|
21
|
-
@f = GenericFile.new
|
|
19
|
+
@f = GenericFile.new(:terms_of_service => '1')
|
|
22
20
|
@f.add_file_datastream(File.new(fixture_path + '/world.png'), :dsid=>'content')
|
|
23
21
|
@f.apply_depositor_metadata('mjg36')
|
|
24
|
-
@f.save
|
|
22
|
+
@f.save!
|
|
25
23
|
@version = @f.datastreams['content'].versions.first
|
|
26
24
|
@old = ChecksumAuditLog.create(:pid=>@f.pid, :dsid=>@version.dsid, :version=>@version.versionID, :pass=>1, :created_at=>2.minutes.ago)
|
|
27
25
|
@new = ChecksumAuditLog.create(:pid=>@f.pid, :dsid=>@version.dsid, :version=>@version.versionID, :pass=>0)
|
|
28
|
-
@different_ds = ChecksumAuditLog.create(:pid=>@f.pid, :dsid=>'descMetadata', :version=>'descMetadata.0', :pass=>0)
|
|
29
|
-
@different_pid = ChecksumAuditLog.create(:pid=>"other_pid", :dsid=>'content', :version=>'content.0', :pass=>0)
|
|
30
26
|
end
|
|
31
27
|
after(:all) do
|
|
32
28
|
@f.delete
|
|
33
29
|
ChecksumAuditLog.all.each(&:delete)
|
|
34
30
|
end
|
|
31
|
+
before(:each) do
|
|
32
|
+
GenericFile.any_instance.stub(:terms_of_service).and_return('1')
|
|
33
|
+
GenericFile.any_instance.stub(:characterize).and_return(true) # stub out characterization so it does not get audited
|
|
34
|
+
end
|
|
35
35
|
it "should return a list of logs for this datastream sorted by date descending" do
|
|
36
36
|
@f.logs(@version.dsid).should == [@new, @old]
|
|
37
37
|
end
|
|
@@ -47,17 +47,4 @@ describe ChecksumAuditLog do
|
|
|
47
47
|
ChecksumAuditLog.find(success1.id).should_not be_nil
|
|
48
48
|
@f.logs(@version.dsid).should == [success1, @new, @old]
|
|
49
49
|
end
|
|
50
|
-
it "should not prune failed audits" do
|
|
51
|
-
FileContentDatastream.any_instance.expects(:dsChecksumValid).returns(true)
|
|
52
|
-
@f.audit!
|
|
53
|
-
FileContentDatastream.any_instance.expects(:dsChecksumValid).returns(false)
|
|
54
|
-
@f.audit!
|
|
55
|
-
FileContentDatastream.any_instance.expects(:dsChecksumValid).returns(false)
|
|
56
|
-
@f.audit!
|
|
57
|
-
FileContentDatastream.any_instance.expects(:dsChecksumValid).returns(true)
|
|
58
|
-
@f.audit!
|
|
59
|
-
FileContentDatastream.any_instance.expects(:dsChecksumValid).returns(false)
|
|
60
|
-
@f.audit!
|
|
61
|
-
@f.logs(@version.dsid).map(&:pass).should == [0, 1, 0, 0, 1, 0, 1]
|
|
62
|
-
end
|
|
63
50
|
end
|
|
@@ -19,7 +19,7 @@ describe 'event jobs' do
|
|
|
19
19
|
@user = FactoryGirl.find_or_create(:user)
|
|
20
20
|
@another_user = FactoryGirl.find_or_create(:archivist)
|
|
21
21
|
@third_user = FactoryGirl.find_or_create(:curator)
|
|
22
|
-
GenericFile.any_instance.
|
|
22
|
+
GenericFile.any_instance.stub(:terms_of_service).and_return('1')
|
|
23
23
|
@gf = GenericFile.new(pid: 'test:123')
|
|
24
24
|
@gf.apply_depositor_metadata(@user.user_key)
|
|
25
25
|
@gf.title = 'Hamlet'
|
|
@@ -39,9 +39,9 @@ describe 'event jobs' do
|
|
|
39
39
|
@another_user.follow(@user)
|
|
40
40
|
count_user = @user.events.length
|
|
41
41
|
count_another = @another_user.events.length
|
|
42
|
-
Time.
|
|
42
|
+
Time.should_receive(:now).at_least(:once).and_return(1)
|
|
43
43
|
event = { action: 'User <a href="/users/jilluser@example.com">jilluser@example.com</a> has edited his or her profile', timestamp: '1' }
|
|
44
|
-
UserEditProfileEventJob.
|
|
44
|
+
UserEditProfileEventJob.new(@user.user_key).run
|
|
45
45
|
@user.events.length.should == count_user + 1
|
|
46
46
|
@user.events.first.should == event
|
|
47
47
|
@another_user.events.length.should == count_another + 1
|
|
@@ -53,9 +53,9 @@ describe 'event jobs' do
|
|
|
53
53
|
@user.events.length.should == 0
|
|
54
54
|
@another_user.events.length.should == 0
|
|
55
55
|
@third_user.events.length.should == 0
|
|
56
|
-
Time.
|
|
56
|
+
Time.should_receive(:now).at_least(:once).and_return(1)
|
|
57
57
|
event = { action: 'User <a href="/users/jilluser@example.com">jilluser@example.com</a> is now following <a href="/users/archivist1@example.com">archivist1@example.com</a>', timestamp: '1' }
|
|
58
|
-
UserFollowEventJob.
|
|
58
|
+
UserFollowEventJob.new(@user.user_key, @another_user.user_key).run
|
|
59
59
|
@user.events.length.should == 1
|
|
60
60
|
@user.events.first.should == event
|
|
61
61
|
@another_user.events.length.should == 1
|
|
@@ -70,9 +70,9 @@ describe 'event jobs' do
|
|
|
70
70
|
@user.events.length.should == 0
|
|
71
71
|
@another_user.events.length.should == 0
|
|
72
72
|
@third_user.events.length.should == 0
|
|
73
|
-
Time.
|
|
73
|
+
Time.should_receive(:now).at_least(:once).and_return(1)
|
|
74
74
|
event = { action: 'User <a href="/users/jilluser@example.com">jilluser@example.com</a> has unfollowed <a href="/users/archivist1@example.com">archivist1@example.com</a>', timestamp: '1' }
|
|
75
|
-
UserUnfollowEventJob.
|
|
75
|
+
UserUnfollowEventJob.new(@user.user_key, @another_user.user_key).run
|
|
76
76
|
@user.events.length.should == 1
|
|
77
77
|
@user.events.first.should == event
|
|
78
78
|
@another_user.events.length.should == 1
|
|
@@ -84,14 +84,14 @@ describe 'event jobs' do
|
|
|
84
84
|
# ContentDeposit should log the event to the depositor's profile, followers' dashboards, and the GF
|
|
85
85
|
@another_user.follow(@user)
|
|
86
86
|
@third_user.follow(@user)
|
|
87
|
-
User.any_instance.
|
|
87
|
+
User.any_instance.stub(:can?).and_return(true)
|
|
88
88
|
@user.profile_events.length.should == 0
|
|
89
89
|
@another_user.events.length.should == 0
|
|
90
90
|
@third_user.events.length.should == 0
|
|
91
91
|
@gf.events.length.should == 0
|
|
92
|
-
Time.
|
|
92
|
+
Time.should_receive(:now).at_least(:once).and_return(1)
|
|
93
93
|
event = {action: 'User <a href="/users/jilluser@example.com">jilluser@example.com</a> has deposited <a href="/files/123">Hamlet</a>', timestamp: '1' }
|
|
94
|
-
ContentDepositEventJob.
|
|
94
|
+
ContentDepositEventJob.new('test:123', @user.user_key).run
|
|
95
95
|
@user.profile_events.length.should == 1
|
|
96
96
|
@user.profile_events.first.should == event
|
|
97
97
|
@another_user.events.length.should == 1
|
|
@@ -105,14 +105,14 @@ describe 'event jobs' do
|
|
|
105
105
|
# ContentUpdate should log the event to the depositor's profile, followers' dashboards, and the GF
|
|
106
106
|
@another_user.follow(@user)
|
|
107
107
|
@third_user.follow(@user)
|
|
108
|
-
User.any_instance.
|
|
108
|
+
User.any_instance.stub(:can?).and_return(true)
|
|
109
109
|
@user.profile_events.length.should == 0
|
|
110
110
|
@another_user.events.length.should == 0
|
|
111
111
|
@third_user.events.length.should == 0
|
|
112
112
|
@gf.events.length.should == 0
|
|
113
|
-
Time.
|
|
113
|
+
Time.should_receive(:now).at_least(:once).and_return(1)
|
|
114
114
|
event = {action: 'User <a href="/users/jilluser@example.com">jilluser@example.com</a> has updated <a href="/files/123">Hamlet</a>', timestamp: '1' }
|
|
115
|
-
ContentUpdateEventJob.
|
|
115
|
+
ContentUpdateEventJob.new('test:123', @user.user_key).run
|
|
116
116
|
@user.profile_events.length.should == 1
|
|
117
117
|
@user.profile_events.first.should == event
|
|
118
118
|
@another_user.events.length.should == 1
|
|
@@ -126,14 +126,14 @@ describe 'event jobs' do
|
|
|
126
126
|
# ContentNewVersion should log the event to the depositor's profile, followers' dashboards, and the GF
|
|
127
127
|
@another_user.follow(@user)
|
|
128
128
|
@third_user.follow(@user)
|
|
129
|
-
User.any_instance.
|
|
129
|
+
User.any_instance.stub(:can?).and_return(true)
|
|
130
130
|
@user.profile_events.length.should == 0
|
|
131
131
|
@another_user.events.length.should == 0
|
|
132
132
|
@third_user.events.length.should == 0
|
|
133
133
|
@gf.events.length.should == 0
|
|
134
|
-
Time.
|
|
134
|
+
Time.should_receive(:now).at_least(:once).and_return(1)
|
|
135
135
|
event = {action: 'User <a href="/users/jilluser@example.com">jilluser@example.com</a> has added a new version of <a href="/files/123">Hamlet</a>', timestamp: '1' }
|
|
136
|
-
ContentNewVersionEventJob.
|
|
136
|
+
ContentNewVersionEventJob.new('test:123', @user.user_key).run
|
|
137
137
|
@user.profile_events.length.should == 1
|
|
138
138
|
@user.profile_events.first.should == event
|
|
139
139
|
@another_user.events.length.should == 1
|
|
@@ -147,14 +147,14 @@ describe 'event jobs' do
|
|
|
147
147
|
# ContentRestoredVersion should log the event to the depositor's profile, followers' dashboards, and the GF
|
|
148
148
|
@another_user.follow(@user)
|
|
149
149
|
@third_user.follow(@user)
|
|
150
|
-
User.any_instance.
|
|
150
|
+
User.any_instance.stub(:can?).and_return(true)
|
|
151
151
|
@user.profile_events.length.should == 0
|
|
152
152
|
@another_user.events.length.should == 0
|
|
153
153
|
@third_user.events.length.should == 0
|
|
154
154
|
@gf.events.length.should == 0
|
|
155
|
-
Time.
|
|
155
|
+
Time.should_receive(:now).at_least(:once).and_return(1)
|
|
156
156
|
event = {action: 'User <a href="/users/jilluser@example.com">jilluser@example.com</a> has restored a version \'content.0\' of <a href="/files/123">Hamlet</a>', timestamp: '1' }
|
|
157
|
-
ContentRestoredVersionEventJob.
|
|
157
|
+
ContentRestoredVersionEventJob.new('test:123', @user.user_key, 'content.0').run
|
|
158
158
|
@user.profile_events.length.should == 1
|
|
159
159
|
@user.profile_events.first.should == event
|
|
160
160
|
@another_user.events.length.should == 1
|
|
@@ -171,9 +171,9 @@ describe 'event jobs' do
|
|
|
171
171
|
@user.profile_events.length.should == 0
|
|
172
172
|
@another_user.events.length.should == 0
|
|
173
173
|
@third_user.events.length.should == 0
|
|
174
|
-
Time.
|
|
174
|
+
Time.should_receive(:now).at_least(:once).and_return(1)
|
|
175
175
|
event = {action: 'User <a href="/users/jilluser@example.com">jilluser@example.com</a> has deleted file \'test:123\'', timestamp: '1' }
|
|
176
|
-
ContentDeleteEventJob.
|
|
176
|
+
ContentDeleteEventJob.new('test:123', @user.user_key).run
|
|
177
177
|
@user.profile_events.length.should == 1
|
|
178
178
|
@user.profile_events.first.should == event
|
|
179
179
|
@another_user.events.length.should == 1
|
|
@@ -190,9 +190,9 @@ describe 'event jobs' do
|
|
|
190
190
|
@third_user.events.length.should == 0
|
|
191
191
|
@gf.events.length.should == 0
|
|
192
192
|
@now = Time.now
|
|
193
|
-
Time.
|
|
193
|
+
Time.should_receive(:now).at_least(:once).and_return(@now)
|
|
194
194
|
event = {action: 'User <a href="/users/jilluser@example.com">jilluser@example.com</a> has updated <a href="/files/123">Hamlet</a>', timestamp: @now.to_i.to_s }
|
|
195
|
-
ContentUpdateEventJob.
|
|
195
|
+
ContentUpdateEventJob.new('test:123', @user.user_key).run
|
|
196
196
|
@user.profile_events.length.should == 1
|
|
197
197
|
@user.profile_events.first.should == event
|
|
198
198
|
@another_user.events.length.should == 0
|