krikri 0.10.1 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/app/models/krikri/original_record.rb +1 -0
  3. data/lib/krikri/async_uri_getter.rb +127 -0
  4. data/lib/krikri/engine.rb +18 -0
  5. data/lib/krikri/ldp.rb +3 -2
  6. data/lib/krikri/ldp/invalidatable.rb +107 -0
  7. data/lib/krikri/ldp/rdf_source.rb +24 -6
  8. data/lib/krikri/ldp/resource.rb +22 -1
  9. data/lib/krikri/map_crosswalk.rb +5 -2
  10. data/lib/krikri/version.rb +1 -1
  11. data/spec/internal/Gemfile.lock +4 -4
  12. data/spec/internal/config/initializers/blacklight_initializer.rb +1 -1
  13. data/spec/internal/config/initializers/devise.rb +2 -2
  14. data/spec/internal/config/secrets.yml +2 -2
  15. data/spec/internal/db/development.sqlite3 +0 -0
  16. data/spec/internal/db/migrate/{20151222175607_devise_create_users.rb → 20160113172004_devise_create_users.rb} +0 -0
  17. data/spec/internal/db/migrate/{20151222175629_create_searches.blacklight.rb → 20160113172024_create_searches.blacklight.rb} +0 -0
  18. data/spec/internal/db/migrate/{20151222175630_create_bookmarks.blacklight.rb → 20160113172025_create_bookmarks.blacklight.rb} +0 -0
  19. data/spec/internal/db/migrate/{20151222175631_add_polymorphic_type_to_bookmarks.blacklight.rb → 20160113172026_add_polymorphic_type_to_bookmarks.blacklight.rb} +0 -0
  20. data/spec/internal/db/schema.rb +1 -1
  21. data/spec/internal/db/test.sqlite3 +0 -0
  22. data/spec/internal/log/development.log +84 -84
  23. data/spec/internal/log/test.log +5709 -3532
  24. data/spec/lib/krikri/async_uri_getter_spec.rb +106 -0
  25. data/spec/lib/krikri/map_crosswalk_spec.rb +18 -0
  26. data/spec/lib/krikri/search_index_spec.rb +22 -14
  27. data/spec/models/dpla/map/aggregation_spec.rb +21 -0
  28. data/spec/models/original_record_spec.rb +3 -0
  29. data/spec/support/shared_contexts/entities_query.rb +1 -0
  30. data/spec/support/shared_examples/ldp_invalidatable.rb +98 -0
  31. data/spec/support/shared_examples/rdf_source.rb +2 -1
  32. metadata +18 -184
  33. data/spec/internal/db/test.sqlite3-journal +0 -0
  34. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_alerts.scssc +0 -0
  35. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_background-variant.scssc +0 -0
  36. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_border-radius.scssc +0 -0
  37. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_buttons.scssc +0 -0
  38. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_center-block.scssc +0 -0
  39. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_clearfix.scssc +0 -0
  40. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_forms.scssc +0 -0
  41. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_gradients.scssc +0 -0
  42. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_grid-framework.scssc +0 -0
  43. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_grid.scssc +0 -0
  44. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_hide-text.scssc +0 -0
  45. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_image.scssc +0 -0
  46. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_labels.scssc +0 -0
  47. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_list-group.scssc +0 -0
  48. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_nav-divider.scssc +0 -0
  49. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_nav-vertical-align.scssc +0 -0
  50. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_opacity.scssc +0 -0
  51. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_pagination.scssc +0 -0
  52. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_panels.scssc +0 -0
  53. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_progress-bar.scssc +0 -0
  54. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_reset-filter.scssc +0 -0
  55. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_resize.scssc +0 -0
  56. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_responsive-visibility.scssc +0 -0
  57. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_size.scssc +0 -0
  58. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_tab-focus.scssc +0 -0
  59. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_table-row.scssc +0 -0
  60. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_text-emphasis.scssc +0 -0
  61. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_text-overflow.scssc +0 -0
  62. data/spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_vendor-prefixes.scssc +0 -0
  63. data/spec/internal/tmp/cache/assets/test/sass/93e201cf4a11978a1f491a057a3bd569c3825210/blacklight.css.scssc +0 -0
  64. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_alerts.scssc +0 -0
  65. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_badges.scssc +0 -0
  66. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_breadcrumbs.scssc +0 -0
  67. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_button-groups.scssc +0 -0
  68. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_buttons.scssc +0 -0
  69. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_carousel.scssc +0 -0
  70. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_close.scssc +0 -0
  71. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_code.scssc +0 -0
  72. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_component-animations.scssc +0 -0
  73. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_dropdowns.scssc +0 -0
  74. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_forms.scssc +0 -0
  75. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_glyphicons.scssc +0 -0
  76. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_grid.scssc +0 -0
  77. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_input-groups.scssc +0 -0
  78. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_jumbotron.scssc +0 -0
  79. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_labels.scssc +0 -0
  80. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_list-group.scssc +0 -0
  81. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_media.scssc +0 -0
  82. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_mixins.scssc +0 -0
  83. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_modals.scssc +0 -0
  84. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_navbar.scssc +0 -0
  85. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_navs.scssc +0 -0
  86. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_normalize.scssc +0 -0
  87. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_pager.scssc +0 -0
  88. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_pagination.scssc +0 -0
  89. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_panels.scssc +0 -0
  90. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_popovers.scssc +0 -0
  91. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_print.scssc +0 -0
  92. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_progress-bars.scssc +0 -0
  93. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_responsive-embed.scssc +0 -0
  94. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_responsive-utilities.scssc +0 -0
  95. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_scaffolding.scssc +0 -0
  96. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_tables.scssc +0 -0
  97. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_thumbnails.scssc +0 -0
  98. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_tooltip.scssc +0 -0
  99. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_type.scssc +0 -0
  100. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_utilities.scssc +0 -0
  101. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_variables.scssc +0 -0
  102. data/spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_wells.scssc +0 -0
  103. data/spec/internal/tmp/cache/assets/test/sass/b28605b1c659cf09fc72f3c1fff32918869d28b8/_bootstrap-sprockets.scssc +0 -0
  104. data/spec/internal/tmp/cache/assets/test/sass/b28605b1c659cf09fc72f3c1fff32918869d28b8/_bootstrap.scssc +0 -0
  105. data/spec/internal/tmp/cache/assets/test/sass/ca8c12d03785e0d6cd4554f4d3939e7836d38282/_blacklight_base.scssc +0 -0
  106. data/spec/internal/tmp/cache/assets/test/sass/ca8c12d03785e0d6cd4554f4d3939e7836d38282/blacklight.scssc +0 -0
  107. data/spec/internal/tmp/cache/assets/test/sprockets/4052820c15af72ba690230a0f92bd75e +0 -0
  108. data/spec/internal/tmp/cache/assets/test/sprockets/496a0d7dce1ff6bf4a9c3a089ea3a635 +0 -0
  109. data/spec/internal/tmp/cache/assets/test/sprockets/50b9db0b908b421a9b941a445dbaeacc +0 -0
  110. data/spec/internal/tmp/cache/assets/test/sprockets/528c628cf107f8be6dd122e1154344be +0 -0
  111. data/spec/internal/tmp/cache/assets/test/sprockets/8edfca9082e02111be92e79000667f22 +0 -0
  112. data/spec/internal/tmp/cache/assets/test/sprockets/90b54a819800edfa41b67722d1561040 +0 -0
  113. data/spec/internal/tmp/cache/assets/test/sprockets/9c653367feff82588eb6041d783a5809 +0 -0
  114. data/spec/internal/tmp/cache/assets/test/sprockets/b35e12934e9f05662777579549e31cd7 +0 -0
  115. data/spec/internal/tmp/cache/assets/test/sprockets/bb108ef3fc4c96d1c20cc41f97d943a0 +0 -0
  116. data/spec/internal/tmp/cache/assets/test/sprockets/dbba4bbc32c17ade3d618c5d0baeb371 +0 -0
  117. data/spec/internal/tmp/cache/assets/test/sprockets/e9f7ccc553ce1a217709cc7a08cfb032 +0 -0
  118. data/spec/internal/tmp/cache/assets/test/sprockets/f274b5f22db177b6464b50691d531688 +0 -0
@@ -0,0 +1,106 @@
1
+ require 'spec_helper'
2
+
3
+ # Adding this to make sure the exception classes are available no matter which
4
+ # order the tests run in.
5
+ require 'faraday_middleware/response/follow_redirects'
6
+
7
+ describe Krikri::AsyncUriGetter do
8
+ subject { described_class.new }
9
+
10
+ let(:test_uri) { URI.parse('http://example.com') }
11
+
12
+ it 'fetches URLs from a new thread' do
13
+ main_thread = Thread.current
14
+
15
+ # extra check to avoid succeeding with a false positive
16
+ test_hit = false
17
+ WebMock.after_request do |request_signature, _|
18
+ if request_signature.uri.to_s.start_with?(test_uri.to_s)
19
+ test_hit = true
20
+ expect(Thread.current).to_not be(main_thread)
21
+ end
22
+ end
23
+ end
24
+
25
+ it 'retries on request failure' do
26
+ stub_request(:get, test_uri)
27
+ .to_raise(Faraday::ConnectionFailed)
28
+ .to_return(:status => 200, :body => 'No problem!', :headers => {})
29
+
30
+ subject.add_request(uri: test_uri).with_response do |r|
31
+ expect(r.status).to eq(200)
32
+ expect(r.body).to eq('No problem!')
33
+ end
34
+ end
35
+
36
+ it 'sends supplied HTTP headers with the request' do
37
+ test_headers = { 'X-Test-Header' => 'true' }
38
+
39
+ stub_request(:get, test_uri)
40
+ .with(:headers => test_headers)
41
+ .to_return(status: 200, body: 'OK')
42
+
43
+ subject.add_request(uri: test_uri, headers: test_headers).join
44
+ end
45
+
46
+ it 'follows HTTP redirects if requested' do
47
+ stub_request(:get, test_uri)
48
+ .to_return(status: 301, headers: { 'Location' => test_uri.to_s })
49
+ .to_return(status: 200, body: 'OK')
50
+
51
+ r = subject.add_request(uri: test_uri, opts: { follow_redirects: true })
52
+
53
+ r.with_response do |response|
54
+ expect(response.body).to eq('OK')
55
+ end
56
+ end
57
+
58
+ it 'returns the HTTP redirect response if requested' do
59
+ stub_request(:get, test_uri)
60
+ .to_return(status: 301, headers: { 'Location' => test_uri.to_s })
61
+
62
+ r = subject.add_request(uri: test_uri, opts: { follow_redirects: false })
63
+
64
+ r.with_response do |response|
65
+ expect(response.status).to eq(301)
66
+ expect(response.headers['Location']).to eq(test_uri.to_s)
67
+ end
68
+ end
69
+
70
+ it 'aborts when the redirect limit is hit' do
71
+ stub_request(:get, test_uri)
72
+ .to_return(status: 301, headers: { 'Location' => test_uri.to_s })
73
+
74
+ r = subject.add_request(uri: test_uri, opts: { follow_redirects: true })
75
+
76
+ expect { r.join }
77
+ .to raise_error(FaradayMiddleware::RedirectLimitReached)
78
+ end
79
+
80
+ it 'passes HTTP error responses to #with_response as normal' do
81
+ stub_request(:get, test_uri)
82
+ .to_return(status: 500, body: 'Something terrible happened')
83
+
84
+ subject.add_request(uri: test_uri).with_response do |r|
85
+ expect(r.status).to eq(500)
86
+ end
87
+ end
88
+
89
+ context 'exception propagation' do
90
+ before(:each) do
91
+ stub_request(:get, test_uri)
92
+ .to_raise(Faraday::ConnectionFailed)
93
+ end
94
+
95
+ it 'propagates exceptions to the calling thread when #join is called' do
96
+ r = subject.add_request(uri: test_uri)
97
+ expect { r.join }.to raise_error(Faraday::ConnectionFailed)
98
+ end
99
+
100
+ it 'propagates exceptions when the response is requested' do
101
+ r = subject.add_request(uri: test_uri)
102
+ expect { r.with_response { |_| } }
103
+ .to raise_error(Faraday::ConnectionFailed)
104
+ end
105
+ end
106
+ end
@@ -114,9 +114,26 @@ describe Krikri::MapCrosswalk::CrosswalkHashBuilder do
114
114
  .to eq 'eng'
115
115
  end
116
116
  end
117
+
118
+ context 'with timespan containing prefLabel' do
119
+ before do
120
+ aggregation.sourceResource.first.date.first.prefLabel = prefLabel
121
+ subject.build
122
+ end
123
+
124
+ let(:prefLabel) { '1969' }
125
+
126
+ it 'has a displayDate' do
127
+ expect(subject.hash[:sourceResource][:date].first[:displayDate])
128
+ .to eq prefLabel
129
+ end
130
+ end
117
131
 
118
132
  context 'with mistyped values' do
119
133
  before do
134
+ # Currently, the factory in dpla_map for the dpla:SourceResource
135
+ # creates a dcterms:temporal that has a literal value, so nothing
136
+ # needs to be modified here
120
137
  aggregation.hasView = 'NOT REAL'
121
138
  aggregation.sourceResource.first.genre << 'not a resource!'
122
139
  subject.build
@@ -129,6 +146,7 @@ describe Krikri::MapCrosswalk::CrosswalkHashBuilder do
129
146
 
130
147
  it 'excludes expected objects' do
131
148
  expect(subject.hash[:hasView]).to be_nil
149
+ expect(subject.hash[:sourceResource][:temporal]).to be_nil
132
150
  end
133
151
  end
134
152
  end
@@ -193,14 +193,14 @@ end
193
193
 
194
194
 
195
195
  describe Krikri::ProdSearchIndex do
196
- before { allow(Krikri::Settings).to receive(:elasticsearch).and_return(opts) }
196
+ context 'with arguments to #initialize' do
197
+ before { allow(Krikri::Settings).to receive(:elasticsearch).and_return(opts) }
197
198
 
198
- let(:opts) do
199
- { host: 'http://example.org/moomin-index',
200
- index_name: 'moomin' }
201
- end
199
+ let(:opts) do
200
+ { host: 'http://example.org/moomin-index',
201
+ index_name: 'moomin' }
202
+ end
202
203
 
203
- context 'with arguments to #initialize' do
204
204
  describe '#initialize' do
205
205
  context 'with default options' do
206
206
  it 'passes options to the ElasticSearch client' do
@@ -269,15 +269,23 @@ describe Krikri::ProdSearchIndex do
269
269
  let(:activity) { Krikri::Activity.find_by_id(3) }
270
270
  let(:generator_uri) { 'http://localhost:8983/marmotta/ldp/activity/3' }
271
271
 
272
+ define :be_es_response_with_items do |*expected|
273
+ expected = expected.first.to_a if expected.first.is_a? Enumerable
274
+
275
+ match do |actual|
276
+ actual_ids = actual['items'].map { |item| item['index']['_id'] }
277
+
278
+ expected.each { |item| expect(actual_ids).to include item.dpla_id }
279
+ end
280
+ end
281
+
282
+ it 'succeeds at connecting' do
283
+ expect { subject.update_from_activity(activity) }.to_not raise_error
284
+ end
285
+
272
286
  it 'updates records affected by an activity' do
273
- # TODO: remove this mock when
274
- # Krikri::ProdSearchIndex#hash_for_index_schema is complete.
275
- allow_any_instance_of(Krikri::ProdSearchIndex)
276
- .to receive(:hash_for_index_schema)
277
- .and_return(MAP3_JSON_HASH)
278
- expect do
279
- subject.update_from_activity(activity)
280
- end.to_not raise_error
287
+ expect(subject.update_from_activity(activity))
288
+ .to be_es_response_with_items(activity.entities)
281
289
  end
282
290
  end
283
291
  end
@@ -78,6 +78,27 @@ describe DPLA::MAP::Aggregation do
78
78
  end
79
79
  end
80
80
 
81
+ describe '#dpla_id' do
82
+ it 'is nil for a bnode' do
83
+ expect(subject.dpla_id).to be_nil
84
+ end
85
+
86
+ it 'matches local name in URI' do
87
+ ln = '123'
88
+ subject.set_subject!(ln)
89
+
90
+ expect(subject.dpla_id).to eq ln
91
+ end
92
+
93
+ it 'raises an error when a non-dpla uri is present' do
94
+ bad_uri = 'http://example.org/not-dpla/moomin'
95
+ subject.set_subject!(bad_uri)
96
+
97
+ expect { subject.dpla_id }
98
+ .to raise_error Krikri::Engine::NamespaceError
99
+ end
100
+ end
101
+
81
102
  describe '#original_record' do
82
103
 
83
104
  context 'with original record' do
@@ -2,6 +2,9 @@ require 'spec_helper'
2
2
 
3
3
  describe Krikri::OriginalRecord do
4
4
  it_behaves_like 'an LDP Resource'
5
+ it_behaves_like 'an invalidatable resource' do
6
+ subject { described_class.build(identifier, record) }
7
+ end
5
8
 
6
9
  include_context 'clear repository'
7
10
 
@@ -17,6 +17,7 @@ shared_context 'entities query' do
17
17
  allow(DPLA::MAP::Aggregation).to receive(:new)
18
18
  .with(solution.record.to_s)
19
19
  .and_return(aggregation)
20
+ aggregation.set_subject!('aggregation_uri')
20
21
  allow(aggregation).to receive(:get).and_return(true)
21
22
  end
22
23
  end
@@ -0,0 +1,98 @@
1
+ shared_examples 'an invalidatable resource' do
2
+ describe '#invalidate!' do
3
+ it 'raises an error' do
4
+ expect { subject.invalidate! }
5
+ .to raise_error('Cannot invalidate ' \
6
+ "#{subject.rdf_subject}, does not exist.")
7
+ end
8
+
9
+ it 'does not add triples' do
10
+ expect { begin; subject.invalidate!; rescue; end }
11
+ .not_to change { subject.rdf_source.statements.to_a }
12
+ end
13
+
14
+ context 'with URI subject' do
15
+ include_context 'clear repository'
16
+ include_context 'with RDF subject'
17
+
18
+ before do
19
+ if subject.rdf_subject.nil?
20
+ allow(subject)
21
+ .to receive(:rdf_subject)
22
+ .and_return(subject.rdf_source.rdf_subject / '.xml')
23
+ end
24
+ end
25
+
26
+ it 'raises an error' do
27
+ expect { subject.invalidate! }
28
+ .to raise_error('Cannot invalidate ' \
29
+ "#{subject.rdf_subject}, does not exist.")
30
+ end
31
+
32
+ context 'when saved' do
33
+ before { subject.save }
34
+
35
+ it 'invalidates the subject' do
36
+ expect { subject.invalidate! }.to change { subject.invalidated? }.to(true)
37
+ end
38
+
39
+ it 'sets prov:wasInvalidatedBy' do
40
+ uri = RDF::URI('http://example.org/groak')
41
+
42
+ expect { subject.invalidate!(uri) }
43
+ .to change { subject.was_invalidated_by }.to(uri)
44
+ end
45
+
46
+ context 'and invalidated' do
47
+ before { subject.invalidate! }
48
+
49
+ it 'raises an error' do
50
+ expect { subject.invalidate! }
51
+ .to raise_error('Cannot invalidate ' \
52
+ "#{subject.rdf_subject}, already invalid.")
53
+ end
54
+
55
+ it 'ignores when ignore_invalid is given' do
56
+ expect { subject.invalidate!(nil, true) }
57
+ .not_to raise_error
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+
64
+ describe '#invalidated?' do
65
+ it 'gives appropriate boolean value' do
66
+ st = [RDF::URI(subject.rdf_subject), RDF::PROV.invalidatedAtTime, DateTime.now]
67
+
68
+ expect { subject.rdf_source << st }
69
+ .to change { subject.invalidated? }.from(false).to(true)
70
+ end
71
+ end
72
+
73
+ describe '#invalidated_at_time' do
74
+ it 'is nil' do
75
+ expect(subject.invalidated_at_time).to be_nil
76
+ end
77
+
78
+ context 'when invalidated' do
79
+ it 'gives invalidated time' do
80
+ time = DateTime.now
81
+ st = [RDF::URI(subject.rdf_subject), RDF::PROV.invalidatedAtTime, time]
82
+
83
+ expect { subject.rdf_source << st }
84
+ .to change { subject.invalidated_at_time }.to(time)
85
+ end
86
+ end
87
+
88
+ describe '#was_invalidated_by' do
89
+ it 'gives prov:wasInvalidatedBy' do
90
+ uri = RDF::URI('http://example.org/groak')
91
+ st = [RDF::URI(subject.rdf_subject), RDF::PROV.wasInvalidatedBy, uri]
92
+
93
+ expect { subject.rdf_source << st }
94
+ .to change { subject.was_invalidated_by }.from(nil).to(uri)
95
+ end
96
+ end
97
+ end
98
+ end
@@ -1,5 +1,6 @@
1
1
  shared_examples 'an LDP RDFSource' do
2
2
  it_behaves_like 'an LDP Resource'
3
+ it_behaves_like 'an invalidatable resource'
3
4
 
4
5
  include_context 'clear repository'
5
6
 
@@ -109,7 +110,7 @@ shared_examples 'an LDP RDFSource' do
109
110
  subject.get
110
111
  statements.each { |s| expect(subject.statements).to include s }
111
112
  end
112
-
113
+
113
114
  context 'with long multi-line literals' do
114
115
  let(:statements) do
115
116
  [RDF::Statement(subject, RDF::DC.description, "#{'0' * 10000}\n'blah'")]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: krikri
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Audrey Altman
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-12-22 00:00:00.000000000 Z
14
+ date: 2016-01-13 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -89,14 +89,14 @@ dependencies:
89
89
  requirements:
90
90
  - - '='
91
91
  - !ruby/object:Gem::Version
92
- version: 4.0.0.0.pre.12
92
+ version: 4.0.0.0.pre.13
93
93
  type: :runtime
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - '='
98
98
  - !ruby/object:Gem::Version
99
- version: 4.0.0.0.pre.12
99
+ version: 4.0.0.0.pre.13
100
100
  - !ruby/object:Gem::Dependency
101
101
  name: rest-client
102
102
  requirement: !ruby/object:Gem::Requirement
@@ -485,6 +485,7 @@ files:
485
485
  - lib/generators/krikri/templates/schema.xml
486
486
  - lib/generators/krikri/templates/solrconfig.xml
487
487
  - lib/krikri.rb
488
+ - lib/krikri/async_uri_getter.rb
488
489
  - lib/krikri/engine.rb
489
490
  - lib/krikri/enricher.rb
490
491
  - lib/krikri/enrichments.rb
@@ -527,6 +528,7 @@ files:
527
528
  - lib/krikri/job.rb
528
529
  - lib/krikri/ldp.rb
529
530
  - lib/krikri/ldp/container.rb~
531
+ - lib/krikri/ldp/invalidatable.rb
530
532
  - lib/krikri/ldp/nr_source.rb~
531
533
  - lib/krikri/ldp/rdf_source.rb
532
534
  - lib/krikri/ldp/rdf_source.rb~
@@ -642,14 +644,13 @@ files:
642
644
  - spec/internal/config/secrets.yml
643
645
  - spec/internal/config/solr.yml
644
646
  - spec/internal/db/development.sqlite3
645
- - spec/internal/db/migrate/20151222175607_devise_create_users.rb
646
- - spec/internal/db/migrate/20151222175629_create_searches.blacklight.rb
647
- - spec/internal/db/migrate/20151222175630_create_bookmarks.blacklight.rb
648
- - spec/internal/db/migrate/20151222175631_add_polymorphic_type_to_bookmarks.blacklight.rb
647
+ - spec/internal/db/migrate/20160113172004_devise_create_users.rb
648
+ - spec/internal/db/migrate/20160113172024_create_searches.blacklight.rb
649
+ - spec/internal/db/migrate/20160113172025_create_bookmarks.blacklight.rb
650
+ - spec/internal/db/migrate/20160113172026_add_polymorphic_type_to_bookmarks.blacklight.rb
649
651
  - spec/internal/db/schema.rb
650
652
  - spec/internal/db/seeds.rb
651
653
  - spec/internal/db/test.sqlite3
652
- - spec/internal/db/test.sqlite3-journal
653
654
  - spec/internal/lib/generators/test_app_generator.rb
654
655
  - spec/internal/lib/generators/test_app_generator.rb~
655
656
  - spec/internal/log/development.log
@@ -664,91 +665,6 @@ files:
664
665
  - spec/internal/test/factories/users.rb
665
666
  - spec/internal/test/models/user_test.rb
666
667
  - spec/internal/test/test_helper.rb
667
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_alerts.scssc
668
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_background-variant.scssc
669
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_border-radius.scssc
670
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_buttons.scssc
671
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_center-block.scssc
672
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_clearfix.scssc
673
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_forms.scssc
674
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_gradients.scssc
675
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_grid-framework.scssc
676
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_grid.scssc
677
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_hide-text.scssc
678
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_image.scssc
679
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_labels.scssc
680
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_list-group.scssc
681
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_nav-divider.scssc
682
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_nav-vertical-align.scssc
683
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_opacity.scssc
684
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_pagination.scssc
685
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_panels.scssc
686
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_progress-bar.scssc
687
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_reset-filter.scssc
688
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_resize.scssc
689
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_responsive-visibility.scssc
690
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_size.scssc
691
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_tab-focus.scssc
692
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_table-row.scssc
693
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_text-emphasis.scssc
694
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_text-overflow.scssc
695
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_vendor-prefixes.scssc
696
- - spec/internal/tmp/cache/assets/test/sass/93e201cf4a11978a1f491a057a3bd569c3825210/blacklight.css.scssc
697
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_alerts.scssc
698
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_badges.scssc
699
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_breadcrumbs.scssc
700
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_button-groups.scssc
701
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_buttons.scssc
702
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_carousel.scssc
703
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_close.scssc
704
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_code.scssc
705
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_component-animations.scssc
706
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_dropdowns.scssc
707
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_forms.scssc
708
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_glyphicons.scssc
709
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_grid.scssc
710
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_input-groups.scssc
711
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_jumbotron.scssc
712
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_labels.scssc
713
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_list-group.scssc
714
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_media.scssc
715
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_mixins.scssc
716
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_modals.scssc
717
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_navbar.scssc
718
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_navs.scssc
719
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_normalize.scssc
720
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_pager.scssc
721
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_pagination.scssc
722
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_panels.scssc
723
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_popovers.scssc
724
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_print.scssc
725
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_progress-bars.scssc
726
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_responsive-embed.scssc
727
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_responsive-utilities.scssc
728
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_scaffolding.scssc
729
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_tables.scssc
730
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_thumbnails.scssc
731
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_tooltip.scssc
732
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_type.scssc
733
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_utilities.scssc
734
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_variables.scssc
735
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_wells.scssc
736
- - spec/internal/tmp/cache/assets/test/sass/b28605b1c659cf09fc72f3c1fff32918869d28b8/_bootstrap-sprockets.scssc
737
- - spec/internal/tmp/cache/assets/test/sass/b28605b1c659cf09fc72f3c1fff32918869d28b8/_bootstrap.scssc
738
- - spec/internal/tmp/cache/assets/test/sass/ca8c12d03785e0d6cd4554f4d3939e7836d38282/_blacklight_base.scssc
739
- - spec/internal/tmp/cache/assets/test/sass/ca8c12d03785e0d6cd4554f4d3939e7836d38282/blacklight.scssc
740
- - spec/internal/tmp/cache/assets/test/sprockets/4052820c15af72ba690230a0f92bd75e
741
- - spec/internal/tmp/cache/assets/test/sprockets/496a0d7dce1ff6bf4a9c3a089ea3a635
742
- - spec/internal/tmp/cache/assets/test/sprockets/50b9db0b908b421a9b941a445dbaeacc
743
- - spec/internal/tmp/cache/assets/test/sprockets/528c628cf107f8be6dd122e1154344be
744
- - spec/internal/tmp/cache/assets/test/sprockets/8edfca9082e02111be92e79000667f22
745
- - spec/internal/tmp/cache/assets/test/sprockets/90b54a819800edfa41b67722d1561040
746
- - spec/internal/tmp/cache/assets/test/sprockets/9c653367feff82588eb6041d783a5809
747
- - spec/internal/tmp/cache/assets/test/sprockets/b35e12934e9f05662777579549e31cd7
748
- - spec/internal/tmp/cache/assets/test/sprockets/bb108ef3fc4c96d1c20cc41f97d943a0
749
- - spec/internal/tmp/cache/assets/test/sprockets/dbba4bbc32c17ade3d618c5d0baeb371
750
- - spec/internal/tmp/cache/assets/test/sprockets/e9f7ccc553ce1a217709cc7a08cfb032
751
- - spec/internal/tmp/cache/assets/test/sprockets/f274b5f22db177b6464b50691d531688
752
668
  - spec/krikri_spec.rb
753
669
  - spec/krikri_spec.rb~
754
670
  - spec/ldp/active_triples_spec.rb~
@@ -758,6 +674,7 @@ files:
758
674
  - spec/ldp/resource_spec.rb
759
675
  - spec/ldp/resource_spec.rb~
760
676
  - spec/lib/krikri/aggregation_entity_behavior_spec.rb
677
+ - spec/lib/krikri/async_uri_getter_spec.rb
761
678
  - spec/lib/krikri/enricher_spec.rb
762
679
  - spec/lib/krikri/enrichment_agent_spec.rb~
763
680
  - spec/lib/krikri/enrichments/convert_to_sentence_case_spec.rb
@@ -888,6 +805,7 @@ files:
888
805
  - spec/support/shared_examples/harvest_behavior.rb~
889
806
  - spec/support/shared_examples/harvester.rb
890
807
  - spec/support/shared_examples/job.rb~
808
+ - spec/support/shared_examples/ldp_invalidatable.rb
891
809
  - spec/support/shared_examples/ldp_resource.rb
892
810
  - spec/support/shared_examples/ldp_resource.rb~
893
811
  - spec/support/shared_examples/mapping_dsl.rb
@@ -992,6 +910,7 @@ test_files:
992
910
  - spec/lib/krikri/provenance_query_client_spec.rb~
993
911
  - spec/lib/krikri/entity_consumer_spec.rb
994
912
  - spec/lib/krikri/md5_minter_spec.rb
913
+ - spec/lib/krikri/async_uri_getter_spec.rb
995
914
  - spec/lib/krikri/md5_minter_spec.rb~
996
915
  - spec/lib/krikri/mapper_agent_spec.rb~
997
916
  - spec/lib/krikri/registry_spec.rb
@@ -1051,91 +970,6 @@ test_files:
1051
970
  - spec/views/krikri/qa_reports/show.html.erb_spec.rb
1052
971
  - spec/views/krikri/qa_reports/show.html.erb_spec.rb~
1053
972
  - spec/krikri_spec.rb~
1054
- - spec/internal/tmp/cache/assets/test/sprockets/b35e12934e9f05662777579549e31cd7
1055
- - spec/internal/tmp/cache/assets/test/sprockets/bb108ef3fc4c96d1c20cc41f97d943a0
1056
- - spec/internal/tmp/cache/assets/test/sprockets/90b54a819800edfa41b67722d1561040
1057
- - spec/internal/tmp/cache/assets/test/sprockets/9c653367feff82588eb6041d783a5809
1058
- - spec/internal/tmp/cache/assets/test/sprockets/4052820c15af72ba690230a0f92bd75e
1059
- - spec/internal/tmp/cache/assets/test/sprockets/8edfca9082e02111be92e79000667f22
1060
- - spec/internal/tmp/cache/assets/test/sprockets/e9f7ccc553ce1a217709cc7a08cfb032
1061
- - spec/internal/tmp/cache/assets/test/sprockets/f274b5f22db177b6464b50691d531688
1062
- - spec/internal/tmp/cache/assets/test/sprockets/dbba4bbc32c17ade3d618c5d0baeb371
1063
- - spec/internal/tmp/cache/assets/test/sprockets/50b9db0b908b421a9b941a445dbaeacc
1064
- - spec/internal/tmp/cache/assets/test/sprockets/528c628cf107f8be6dd122e1154344be
1065
- - spec/internal/tmp/cache/assets/test/sprockets/496a0d7dce1ff6bf4a9c3a089ea3a635
1066
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_mixins.scssc
1067
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_pager.scssc
1068
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_navs.scssc
1069
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_badges.scssc
1070
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_media.scssc
1071
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_grid.scssc
1072
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_tooltip.scssc
1073
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_jumbotron.scssc
1074
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_wells.scssc
1075
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_responsive-utilities.scssc
1076
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_code.scssc
1077
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_thumbnails.scssc
1078
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_scaffolding.scssc
1079
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_carousel.scssc
1080
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_progress-bars.scssc
1081
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_popovers.scssc
1082
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_alerts.scssc
1083
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_modals.scssc
1084
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_component-animations.scssc
1085
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_close.scssc
1086
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_breadcrumbs.scssc
1087
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_navbar.scssc
1088
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_variables.scssc
1089
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_labels.scssc
1090
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_forms.scssc
1091
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_type.scssc
1092
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_buttons.scssc
1093
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_input-groups.scssc
1094
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_utilities.scssc
1095
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_print.scssc
1096
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_glyphicons.scssc
1097
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_list-group.scssc
1098
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_dropdowns.scssc
1099
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_button-groups.scssc
1100
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_pagination.scssc
1101
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_responsive-embed.scssc
1102
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_tables.scssc
1103
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_normalize.scssc
1104
- - spec/internal/tmp/cache/assets/test/sass/a1ec1bb9c9cafeb054d542e861ebc8ffd5904439/_panels.scssc
1105
- - spec/internal/tmp/cache/assets/test/sass/ca8c12d03785e0d6cd4554f4d3939e7836d38282/_blacklight_base.scssc
1106
- - spec/internal/tmp/cache/assets/test/sass/ca8c12d03785e0d6cd4554f4d3939e7836d38282/blacklight.scssc
1107
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_reset-filter.scssc
1108
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_nav-divider.scssc
1109
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_grid.scssc
1110
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_progress-bar.scssc
1111
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_text-emphasis.scssc
1112
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_grid-framework.scssc
1113
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_size.scssc
1114
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_tab-focus.scssc
1115
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_clearfix.scssc
1116
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_opacity.scssc
1117
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_resize.scssc
1118
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_vendor-prefixes.scssc
1119
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_alerts.scssc
1120
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_table-row.scssc
1121
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_border-radius.scssc
1122
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_hide-text.scssc
1123
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_center-block.scssc
1124
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_responsive-visibility.scssc
1125
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_labels.scssc
1126
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_forms.scssc
1127
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_gradients.scssc
1128
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_image.scssc
1129
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_buttons.scssc
1130
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_nav-vertical-align.scssc
1131
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_text-overflow.scssc
1132
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_list-group.scssc
1133
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_pagination.scssc
1134
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_background-variant.scssc
1135
- - spec/internal/tmp/cache/assets/test/sass/4a3ee647961c7e45976eb2c0a94406aad3427b3d/_panels.scssc
1136
- - spec/internal/tmp/cache/assets/test/sass/b28605b1c659cf09fc72f3c1fff32918869d28b8/_bootstrap-sprockets.scssc
1137
- - spec/internal/tmp/cache/assets/test/sass/b28605b1c659cf09fc72f3c1fff32918869d28b8/_bootstrap.scssc
1138
- - spec/internal/tmp/cache/assets/test/sass/93e201cf4a11978a1f491a057a3bd569c3825210/blacklight.css.scssc
1139
973
  - spec/internal/bin/rails
1140
974
  - spec/internal/bin/bundle
1141
975
  - spec/internal/bin/rake
@@ -1169,11 +1003,10 @@ test_files:
1169
1003
  - spec/internal/config/locales/devise.en.yml
1170
1004
  - spec/internal/config/locales/blacklight.en.yml
1171
1005
  - spec/internal/config/locales/en.yml
1172
- - spec/internal/db/migrate/20151222175631_add_polymorphic_type_to_bookmarks.blacklight.rb
1173
- - spec/internal/db/migrate/20151222175607_devise_create_users.rb
1174
- - spec/internal/db/migrate/20151222175630_create_bookmarks.blacklight.rb
1175
- - spec/internal/db/migrate/20151222175629_create_searches.blacklight.rb
1176
- - spec/internal/db/test.sqlite3-journal
1006
+ - spec/internal/db/migrate/20160113172024_create_searches.blacklight.rb
1007
+ - spec/internal/db/migrate/20160113172025_create_bookmarks.blacklight.rb
1008
+ - spec/internal/db/migrate/20160113172004_devise_create_users.rb
1009
+ - spec/internal/db/migrate/20160113172026_add_polymorphic_type_to_bookmarks.blacklight.rb
1177
1010
  - spec/internal/db/schema.rb
1178
1011
  - spec/internal/db/development.sqlite3
1179
1012
  - spec/internal/db/test.sqlite3
@@ -1269,6 +1102,7 @@ test_files:
1269
1102
  - spec/support/shared_examples/string_enrichment.rb
1270
1103
  - spec/support/shared_examples/ldp_resource.rb
1271
1104
  - spec/support/shared_examples/enrichment.rb~
1105
+ - spec/support/shared_examples/ldp_invalidatable.rb
1272
1106
  - spec/support/database_cleaner.rb
1273
1107
  - spec/support/shared_contexts/indexed_item.rb~
1274
1108
  - spec/support/shared_contexts/mapping_dsl.rb~