sufia 3.5.0 → 3.6.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 (103) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -3
  3. data/.travis.yml +4 -4
  4. data/README.md +1 -10
  5. data/SUFIA_VERSION +1 -1
  6. data/app/assets/images/audio.png +0 -0
  7. data/app/assets/javascripts/sufia/trophy.js +11 -5
  8. data/app/controllers/single_use_links_controller.rb +11 -1
  9. data/app/helpers/facets_helper.rb +3 -0
  10. data/app/helpers/sufia/facets_helper_behavior.rb +23 -0
  11. data/app/helpers/sufia_helper.rb +3 -21
  12. data/app/views/dashboard/_facet_limit.html.erb +2 -20
  13. data/app/views/dashboard/_index_partials/_thumbnail_display.html.erb +4 -2
  14. data/app/views/generic_files/_descriptions.html.erb +2 -18
  15. data/app/views/generic_files/_field_form.html.erb +7 -2
  16. data/app/views/generic_files/_media_display.html.erb +0 -16
  17. data/app/views/generic_files/_permission.html.erb +1 -17
  18. data/app/views/generic_files/_permission_form.html.erb +1 -1
  19. data/app/views/generic_files/_show_actions.html.erb +1 -8
  20. data/app/views/generic_files/_versioning.html.erb +1 -17
  21. data/app/views/generic_files/edit.html.erb +1 -17
  22. data/app/views/mailbox/index.html.erb +5 -3
  23. data/app/views/users/_activity.html.erb +3 -0
  24. data/app/views/users/_activity_log.html.erb +1 -17
  25. data/app/views/users/_contributions.html.erb +29 -0
  26. data/app/views/users/_follower_modal.html.erb +26 -0
  27. data/app/views/users/_following_modal.html.erb +26 -0
  28. data/app/views/users/_left_sidebar.html.erb +12 -0
  29. data/app/views/users/_notify_number.html.erb +0 -16
  30. data/app/views/users/_profile.html.erb +7 -0
  31. data/app/views/users/_profile_actions.html.erb +11 -0
  32. data/app/views/users/_profile_tabs.html.erb +11 -0
  33. data/app/views/users/_search_form.html.erb +1 -17
  34. data/app/views/users/_social_media_info.html.erb +20 -0
  35. data/app/views/users/_user_info.html.erb +0 -16
  36. data/app/views/users/_vitals.html.erb +4 -0
  37. data/app/views/users/edit.html.erb +1 -17
  38. data/app/views/users/index.html.erb +0 -16
  39. data/app/views/users/notifications_number.js.erb +0 -16
  40. data/app/views/users/show.html.erb +21 -58
  41. data/lib/sufia.rb +1 -3
  42. data/lib/sufia/controller.rb +0 -6
  43. data/lib/sufia/version.rb +1 -1
  44. data/spec/controllers/batch_edits_controller_spec.rb +8 -2
  45. data/spec/controllers/generic_files_controller_spec.rb +8 -28
  46. data/spec/controllers/single_use_links_controller_spec.rb +26 -2
  47. data/spec/factories/generic_files.rb +46 -0
  48. data/spec/factories/users.rb +6 -2
  49. data/spec/features/browse_dashboard_files_spec.rb +39 -0
  50. data/spec/features/browse_files_spec.rb +30 -0
  51. data/spec/features/{contact_form.rb → contact_form_spec.rb} +1 -1
  52. data/spec/features/{display_dashboard.rb → display_dashboard_spec.rb} +1 -7
  53. data/spec/features/{ingest_upload_files.rb → ingest_upload_files_spec.rb} +2 -2
  54. data/spec/features/notifications_spec.rb +20 -0
  55. data/spec/features/users_spec.rb +12 -0
  56. data/spec/helpers/sufia_helper_spec.rb +23 -0
  57. data/spec/lib/sufia/id_service_spec.rb +0 -38
  58. data/spec/support/features.rb +2 -0
  59. data/spec/support/features/session_helpers.rb +9 -1
  60. data/spec/support/fixture_helpers.rb +10 -0
  61. data/spec/views/dashboard/facet_limit.html.erb_spec.rb +15 -0
  62. data/spec/views/dashboard/index_partials/_thumbnail_display.html.erb_spec.rb +22 -0
  63. data/spec/views/generic_file/edit.html.erb_spec.rb +24 -0
  64. data/spec/views/users/show.html.erb_spec.rb +31 -0
  65. data/sufia-models/app/models/concerns/sufia/user.rb +2 -2
  66. data/sufia-models/lib/generators/sufia/models/install_generator.rb +2 -1
  67. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_linkedin_to_users.rb +5 -0
  68. data/sufia-models/lib/sufia/models/generic_file/actions.rb +0 -1
  69. data/sufia-models/lib/sufia/models/version.rb +1 -1
  70. data/sufia-models/sufia-models.gemspec +3 -5
  71. data/tasks/sufia-dev.rake +0 -10
  72. metadata +43 -69
  73. data/app/views/generic_files/edit_fields/_type.html.erb +0 -12
  74. data/lib/tasks/fixtures.rake +0 -231
  75. data/spec/features/browse_dashboard_files.rb +0 -21
  76. data/spec/features/browse_files.rb +0 -31
  77. data/spec/fixtures/empty_file.txt +0 -0
  78. data/spec/fixtures/fits_datastream.xml +0 -42
  79. data/spec/fixtures/sufia/bg_header.jpg +0 -0
  80. data/spec/fixtures/sufia/sufia_test1.descMeta.txt +0 -12
  81. data/spec/fixtures/sufia/sufia_test1.foxml.erb +0 -89
  82. data/spec/fixtures/sufia/sufia_test1.txt +0 -1
  83. data/spec/fixtures/sufia/sufia_test2.descMeta.txt +0 -12
  84. data/spec/fixtures/sufia/sufia_test2.docx +0 -0
  85. data/spec/fixtures/sufia/sufia_test2.foxml.erb +0 -88
  86. data/spec/fixtures/sufia/sufia_test3.descMeta.txt +0 -12
  87. data/spec/fixtures/sufia/sufia_test3.foxml.erb +0 -91
  88. data/spec/fixtures/sufia/sufia_test3.xls +0 -0
  89. data/spec/fixtures/sufia/sufia_test4.descMeta.txt +0 -12
  90. data/spec/fixtures/sufia/sufia_test4.foxml.erb +0 -91
  91. data/spec/fixtures/sufia/sufia_test5.descMeta.txt +0 -19
  92. data/spec/fixtures/sufia/sufia_test5.foxml.erb +0 -90
  93. data/spec/fixtures/sufia/sufia_test5.txt +0 -1
  94. data/spec/fixtures/sufia/sufia_test6.descMeta.txt +0 -12
  95. data/spec/fixtures/sufia/sufia_test6.foxml.erb +0 -89
  96. data/spec/fixtures/sufia/sufia_test6.jp2 +0 -0
  97. data/spec/fixtures/sufia/sufia_test6.txt +0 -1
  98. data/spec/fixtures/sufia_generic_stub.descMeta.txt +0 -12
  99. data/spec/fixtures/sufia_generic_stub.foxml.erb +0 -79
  100. data/spec/models/unzip_job_spec.rb +0 -47
  101. data/spec/rake/sufia_fixtures_spec.rb +0 -74
  102. data/sufia-models/lib/sufia/models/jobs/unzip_job.rb +0 -38
  103. data/tasks/sufia-fixtures.rake +0 -232
@@ -1,89 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <foxml:digitalObject PID="sufia:test6" VERSION="1.1" xmlns:foxml="info:fedora/fedora-system:def/foxml#"
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
- <foxml:objectProperties>
5
- <foxml:property NAME="info:fedora/fedora-system:def/model#state" VALUE="Active"/>
6
- <foxml:property NAME="info:fedora/fedora-system:def/model#label" VALUE="Test Image"/>
7
- <foxml:property NAME="info:fedora/fedora-system:def/model#ownerId" VALUE="fedoraAdmin"/>
8
- </foxml:objectProperties>
9
- <foxml:datastream CONTROL_GROUP="X" ID="DC" STATE="A" VERSIONABLE="true">
10
- <foxml:datastreamVersion FORMAT_URI="http://www.openarchives.org/OAI/2.0/oai_dc/"
11
- ID="DC1.0" LABEL="Dublin Core Record for this object" MIMETYPE="text/xml">
12
- <foxml:xmlContent>
13
- <oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/"
14
- xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
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
- <dc:title>Test Image</dc:title>
17
- <dc:identifier>sufia:test6</dc:identifier>
18
- </oai_dc:dc>
19
- </foxml:xmlContent>
20
- </foxml:datastreamVersion>
21
- </foxml:datastream>
22
- <foxml:datastream CONTROL_GROUP="M" ID="descMetadata" STATE="A" VERSIONABLE="true">
23
- <foxml:datastreamVersion ID="descMetadata.0" LABEL="" MIMETYPE="text/plain">
24
- <foxml:contentLocation REF="file:<%=@localDir%>/sufia/sufia_test6.descMeta.txt" TYPE="URL"/>
25
- </foxml:datastreamVersion>
26
- </foxml:datastream>
27
- <foxml:datastream ID="properties" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
28
- <foxml:datastreamVersion ID="properties.0" LABEL="" CREATED="2012-08-24T16:08:36.120Z" MIMETYPE="text/xml" SIZE="86">
29
- <foxml:xmlContent>
30
- <fields>
31
- <depositor>archivist1</depositor>
32
- <relative_path/>
33
- </fields>
34
- </foxml:xmlContent>
35
- </foxml:datastreamVersion>
36
- </foxml:datastream>
37
- <foxml:datastream CONTROL_GROUP="X" ID="RELS-EXT" STATE="A" VERSIONABLE="true">
38
- <foxml:datastreamVersion ID="RELS-EXT.0"
39
- LABEL="Fedora Object-to-Object Relationship Metadata" MIMETYPE="application/rdf+xml" SIZE="286">
40
- <foxml:xmlContent>
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/sufia:test6">
43
- <ns0:hasModel rdf:resource="info:fedora/afmodel:GenericFile"/>
44
- </rdf:Description>
45
- </rdf:RDF>
46
- </foxml:xmlContent>
47
- </foxml:datastreamVersion>
48
- </foxml:datastream>
49
- <foxml:datastream CONTROL_GROUP="M" ID="content" STATE="A" VERSIONABLE="true">
50
- <foxml:datastreamVersion ID="content.0" LABEL="Test Data 1"
51
- MIMETYPE="image/jpeg">
52
- <foxml:contentLocation REF="file:<%=@localDir%>/sufia/sufia_test6.jp2" TYPE="URL"/>
53
- </foxml:datastreamVersion>
54
- </foxml:datastream>
55
- <foxml:datastream CONTROL_GROUP="X" ID="rightsMetadata" STATE="A" VERSIONABLE="true">
56
- <foxml:datastreamVersion CREATED="2012-04-06T13:41:37.093Z" ID="rightsMetadata.0" LABEL="" MIMETYPE="text/xml" SIZE="582">
57
- <foxml:xmlContent>
58
- <rightsMetadata version="0.1" xmlns="http://hydra-collab.stanford.edu/schemas/rightsMetadata/v1">
59
- <copyright>
60
- <human/>
61
- <machine>
62
- <uvalicense>no</uvalicense>
63
- </machine>
64
- </copyright>
65
- <access type="discover">
66
- <human/>
67
- <machine>
68
- <group>public</group>
69
- </machine>
70
- </access>
71
- <access type="read">
72
- <human/>
73
- <machine/>
74
- </access>
75
- <access type="edit">
76
- <human/>
77
- <machine>
78
- <person>archivist1@example.com</person>
79
- </machine>
80
- </access>
81
- <embargo>
82
- <human/>
83
- <machine/>
84
- </embargo>
85
- </rightsMetadata>
86
- </foxml:xmlContent>
87
- </foxml:datastreamVersion>
88
- </foxml:datastream>
89
- </foxml:digitalObject>
Binary file
@@ -1 +0,0 @@
1
- This is a test fixture for sufia: test6.
@@ -1,12 +0,0 @@
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.ctime %>" .
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" .
@@ -1,79 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <foxml:digitalObject PID="<%=SUFIA_TEST_NS%>:<%= @id %>" VERSION="1.1" xmlns:foxml="info:fedora/fedora-system:def/foxml#"
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
- <foxml:objectProperties>
5
- <foxml:property NAME="info:fedora/fedora-system:def/model#state" VALUE="Active"/>
6
- <foxml:property NAME="info:fedora/fedora-system:def/model#label" VALUE="<%= @title %>"/>
7
- <foxml:property NAME="info:fedora/fedora-system:def/model#ownerId" VALUE="fedoraAdmin"/>
8
- </foxml:objectProperties>
9
- <foxml:datastream CONTROL_GROUP="X" ID="DC" STATE="A" VERSIONABLE="true">
10
- <foxml:datastreamVersion FORMAT_URI="http://www.openarchives.org/OAI/2.0/oai_dc/"
11
- ID="DC1.0" LABEL="Dublin Core Record for this object" MIMETYPE="text/xml">
12
- <foxml:xmlContent>
13
- <oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/"
14
- xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
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
- <dc:title><%= @title %></dc:title>
17
- <dc:identifier><%=SUFIA_TEST_NS%>:<%= @id %></dc:identifier>
18
- </oai_dc:dc>
19
- </foxml:xmlContent>
20
- </foxml:datastreamVersion>
21
- </foxml:datastream>
22
- <foxml:datastream CONTROL_GROUP="M" ID="descMetadata" STATE="A" VERSIONABLE="true">
23
- <foxml:datastreamVersion ID="descMetadata.0" LABEL="" MIMETYPE="text/plain">
24
- <foxml:contentLocation REF="file:<%=@root%>/sufia/<%=SUFIA_TEST_NS%>_<%= @id %>.descMeta.txt" TYPE="URL"/>
25
- </foxml:datastreamVersion>
26
- </foxml:datastream>
27
- <foxml:datastream CONTROL_GROUP="X" ID="RELS-EXT" STATE="A" VERSIONABLE="true">
28
- <foxml:datastreamVersion ID="RELS-EXT.0"
29
- LABEL="Fedora Object-to-Object Relationship Metadata" MIMETYPE="application/rdf+xml">
30
- <foxml:xmlContent>
31
- <rdf:RDF xmlns:ns0="info:fedora/fedora-system:def/model#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
32
- <rdf:Description rdf:about="info:fedora/<%=SUFIA_TEST_NS%>:<%= @id %>">
33
- <ns0:hasModel rdf:resource="info:fedora/afmodel:GenericFile"/>
34
- </rdf:Description>
35
- </rdf:RDF>
36
- </foxml:xmlContent>
37
- </foxml:datastreamVersion>
38
- </foxml:datastream>
39
- <foxml:datastream CONTROL_GROUP="M" ID="content" STATE="A" VERSIONABLE="true">
40
- <foxml:datastreamVersion ID="content.0" LABEL="Test Data 1"
41
- MIMETYPE="text/plain" >
42
- <foxml:contentLocation REF="file:<%=@root%>/sufia/<%=SUFIA_TEST_NS%>_<%= @id %>.txt" TYPE="URL"/>
43
- </foxml:datastreamVersion>
44
- </foxml:datastream>
45
- <foxml:datastream CONTROL_GROUP="X" ID="rightsMetadata" STATE="A" VERSIONABLE="true">
46
- <foxml:datastreamVersion CREATED="2012-04-06T13:41:37.093Z" ID="rightsMetadata.0" LABEL="" MIMETYPE="text/xml">
47
- <foxml:xmlContent>
48
- <rightsMetadata version="0.1" xmlns="http://hydra-collab.stanford.edu/schemas/rightsMetadata/v1">
49
- <copyright>
50
- <human/>
51
- <machine>
52
- <uvalicense>no</uvalicense>
53
- </machine>
54
- </copyright>
55
- <access type="discover">
56
- <human/>
57
- <machine>
58
- <group>public</group>
59
- </machine>
60
- </access>
61
- <access type="read">
62
- <human/>
63
- <machine/>
64
- </access>
65
- <access type="edit">
66
- <human/>
67
- <machine>
68
- <person>archivist1@example.com</person>
69
- </machine>
70
- </access>
71
- <embargo>
72
- <human/>
73
- <machine/>
74
- </embargo>
75
- </rightsMetadata>
76
- </foxml:xmlContent>
77
- </foxml:datastreamVersion>
78
- </foxml:datastream>
79
- </foxml:digitalObject>
@@ -1,47 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe UnzipJob do
4
- before do
5
- @batch = Batch.create
6
- @generic_file = GenericFile.new(:batch=>@batch)
7
- @generic_file.add_file(File.open(fixture_path + '/icons.zip'), 'content', 'icons.zip')
8
- @generic_file.apply_depositor_metadata('mjg36')
9
- @generic_file.stub(:characterize_if_changed).and_yield #don't run characterization
10
- @generic_file.save
11
- end
12
-
13
- after do
14
- @batch.delete
15
- @generic_file.delete
16
- end
17
-
18
- it "should create GenericFiles for each file in the zipfile" do
19
- one = GenericFile.new
20
- #one.should_receive(:characterize_if_changed)
21
- two = GenericFile.new
22
- #two.should_receive(:characterize_if_changed)
23
- three = GenericFile.new
24
- #three.should_receive(:characterize_if_changed)
25
- GenericFile.should_receive(:new).exactly(3).times.and_return(one, two, three)
26
- UnzipJob.new(@generic_file.pid).run
27
-
28
- one.content.size.should == 13024 #bread
29
- one.content.label.should == 'spec/fixtures/bread-icon.png'
30
- one.content.mimeType.should == 'image/png'
31
- one.batch.should == @batch
32
-
33
- two.content.size.should == 12995 #coffee
34
- two.content.label.should == 'spec/fixtures/coffeecup-red-icon.png'
35
- two.content.mimeType.should == 'image/png'
36
- two.batch.should == @batch
37
-
38
- three.content.size.should == 58097 #hamburger
39
- three.content.label.should == 'spec/fixtures/hamburger-icon.png'
40
- three.content.mimeType.should == 'image/png'
41
- three.batch.should == @batch
42
-
43
- one.delete
44
- two.delete
45
- three.delete
46
- end
47
- end
@@ -1,74 +0,0 @@
1
- require 'spec_helper'
2
-
3
- # Used to test the sufia-fixtures rake task
4
- require "rake"
5
-
6
- describe "sufia:fixtures" do
7
-
8
- def loaded_files_excluding_current_rake_file
9
- $".reject { |file| file.include? "tasks/sufia-fixtures" }
10
- end
11
-
12
- # saves original $stdout in variable
13
- # set $stdout as local instance of StringIO
14
- # yields to code execution
15
- # returns the local instance of StringIO
16
- # resets $stdout to original value
17
- def capture_stdout
18
- out = StringIO.new
19
- $stdout = out
20
- yield
21
- return out.string
22
- ensure
23
- $stdout = STDOUT
24
- end
25
-
26
- def activefedora_path
27
- Gem.loaded_specs['active-fedora'].full_gem_path
28
- end
29
-
30
- def delete_fixture_files
31
- File.delete(File.join(File.expand_path("#{fixture_path}/sufia"), "sufia_rspecTestFixture.txt"))
32
- File.delete(File.join(File.expand_path("#{fixture_path}/sufia"), "sufia_rspecTestFixture.descMeta.txt"))
33
- File.delete(File.join(File.expand_path("#{fixture_path}/sufia"), "sufia_rspecTestFixture.foxml.erb"))
34
- begin
35
- File.delete(File.join(File.expand_path("#{fixture_path}/sufia"), "sufia_rspecTestFixture.foxml.xml"))
36
- rescue
37
- # do nothing; this just means the generate task was not called
38
- end
39
- end
40
-
41
- # set up the rake environment
42
- before(:each) do
43
- @rake = Rake::Application.new
44
- Rake.application = @rake
45
- Rake.application.rake_require("sufia-fixtures", ["#{Sufia::Engine.root}/tasks/"], loaded_files_excluding_current_rake_file)
46
- Rake.application.rake_require("fixtures", ["#{Sufia::Engine.root}/lib/tasks/"], loaded_files_excluding_current_rake_file)
47
- Rake.application.rake_require("lib/tasks/active_fedora", [activefedora_path], loaded_files_excluding_current_rake_file)
48
- Rake::Task.define_task(:environment)
49
- end
50
-
51
- after(:each) do
52
- delete_fixture_files
53
- end
54
-
55
- describe 'create, generate, load and delete' do
56
- it 'should load and then delete fixtures' do
57
- ENV["FIXTURE_ID"] = "rspecTestFixture"
58
- ENV["FIXTURE_TITLE"] = "rspec Test Fixture"
59
- ENV["FIXTURE_USER"] = "rspec"
60
- o = capture_stdout do
61
- @rake['sufia:fixtures:create'].invoke
62
- @rake['sufia:fixtures:generate'].invoke
63
- @rake['sufia:fixtures:load'].invoke
64
- @rake['sufia:fixtures:delete'].invoke
65
- end
66
- Dir.glob(File.join(fixture_path, File.expand_path("/sufia"), "sufia_rspecTestFixture.txt")).length.should == 1
67
- Dir.glob(File.join(fixture_path, File.expand_path("/sufia"), "sufia_rspecTestFixture.foxml.erb")).length.should == 1
68
- Dir.glob(File.join(fixture_path, File.expand_path("/sufia"), "sufia_rspecTestFixture.descMeta.txt")).length.should == 1
69
- Dir.glob(File.join(fixture_path, File.expand_path("/sufia"), "sufia_rspecTestFixture.foxml.xml")).length.should == 1
70
- o.should include "Loaded 'sufia:rspecTestFixture'"
71
- o.should include "Deleted 'sufia:rspecTestFixture'"
72
- end
73
- end
74
- end
@@ -1,38 +0,0 @@
1
- class UnzipJob < ActiveFedoraPidBasedJob
2
- def queue_name
3
- :unzip
4
- end
5
-
6
- def run
7
- Zip::Archive.open_buffer(object.content.content) do |archive|
8
- archive.each do |f|
9
- if f.directory?
10
- create_directory(f)
11
- else
12
- create_file(f)
13
- end
14
- end
15
- end
16
- end
17
-
18
- protected
19
-
20
- # Creates a GenericFile object based on +file+
21
- # @param file [Zip::File]
22
- def create_file(file)
23
- @generic_file = GenericFile.new
24
- @generic_file.batch_id = object.batch.pid
25
- @generic_file.add_file(file.read, 'content', file.name)
26
- @generic_file.apply_depositor_metadata(object.edit_users.first)
27
- @generic_file.date_uploaded = Time.now.ctime
28
- @generic_file.date_modified = Time.now.ctime
29
- @generic_file.save
30
- end
31
-
32
- # Creates representation of directory corresponding to +file+
33
- # Default behavior: _do nothing_
34
- # @param file [Zip::File]
35
- def create_directory(file)
36
- end
37
-
38
- end
@@ -1,232 +0,0 @@
1
- # sufia-fixtures
2
- #
3
- # This was extracted from the original Hydra version in
4
- # ~/rvm/gems/<rails version>@sufia/bundler/gems/lib/railties
5
- # It has been changed to read all files out of a directory and pass those as fixtures.
6
- # Any _ in the file name will be modified to a : for the id, since colons are not valid in a file name.
7
- # The files should be named id_[fixture id] which should relates to the id within the foxml sufia:[fixture id] where
8
- # [fixture id] is some alpha numeric id ('test1')
9
- #
10
- # There are 2 sets of data needed to attach to a sufia fixture, 1 the data file, and 2 the metadata.
11
- # It is important that the meta-data contains the appropriate id, or solor will not index it!
12
- #
13
- # Usage: rake sufia:fixtures:create [DIR=<fixture dir>] [FIXTURE_ID=<fixture id>] [FIXTURE_TITLE=<fixture title>] [FIXTURE_USER=<fixture user>]
14
- # <fixture dir> is an optional directory under spec/fixtures to find the fixtures to load
15
- # DEFAULT: sufia
16
- # <fixture id> is the id given to this fixture with fedora and solr.
17
- # This must be unique and any old files will be overwritten.
18
- # DEFAULT: sufia1
19
- # <fixture title> is the title given to the fixture in fedora and solor,
20
- # along with being put in the description and subject by default.
21
- # DEFAULT: sufia test
22
- # <fixture user> is the user given to the fixture in fedora and solor,
23
- # along with being put in the contributor and rights.
24
- # DEFAULT: archivist1
25
- #
26
- #
27
- # Creates new fixture files including the erb, descMeta, and text for loading into sufia.
28
- # The Files are named based on the sufia: id_<fixture id>.foxml.erb, id_<fixture id>.descMeta.txt, and id_<fixture id>.txt
29
- # The foxml.erb file references the descMeta.txt and .txt file. You can edit the erb to point to other data and/or edit the
30
- # .descMeta.txt and/or .txt file to contain the data you wish.
31
- #
32
- # *** Please note that the id must be changed in the file name, foxml.erb, and descMeta.txt if you change it after creation. ***
33
- #
34
- # rake sufia:fixtures:generate [DIR=<fixture dir>]
35
- # <fixture dir> is an optional directory under spec/fixtures to find the fixtures to load
36
- # DEFAULT: sufia
37
- #
38
- # Creates foxml.xml files from the foxml.erb files doing any erb substitutions within the erb file.
39
- # This task is mostly used to put the appropriate Rails.root into the foxml.xml file so that
40
- # the data and meta-data files can be located on load.
41
- #
42
- # rake sufia:fixtures:delete [DIR=<fixture dir>]
43
- # <fixture dir> is an optional directory under spec/fixtures to find the fixtures to load
44
- # DEFAULT: sufia
45
- #
46
- # Remove any fixtures defined by .xml.foxml files in Rais.root/spec/fixtures/<fixture dir> from fedora and solr.
47
- #
48
- # rake sufia:fixtures:load [DIR=<fixture dir>]
49
- # <fixture dir> is an optional directory under spec/fixtures to find the fixtures to load
50
- # DEFAULT: sufia
51
- #
52
- # load any fixtures defined by .xml.foxml files in Rais.root/spec/fixtures/<fixture dir> into fedora and solr.
53
- #
54
- # rake sufia:fixtures:refresh [DIR=<fixture dir>]
55
- # <fixture dir> is an optional directory under spec/fixtures to find the fixtures to load
56
- # DEFAULT: sufia
57
- #
58
- # delete then load any fixtures defined by .xml.foxml files in Rais.root/spec/fixtures/<fixture dir> into fedora and solr.
59
- #
60
- # Example meta-data:
61
- #
62
- # <info:fedora/sufia:[fixture id]> <http://purl.org/dc/terms/publisher> "archivist1" .
63
- # <info:fedora/sufia:[fixture id]> <http://purl.org/dc/terms/description> "MP3 Description" .
64
- # <info:fedora/sufia:[fixture id]> <http://purl.org/dc/terms/created> "04/12/2012" .
65
- # <info:fedora/sufia:[fixture id]> <http://purl.org/dc/terms/contributor> "archivist1" .
66
- # <info:fedora/sufia:[fixture id]> <http://purl.org/dc/terms/title> "MP3" .
67
- # <info:fedora/sufia:[fixture id]> <http://purl.org/dc/terms/relation> "test" .
68
- # <info:fedora/sufia:[fixture id]> <http://purl.org/dc/terms/subject> "MP3 Test" .
69
- # <info:fedora/sufia:[fixture id]> <http://purl.org/dc/terms/language> "En" .
70
- # <info:fedora/sufia:[fixture id]> <http://xmlns.com/foaf/0.1/based_near> "State College" .
71
- # <info:fedora/sufia:[fixture id]> <http://purl.org/dc/terms/rights> "archivist1" .
72
- # <info:fedora/sufia:[fixture id]> <http://purl.org/dc/terms/creator> "archivist1" .
73
- # <info:fedora/sufia:[fixture id]> <http://purl.org/dc/terms/identifier> "Test" .
74
- #
75
- # Example foxml: (note the ID needs to be unique) (the binary data in the xml below was generated using base64 on the text)
76
- # <?xml version="1.0" encoding="UTF-8"?>
77
- # <foxml:digitalObject PID="sufia:[fixture id]" VERSION="1.1" xmlns:foxml="info:fedora/fedora-system:def/foxml#"
78
- # 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">
79
- # <foxml:objectProperties>
80
- # <foxml:property NAME="info:fedora/fedora-system:def/model#state" VALUE="Active"/>
81
- # <foxml:property NAME="info:fedora/fedora-system:def/model#label" VALUE="testFixture2.txt"/>
82
- # <foxml:property NAME="info:fedora/fedora-system:def/model#ownerId" VALUE="fedoraAdmin"/>
83
- # </foxml:objectProperties>
84
- # <foxml:datastream CONTROL_GROUP="X" ID="DC" STATE="A" VERSIONABLE="true">
85
- # <foxml:datastreamVersion FORMAT_URI="http://www.openarchives.org/OAI/2.0/oai_dc/"
86
- # ID="DC1.0" LABEL="Dublin Core Record for this object" MIMETYPE="text/xml" SIZE="377">
87
- # <foxml:xmlContent>
88
- # <oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/"
89
- # xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
90
- # 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">
91
- # <dc:title>testFixture2.txt</dc:title>
92
- # <dc:identifier>sufia:[fixture id]</dc:identifier>
93
- # </oai_dc:dc>
94
- # </foxml:xmlContent>
95
- # </foxml:datastreamVersion>
96
- # </foxml:datastream>
97
- # <foxml:datastream CONTROL_GROUP="M" ID="descMetadata" STATE="A" VERSIONABLE="true">
98
- # <foxml:datastreamVersion ID="descMetadata.0" LABEL="" MIMETYPE="text/plain">
99
- # <foxml:binaryContent> PGluZm86ZmVkb3JhL2lkOnRlc3QyPiA8aHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL3B1Ymxpc2hl
100
- # cj4gIkNBQyIgLgo8aW5mbzpmZWRvcmEvaWQ6dGVzdDI+IDxodHRwOi8vcHVybC5vcmcvZGMvdGVy
101
- # bXMvZGVzY3JpcHRpb24+ICJUZXN0IEZpeHR1cmUgMiIgLgo8aW5mbzpmZWRvcmEvaWQ6dGVzdDI+
102
- # IDxodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvY3JlYXRlZD4gIjQvNi8yMDEyIiAuCjxpbmZvOmZl
103
- # ZG9yYS9pZDp0ZXN0Mj4gPGh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy9jb250cmlidXRvcj4gIkNB
104
- # QyIgLgo8aW5mbzpmZWRvcmEvaWQ6dGVzdDI+IDxodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvdGl0
105
- # bGU+ICJUZXN0IEZpeHR1cmUgMiAoVGl0bGUpIiAuCjxpbmZvOmZlZG9yYS9pZDp0ZXN0Mj4gPGh0
106
- # dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy9yZWxhdGlvbj4gInRlc3QiIC4KPGluZm86ZmVkb3JhL2lk
107
- # OnRlc3QyPiA8aHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL3N1YmplY3Q+ICJUZXN0aW5nIEZpeHR1
108
- # cmUgMiIgLgo8aW5mbzpmZWRvcmEvaWQ6dGVzdDI+IDxodHRwOi8vcHVybC5vcmcvZGMvdGVybXMv
109
- # bGFuZ3VhZ2U+ICJFbiIgLgo8aW5mbzpmZWRvcmEvaWQ6dGVzdDI+IDxodHRwOi8veG1sbnMuY29t
110
- # L2ZvYWYvMC4xL2Jhc2VkX25lYXI+ICJTdGF0ZSBDb2xsZWdlIiAuCjxpbmZvOmZlZG9yYS9pZDp0
111
- # ZXN0Mj4gPGh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy9yaWdodHM+ICJjYWMiIC4KPGluZm86ZmVk
112
- # b3JhL2lkOnRlc3QyPiA8aHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL2NyZWF0b3I+ICJDQUMiIC4K
113
- # PGluZm86ZmVkb3JhL2lkOnRlc3QyPiA8aHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zL2lkZW50aWZp
114
- # ZXI+ICJmaXh0dXJlIiAuCg==
115
- # </foxml:binaryContent>
116
- # </foxml:datastreamVersion>
117
- # </foxml:datastream>
118
- # <foxml:datastream CONTROL_GROUP="X" ID="RELS-EXT" STATE="A" VERSIONABLE="true">
119
- # <foxml:datastreamVersion ID="RELS-EXT.0"
120
- # LABEL="Fedora Object-to-Object Relationship Metadata" MIMETYPE="application/rdf+xml" SIZE="286">
121
- # <foxml:xmlContent>
122
- # <rdf:RDF xmlns:ns0="info:fedora/fedora-system:def/model#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
123
- # <rdf:Description rdf:about="info:fedora/sufia:[fixture id]">
124
- # <ns0:hasModel rdf:resource="info:fedora/afmodel:GenericFile"/>
125
- # </rdf:Description>
126
- # </rdf:RDF>
127
- # </foxml:xmlContent>
128
- # </foxml:datastreamVersion>
129
- # </foxml:datastream>
130
- # <foxml:datastream CONTROL_GROUP="M" ID="content" STATE="A" VERSIONABLE="true">
131
- # <foxml:datastreamVersion ID="content.0" LABEL="testFixture2.txt"
132
- # MIMETYPE="text/plain" >
133
- # <foxml:binaryContent> VGhpcyBpcyBhIHRlc3QgZml4dHVyZS4gCkJpbmFyeSBkYXRhIGZvciBmaXh0dXJlIDIuCg== </foxml:binaryContent>
134
- # </foxml:datastreamVersion>
135
- # </foxml:datastream>
136
- # <foxml:datastream CONTROL_GROUP="X" ID="rightsMetadata" STATE="A" VERSIONABLE="true">
137
- # <foxml:datastreamVersion ID="rightsMetadata.0" LABEL="" MIMETYPE="text/xml" SIZE="582">
138
- # <foxml:xmlContent>
139
- # <rightsMetadata version="0.1" xmlns="http://hydra-collab.stanford.edu/schemas/rightsMetadata/v1">
140
- # <copyright>
141
- # <human/>
142
- # <machine>
143
- # <uvalicense>no</uvalicense>
144
- # </machine>
145
- # </copyright>
146
- # <access type="discover">
147
- # <human/>
148
- # <machine/>
149
- # </access>
150
- # <access type="read">
151
- # <human/>
152
- # <machine/>
153
- # </access>
154
- # <access type="edit">
155
- # <human/>
156
- # <machine>
157
- # <person>cam156@psu.edu</person>
158
- # </machine>
159
- # </access>
160
- # <embargo>
161
- # <human/>
162
- # <machine/>
163
- # </embargo>
164
- # </rightsMetadata>
165
- # </foxml:xmlContent>
166
- # </foxml:datastreamVersion>
167
- # </foxml:datastream>
168
- # </foxml:digitalObject>
169
- #
170
- #
171
- #
172
-
173
- require 'active_fedora'
174
-
175
- SUFIA_TEST_NS = 'sufia' #this must be the same as id_namespace in the test applications config
176
- namespace :sufia do
177
- namespace :fixtures do
178
- @localDir = File.expand_path("../../spec/fixtures", __FILE__)
179
- @dir = ENV["FIXTURE_DIR"] || 'sufia'
180
-
181
- desc "Create sufia Hydra fixtures for generation and loading"
182
- task :create do
183
- @id = ENV["FIXTURE_ID"] ||'sufia1'
184
- @title = ENV["FIXTURE_TITLE"] || 'sufia test'
185
- @user = ENV["FIXTURE_USER"] || 'archivist1'
186
-
187
- @root ='<%=@localDir%>'
188
-
189
- @inputFoxmlFile = File.join(@localDir, 'sufia_generic_stub.foxml.erb')
190
- @inputDescFile = File.join(@localDir, 'sufia_generic_stub.descMeta.txt')
191
- @inputTxtFile = File.join(@localDir, 'sufia_generic_stub.txt')
192
-
193
- @outputFoxmlFile = File.join(@localDir, @dir, "#{SUFIA_TEST_NS}_#{@id}.foxml.erb")
194
- @outputDescFile = File.join(@localDir, @dir, "#{SUFIA_TEST_NS}_#{@id}.descMeta.txt")
195
- @outputTxtFile = File.join(@localDir, @dir, "#{SUFIA_TEST_NS}_#{@id}.txt")
196
-
197
- run_erb_stub @inputFoxmlFile, @outputFoxmlFile
198
- run_erb_stub @inputDescFile, @outputDescFile
199
- run_erb_stub @inputTxtFile, @outputTxtFile
200
- end
201
-
202
- desc "Generate default sufia Hydra fixtures"
203
- task :generate do
204
- ENV["dir"] = File.join(@localDir, @dir)
205
- fixtures = find_fixtures_erb(@dir)
206
- fixtures.each do |fixture|
207
- unless fixture.include?('generic_stub')
208
- outFile = fixture.sub('foxml.erb','foxml.xml')
209
- File.open(outFile, "w+") do |f|
210
- f.write(ERB.new(get_erb_template fixture).result(binding))
211
- end
212
- end
213
- end
214
- end
215
-
216
- private
217
-
218
- def run_erb_stub(inputFile, outputFile)
219
- File.open(outputFile, "w+") do |f|
220
- f.write(ERB.new(get_erb_template inputFile).result())
221
- end
222
- end
223
-
224
- def find_fixtures_erb(dir)
225
- Dir.glob(File.join(@localDir, dir, '*.foxml.erb'))
226
- end
227
-
228
- def get_erb_template(file)
229
- File.read(file)
230
- end
231
- end
232
- end