sufia 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc608966c9285b346242ba6be80305cc3ee82cad
4
- data.tar.gz: 7be4d8597798945013fdf1c4b6b82dbf267ab041
3
+ metadata.gz: 5c1ede98424a5850d9fc61805d683d009adc137f
4
+ data.tar.gz: b4b58df9eb918d41e5852a5afd4917f7771849d8
5
5
  SHA512:
6
- metadata.gz: 7aa180c10138cd6460044b1271de080662daab0bc355c10e4e64177fc16ec6c3683191733ae2244836feb31ed1b4821cbfa12dfe2183a22fb7a7c55b260618bb
7
- data.tar.gz: 7bc1d454033cc0b2cd9eee243e30d91ddc890bd6745136b966b4025c272d85d34a2a8d88b32b47ff83c8fceb2264462ac5d24e65ad1c95a0699b1739c69d918b
6
+ metadata.gz: a15c15aa6703dfe883f75db875fa8362f6fb3dc3b5589549a75475dfc2b5fbfb7a8ee41bb9bcabadf1c8dbc3f2ef5fb3c41517a60ea046382afdc3f5f81ba291
7
+ data.tar.gz: 6af364e8b6a156ca8fdbbe0dcee00c994192e088fb9a662b087dfb47de2386975534d3c96fa769fcc2bcc61644b78416dc73e0fbc279db85f687ed861e68c235
@@ -1,33 +1,29 @@
1
1
  require 'sufia/single_use_error'
2
2
 
3
3
  class SingleUseLinkController < DownloadsController
4
- before_filter :authenticate_user!, :except => [:show, :download]
4
+ before_filter :authenticate_user!, :except => [:download, :show]
5
+ before_filter :find_file, :only => [:generate_download, :generate_show]
6
+ before_filter :authorize_user!, :only => [:generate_download, :generate_show]
5
7
  skip_filter :normalize_identifier
6
8
  prepend_before_filter :normalize_identifier, :except => [:download, :show]
7
9
  rescue_from Sufia::SingleUseError, :with => :render_single_use_error
8
-
10
+
9
11
  def generate_download
10
- @generic_file = GenericFile.find(params[:id])
11
- authorize! :read, @generic_file
12
12
  @su = SingleUseLink.create_download(params[:id])
13
13
  @link = sufia.download_single_use_link_path(@su.downloadKey)
14
14
  respond_to do |format|
15
15
  format.html
16
16
  format.js {render :js => @link}
17
17
  end
18
-
19
18
  end
20
19
 
21
20
  def generate_show
22
- @generic_file = GenericFile.find(params[:id])
23
- authorize! :read, @generic_file
24
21
  @su = SingleUseLink.create_show(params[:id])
25
22
  @link = sufia.show_single_use_link_path(@su.downloadKey)
26
23
  respond_to do |format|
27
24
  format.html
28
25
  format.js {render :js => @link}
29
26
  end
30
-
31
27
  end
32
28
 
33
29
  def download
@@ -35,13 +31,13 @@ class SingleUseLinkController < DownloadsController
35
31
  link = lookup_hash
36
32
 
37
33
  #grab the item id
38
- id = link.itemId
39
-
34
+ id = link.itemId
35
+
40
36
  #check to make sure the path matches
41
37
  not_found if link.path != sufia.download_path(id)
42
-
38
+
43
39
  # send the data content
44
- asset = ActiveFedora::Base.find(id, :cast=>true)
40
+ asset = GenericFile.find(id)
45
41
  send_content(asset)
46
42
  end
47
43
 
@@ -49,42 +45,50 @@ class SingleUseLinkController < DownloadsController
49
45
  link = lookup_hash
50
46
 
51
47
  #grab the item id
52
- id = link.itemId
53
-
48
+ id = link.itemId
49
+
54
50
  #check to make sure the path matches
55
51
  not_found if link.path != sufia.generic_file_path(id)
56
-
52
+
57
53
  #show the file
58
- @generic_file = GenericFile.find(id)
54
+ @generic_file = GenericFile.load_instance_from_solr(id)
59
55
  @terms = @generic_file.terms_for_display
60
-
56
+
61
57
  # create a dowload link that is single use for the user since we do not just want to show metadata we want to access it too
62
58
  @su = SingleUseLink.create_download(id)
63
59
  @download_link = sufia.download_single_use_link_path(@su.downloadKey)
64
60
  end
65
-
61
+
66
62
  protected
67
-
68
- def lookup_hash
63
+
64
+ def authorize_user!
65
+ authorize! :read, @generic_file
66
+ end
67
+
68
+ def find_file
69
+ @generic_file = GenericFile.load_instance_from_solr(params[:id])
70
+ end
71
+
72
+ def lookup_hash
69
73
  id = params[:id]
70
74
  # invalid hash send not found
71
75
  link = SingleUseLink.find_by_downloadKey(id) || not_found
72
-
76
+
73
77
  # expired hash send not found
74
78
  now = DateTime.now
75
- not_found if link.expires <= now
76
-
79
+ not_found if link.expires <= now
80
+
77
81
  # delete the link since it has been used
78
82
  link.destroy
79
-
83
+
80
84
  return link
81
85
  end
82
-
86
+
83
87
  def not_found
84
- raise Sufia::SingleUseError.new('Single Use Link Not Found')
88
+ raise Sufia::SingleUseError.new('Single-Use Link Not Found')
85
89
  end
90
+
86
91
  def expired
87
- raise Sufia::SingleUseError.new('Single Use Link Expired')
92
+ raise Sufia::SingleUseError.new('Single-Use Link Expired')
88
93
  end
89
-
90
94
  end
@@ -39,6 +39,10 @@ module SufiaHelper
39
39
  return User.find_by_user_key(recent_document.depositor).name rescue recent_document.depositor
40
40
  end
41
41
 
42
+ def number_of_deposits(user)
43
+ ActiveFedora::SolrService.query("#{Solrizer.solr_name('depositor', :stored_searchable, :type => :string)}:#{user.user_key}").count
44
+ end
45
+
42
46
  def link_to_facet(field, field_string)
43
47
  link_to(field, add_facet_params(field_string, field).merge!({"controller" => "catalog", :action=> "index"}))
44
48
  end
@@ -26,10 +26,10 @@ class ChecksumAuditLog < ActiveRecord::Base
26
26
  ## Check to see if there are previous passing logs that we can delete
27
27
  # we want to keep the first passing event after a failure, the most current passing event, and all failures so that this table doesn't grow too large
28
28
  # Simple way (a little naieve): if the last 2 were passing, delete the first one
29
- logs = GenericFile.find(version.pid).logs(version.dsid)
29
+ logs = GenericFile.load_instance_from_solr(version.pid).logs(version.dsid)
30
30
  list = logs.limit(2)
31
31
  if list.size > 1 && (list[0].pass == 1) && (list[1].pass == 1)
32
- list[0].delete
32
+ list[0].delete
33
33
  end
34
34
  end
35
- end
35
+ end
@@ -14,14 +14,12 @@ See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  %>
16
16
 
17
- <!-- scholarsphere over ride -->
18
- <!-- the sub on ':' is b.c. jQuery has trouble with '.' or ':'
19
- on element ids -->
20
17
  <% noid = document.noid %>
21
- <tr id="document_<%= noid.gsub(":", "_") %>" class="<%= cycle("","zebra") %>">
22
- <% gf = GenericFile.find(document.id) %>
18
+ <tr id="document_<%= noid %>" class="<%= cycle("","zebra") %>">
19
+ <% gf = GenericFile.load_instance_from_solr(document.id) %>
23
20
  <td width="6%"><%= batch_edit_select(document) %>&nbsp;</td>
24
21
  <td width="1%">
22
+ <%# This block is for adding/removing the magic wand while batch updates are processing %>
25
23
  <% if gf.processing? %>
26
24
  <i class="icon-magic icon-large <%= 'ss-'+gf.batch.noid%>"/>
27
25
  <% elsif gf.depositor != @user.user_key %>
@@ -29,7 +27,7 @@ on element ids -->
29
27
  <% end %>
30
28
  </td>
31
29
  <td width="37%">
32
- <a href="" title="Click for more details"><i id="expand_<%= noid.gsub(":", "_") %>" class="icon-plus icon-large fleft"></i></a>&nbsp;
30
+ <a href="" title="Click for more details"><i id="expand_<%= noid %>" class="icon-plus icon-large fleft"></i></a>&nbsp;
33
31
  <%= render :partial => 'dashboard/_index_partials/thumbnail_display', :locals => {:document=>document} %>
34
32
  <span class=center><%= link_to document.title_or_label, sufia.generic_file_path(noid), :id => "src_copy_link#{noid}" %> <br /></span>
35
33
  </td>
@@ -67,7 +65,7 @@ on element ids -->
67
65
  </div>
68
66
  </td>
69
67
  </tr>
70
- <tr class="hide" id="detail_<%= noid.gsub(":", "_") %>"> <!-- document detail"> -->
68
+ <tr class="hide" id="detail_<%= noid %>"> <!-- document detail"> -->
71
69
  <td colspan="6">
72
70
  <table class="expanded-details">
73
71
  <tr>
@@ -36,10 +36,9 @@ limitations under the License.
36
36
  <td ><a href="<%= sufia.profile_path(URI.escape(user.user_key,'@.')) %>" ><%= user.name %><a></td>
37
37
  <td><a href="<%= sufia.profile_path(URI.escape(user.user_key,'@.')) %>" ><%= user.user_key %><a></td>
38
38
  <td><%= user.department %> </td>
39
- <td><%= GenericFile.find(:depositor => user.to_s).count %> </td>
39
+ <td><%= number_of_deposits(user) %> </td>
40
40
  </tr>
41
-
42
- <% end %>
41
+ <% end %>
43
42
  </tbody>
44
43
  </table>
45
44
  <div class="pager">
@@ -0,0 +1,8 @@
1
+ <%
2
+ rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
+ rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
+ std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
5
+ %>
6
+ default: <%= std_opts %> features
7
+ wip: --tags @wip:3 --wip features
8
+ rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
@@ -1,7 +1,6 @@
1
1
  # Returns an array containing the vhost 'CoSign service' value and URL
2
2
  Sufia.config do |config|
3
- config.id_namespace = "sufia"
4
- config.fits_path = "fits.sh"
3
+
5
4
  config.fits_to_desc_mapping= {
6
5
  :file_title => :title,
7
6
  :file_author => :creator
@@ -59,14 +58,20 @@ Sufia.config do |config|
59
58
  config.queue = Sufia::Resque::Queue
60
59
 
61
60
  # Map hostnames onto Google Analytics tracking IDs
62
- #config.google_analytics_id = 'UA-99999999-1'
61
+ # config.google_analytics_id = 'UA-99999999-1'
63
62
 
64
63
 
65
64
  # Where to store tempfiles, leave blank for the system temp directory (e.g. /tmp)
66
- #config.temp_file_base = '/home/developer1'
65
+ # config.temp_file_base = '/home/developer1'
67
66
 
68
67
  # If you have ffmpeg installed and want to transcode audio and video uncomment this line
69
- #config.enable_ffmpeg = true
68
+ # config.enable_ffmpeg = true
69
+
70
+ # Specify the Fedora pid prefix:
71
+ # config.id_namespace = "sufia"
72
+
73
+ # Specify the path to the file characterization tool:
74
+ # config.fits_path = "fits.sh"
70
75
 
71
76
  end
72
77
 
@@ -30,11 +30,14 @@ module Sufia
30
30
  config.ffmpeg_path = 'ffmpeg'
31
31
  config.fits_message_length = 5
32
32
  config.temp_file_base = nil
33
+ config.id_namespace = "sufia"
34
+ config.fits_path = "fits.sh"
33
35
 
34
36
  config.autoload_paths += %W(
35
37
  #{config.root}/lib/sufia/jobs
36
38
  #{config.root}/app/controllers/concerns
37
39
  #{config.root}/app/models/concerns
40
+ #{config.root}/app/models/datastreams
38
41
  )
39
42
 
40
43
  initializer "Patch active_fedora" do
@@ -3,7 +3,7 @@ module Sufia
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  def edit
6
- super
6
+ super
7
7
  @generic_file = ::GenericFile.new
8
8
  @generic_file.depositor = current_user.user_key
9
9
  @terms = @generic_file.terms_for_editing - [:title, :format, :resource_type]
@@ -17,13 +17,13 @@ module Sufia
17
17
 
18
18
  # For each of the files in the batch, set the attributes to be the concatination of all the attributes
19
19
  batch.each do |doc_id|
20
- gf = ::GenericFile.find(doc_id)
20
+ gf = ::GenericFile.load_instance_from_solr(doc_id)
21
21
  gf.terms_for_editing.each do |key|
22
22
  h[key] ||= []
23
- h[key] = (h[key] + gf.send(key)).uniq
23
+ h[key] = (h[key] + gf.send(key)).uniq
24
24
  end
25
- @names << display_title(gf)
26
- permissions = (permissions+gf.permissions).uniq
25
+ @names << display_title(gf)
26
+ permissions = (permissions + gf.permissions).uniq
27
27
  end
28
28
 
29
29
  initialize_fields(h, @show_file)
@@ -32,47 +32,46 @@ module Sufia
32
32
  # todo sort the access level some how...
33
33
  perm_param ={'user'=>{},'group'=>{"public"=>"1"}}
34
34
  permissions.each{ |perm| perm_param[perm[:type]][perm[:name]] = perm[:access]}
35
- @show_file.permissions = HashWithIndifferentAccess.new(perm_param)
35
+ @show_file.permissions = HashWithIndifferentAccess.new(perm_param)
36
36
  end
37
37
 
38
- def after_update
39
- redirect_to sufia.dashboard_index_path unless request.xhr?
38
+ def after_update
39
+ redirect_to sufia.dashboard_index_path unless request.xhr?
40
40
  end
41
-
41
+
42
42
  def update_document(obj)
43
43
  super
44
44
  obj.date_modified = Time.now.ctime
45
45
  obj.set_visibility(params[:visibility])
46
46
  end
47
-
47
+
48
48
  def update
49
49
  # keep the batch around if we are doing ajax calls
50
- batch_sav = batch.dup if request.xhr?
50
+ batch_sav = batch.dup if request.xhr?
51
51
  catalog_index_path = sufia.dashboard_index_path
52
52
  type = params["update_type"]
53
- if (type == "update")
54
- #params["generic_file"].reject! {|k,v| (v.blank? || (v.respond_to?(:length) && v.length==1 && v.first.blank?))}
55
- super
56
- elsif (type == "delete_all")
53
+ if type == "update"
54
+ super
55
+ elsif type == "delete_all"
57
56
  batch.each do |doc_id|
58
- gf = ::GenericFile.find(doc_id)
57
+ gf = ::GenericFile.load_instance_from_solr(doc_id)
59
58
  gf.delete
60
59
  end
61
- clear_batch!
60
+ clear_batch!
62
61
  after_update
63
62
  end
64
63
 
65
64
  # reset the batch around if we are doing ajax calls
66
65
  if request.xhr?
67
- self.batch = batch_sav.dup
66
+ self.batch = batch_sav.dup
68
67
  @key = params["key"]
69
- if (@key != "permissions")
70
- @vals = params["generic_file"][@key]
68
+ if @key != "permissions"
69
+ @vals = params["generic_file"][@key]
71
70
  else
72
- @vals = [""]
73
- end
71
+ @vals = [""]
72
+ end
74
73
  render :update_edit
75
- end
74
+ end
76
75
  end
77
76
 
78
77
  protected
@@ -80,10 +79,9 @@ module Sufia
80
79
  # override this method if you need to initialize more complex RDF assertions (b-nodes)
81
80
  def initialize_fields(attributes, file)
82
81
  file.terms_for_editing.each do |key|
83
- # if value is empty, we create an one element array to loop over for output
82
+ # if value is empty, we create an one element array to loop over for output
84
83
  file[key] = attributes[key].empty? ? [''] : attributes[key]
85
84
  end
86
85
  end
87
-
88
86
  end
89
87
  end
@@ -25,13 +25,13 @@ module Sufia
25
25
  end
26
26
 
27
27
  def show
28
- if can? :read, params["id"]
29
- asset = ActiveFedora::Base.find(params[:id], :cast=>true)
28
+ if can? :read, params[:id]
29
+ asset = ActiveFedora::Base.load_instance_from_solr(params[:id])
30
30
  # we can now examine @asset and determine if we should send_content, or some other action.
31
31
  send_content (asset)
32
32
  else
33
- logger.info "Can not read #{params['id']}"
34
- redirect_to "/assets/NoAccess.png"
33
+ logger.info "Can not read #{params[:id]}"
34
+ raise Hydra::AccessDenied.new("You do not have sufficient access privileges to read this document, which has been marked private.", :read, params[:id])
35
35
  end
36
36
  end
37
37
 
@@ -57,12 +57,6 @@ module Sufia
57
57
  @groups = current_user.groups
58
58
  end
59
59
 
60
- # routed to /files/:id
61
- def index
62
- @generic_files = ::GenericFile.find(:all, :rows => ::GenericFile.count)
63
- render :json => @generic_files.map(&:to_jq_upload).to_json
64
- end
65
-
66
60
  # routed to /files/:id (DELETE)
67
61
  def destroy
68
62
  pid = @generic_file.noid
@@ -81,7 +75,7 @@ module Sufia
81
75
  if !file
82
76
  json_error "Error! No file for upload", 'unknown file', :status => :unprocessable_entity
83
77
  elsif (empty_file?(file))
84
- json_error "Error! Zero Length File!", file.original_filename
78
+ json_error "Error! Zero Length File!", file.original_filename
85
79
  elsif (!terms_accepted?)
86
80
  json_error "You must accept the terms of service!", file.original_filename
87
81
  else
@@ -89,7 +83,7 @@ module Sufia
89
83
  end
90
84
  rescue => error
91
85
  logger.error "GenericFilesController::create rescued #{error.class}\n\t#{error.to_s}\n #{error.backtrace.join("\n")}\n\n"
92
- json_error "Error occurred while creating generic file."
86
+ json_error "Error occurred while creating generic file."
93
87
  ensure
94
88
  # remove the tempfile (only if it is a temp file)
95
89
  file.tempfile.delete if file.respond_to?(:tempfile)
@@ -13,13 +13,12 @@ module Sufia
13
13
  autoload :Actions
14
14
  autoload :Permissions
15
15
  include Sufia::ModelMethods
16
- include Sufia::Noid
16
+ include Sufia::Noid
17
17
  include Sufia::GenericFile::Thumbnail
18
18
  include Sufia::GenericFile::Export
19
19
  include Sufia::GenericFile::Characterization
20
20
  include Sufia::GenericFile::Audit
21
21
  include Sufia::GenericFile::Permissions
22
-
23
22
 
24
23
  included do
25
24
  has_metadata :name => "descMetadata", :type => GenericFileRdfDatastream
@@ -35,14 +34,14 @@ module Sufia
35
34
  :contributor, :title, :tag, :description, :rights,
36
35
  :publisher, :date_created, :subject,
37
36
  :resource_type, :identifier, :language]
37
+
38
38
  around_save :characterize_if_changed, :retry_warming
39
39
  before_save :remove_blank_assertions
40
-
41
40
  end
42
41
 
43
42
  def delete
44
- self.cleanup_trophies
45
- super
43
+ self.cleanup_trophies
44
+ super
46
45
  end
47
46
 
48
47
  def remove_blank_assertions
@@ -95,7 +94,7 @@ module Sufia
95
94
  # fail for good if the tries is greater than 3
96
95
  raise if save_tries >=3
97
96
  sleep 0.01
98
- retry
97
+ retry
99
98
  rescue ActiveResource::ResourceConflict => error
100
99
  conflict_tries += 1
101
100
  logger.warn "Retry caught Active Resource Conflict #{self.pid}: #{error.inspect}"
@@ -111,8 +110,7 @@ module Sufia
111
110
  retry
112
111
  else
113
112
  raise
114
- end
115
-
113
+ end
116
114
  end
117
115
  end
118
116
 
@@ -120,7 +118,6 @@ module Sufia
120
118
  Trophy.destroy_all(generic_file_id: self.noid)
121
119
  end
122
120
 
123
-
124
121
  def related_files
125
122
  relateds = begin
126
123
  self.batch.generic_files
@@ -136,7 +133,7 @@ module Sufia
136
133
  # Unstemmed, searchable, stored
137
134
  def self.noid_indexer
138
135
  @noid_indexer ||= Solrizer::Descriptor.new(:text, :indexed, :stored)
139
- end
136
+ end
140
137
 
141
138
  def to_solr(solr_doc={}, opts={})
142
139
  super(solr_doc, opts)
@@ -192,6 +189,5 @@ module Sufia
192
189
  return false if !self.batch.methods.include? :status
193
190
  return (!self.batch.status.empty?) && (self.batch.status.count == 1) && (self.batch.status[0] == "processing")
194
191
  end
195
-
196
192
  end
197
193
  end
@@ -19,18 +19,16 @@ module Sufia
19
19
  title || label
20
20
  end
21
21
 
22
-
23
22
  ##
24
23
  # Give our SolrDocument an ActiveModel::Naming appropriate route_key
25
24
  def route_key
26
- get('has_model_ssim').split(':').last.downcase
25
+ get(Solrizer.solr_name('has_model', :symbol)).split(':').last.downcase
27
26
  end
28
27
 
29
-
30
28
  ##
31
- # Offer the source (ActiveFedora-based) model to Rails for some of the
32
- # Rails methods (e.g. link_to).
33
- # @example
29
+ # Offer the source (ActiveFedora-based) model to Rails for some of the
30
+ # Rails methods (e.g. link_to).
31
+ # @example
34
32
  # link_to '...', SolrDocument(:id => 'bXXXXXX5').new => <a href="/dams_object/bXXXXXX5">...</a>
35
33
  def to_model
36
34
  m = ActiveFedora::Base.load_instance_from_solr(id, self)
@@ -42,7 +40,6 @@ module Sufia
42
40
  self[Solrizer.solr_name('noid', Sufia::GenericFile.noid_indexer)]
43
41
  end
44
42
 
45
-
46
43
  def date_uploaded
47
44
  field = self[Solrizer.solr_name("desc_metadata__date_uploaded", :stored_sortable, type: :date)]
48
45
  return unless field.present?
@@ -53,7 +50,6 @@ module Sufia
53
50
  end
54
51
  end
55
52
 
56
-
57
53
  def depositor(default = '')
58
54
  val = Array(self[Solrizer.solr_name("depositor")]).first
59
55
  val.present? ? val : default
@@ -65,18 +65,13 @@ module Sufia::User
65
65
 
66
66
  # method needed for trophies
67
67
  def trophies
68
- trophies = Trophy.where(user_id:self.id)
68
+ trophies = Trophy.where(:user_id => self.id)
69
69
  return trophies
70
70
  end
71
-
71
+
72
72
  #method to get the trophy ids without the namespace included
73
73
  def trophy_ids
74
- trophies=[]
75
- trophies.each do |t|
76
- @trophies << GenericFile.find("#{Sufia::Engine.config.id_namespace}:#{t.generic_file_id}")
77
-
78
- end
79
- return trophies
74
+ trophies.map { |t| "#{Sufia::Engine.config.id_namespace}:#{t.generic_file_id}" }
80
75
  end
81
76
 
82
77
  # method needed for messaging
@@ -84,7 +79,7 @@ module Sufia::User
84
79
  return nil
85
80
  end
86
81
 
87
- # The basic groups method, override or will fallback to Sufia::Ldap::User
82
+ # The basic groups method, override or will fallback to Sufia::Ldap::User
88
83
  def groups
89
84
  return self.group_list ? self.group_list.split(";?;") : []
90
85
  end
@@ -93,7 +88,7 @@ module Sufia::User
93
88
  @ability ||= Ability.new(self)
94
89
  end
95
90
 
96
- module ClassMethods
91
+ module ClassMethods
97
92
  def current
98
93
  Thread.current[:user]
99
94
  end
@@ -1,3 +1,3 @@
1
1
  module Sufia
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -16,12 +16,6 @@ require 'spec_helper'
16
16
 
17
17
  describe DownloadsController do
18
18
 
19
- describe "routing" do
20
- it "should route" do
21
- assert_recognizes( {:controller=>"downloads", :action=>"show", "id"=>"test1"}, "/downloads/test1?filename=my%20dog.jpg" )
22
- end
23
- end
24
-
25
19
  describe "default_datastream?" do
26
20
  it "should be true when no datastram_id is passed" do
27
21
  controller.should be_default_datastream
@@ -103,7 +97,8 @@ describe DownloadsController do
103
97
  describe "show" do
104
98
  it "should deny access" do
105
99
  get "show", :id => "test1"
106
- response.should redirect_to("/assets/NoAccess.png")
100
+ response.should redirect_to root_path
101
+ flash[:alert].should == "You do not have sufficient access privileges to read this document, which has been marked private."
107
102
  end
108
103
  end
109
104
  end
@@ -33,8 +33,8 @@ describe GenericFilesController do
33
33
  begin
34
34
  Batch.find("sample:batch_id").delete
35
35
  rescue
36
- end
37
- @mock.delete unless @mock.inner_object.class == ActiveFedora::UnsavedDigitalObject
36
+ end
37
+ @mock.delete unless @mock.inner_object.class == ActiveFedora::UnsavedDigitalObject
38
38
  end
39
39
 
40
40
  it "should render error the file wasn't actually a file" do
@@ -279,8 +279,8 @@ describe GenericFile do
279
279
  local[Solrizer.solr_name("desc_metadata__part_of")].should be_nil
280
280
  local[Solrizer.solr_name("desc_metadata__date_uploaded")].should be_nil
281
281
  local[Solrizer.solr_name("desc_metadata__date_modified")].should be_nil
282
- local[Solrizer.solr_name("desc_metadata__date_uploaded", :stored_sortable, type: :date)].should == ['2011-01-01T00:00:00Z']
283
- local[Solrizer.solr_name("desc_metadata__date_modified", :stored_sortable, type: :date)].should == ['2012-01-01T00:00:00Z']
282
+ local[Solrizer.solr_name("desc_metadata__date_uploaded", :stored_sortable, type: :date)].should == '2011-01-01T00:00:00Z'
283
+ local[Solrizer.solr_name("desc_metadata__date_modified", :stored_sortable, type: :date)].should == '2012-01-01T00:00:00Z'
284
284
  local[Solrizer.solr_name("desc_metadata__rights")].should == ["Wide open, buddy."]
285
285
  local[Solrizer.solr_name("desc_metadata__related_url")].should be_nil
286
286
  local[Solrizer.solr_name("desc_metadata__contributor")].should == ["Mohammad"]
@@ -10,6 +10,7 @@ task :ci => ['jetty:config'] do
10
10
  jetty_params = Jettywrapper.load_config
11
11
  error = Jettywrapper.wrap(jetty_params) do
12
12
  Rake::Task['spec'].invoke
13
+ Rake::Task['cucumber:all'].invoke
13
14
  end
14
15
  raise "test failures: #{error}" if error
15
16
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sufia
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-01 00:00:00.000000000 Z
11
+ date: 2013-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -335,7 +335,6 @@ files:
335
335
  - LICENSE.md
336
336
  - README.md
337
337
  - Rakefile
338
- - app/assets/images/NoAccess.png
339
338
  - app/assets/images/blacklight/bg.png
340
339
  - app/assets/images/blacklight/border.png
341
340
  - app/assets/images/blacklight/bul_sq_gry.gif
@@ -637,6 +636,7 @@ files:
637
636
  - app/views/users/notifications_number.js.erb
638
637
  - app/views/users/show.html.erb
639
638
  - bin/audit_repository
639
+ - config/cucumber.yml
640
640
  - config/jetty.yml
641
641
  - config/locales/sufia.en.yml
642
642
  - config/routes.rb
@@ -1003,3 +1003,4 @@ test_files:
1003
1003
  - spec/views/single_user_link/generate_download.html.erb_spec.rb
1004
1004
  - spec/views/single_user_link/generate_show.html.erb_spec.rb
1005
1005
  - spec/views/single_user_link/show.html.erb_spec.rb
1006
+ has_rdoc: