vigilion-rails 1.0.4 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,26 @@
1
+ require "vigilion_rails_helper"
2
+
3
+ RSpec.describe VigilionRails::VigilionScanJob do
4
+ disable_loopback
5
+ it "matches with performed job" do
6
+ ActiveJob::Base.queue_adapter = :test
7
+ ActiveJob::Base.queue_adapter.perform_enqueued_jobs = true
8
+ document = CarrierwaveDocument.create
9
+ key = { model: document.class.name, column: 'attachment', id: document.id }
10
+
11
+ stub_request(:post, "https://api.vigilion.com/scans").
12
+ with(
13
+ body: "{\"scan\":{\"key\":{\"model\":\"CarrierwaveDocument\",\"column\":\"attachment\",\"id\":1},\"url\":null}}",
14
+ headers: {
15
+ 'Accept'=>'*/*',
16
+ 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
17
+ 'Content-Type'=>'application/json',
18
+ 'User-Agent'=>'Vigilion 1.0.4 (x86_64-darwin19, Ruby 2.7.1)',
19
+ 'X-Api-Key'=>'test'
20
+ }).
21
+ to_return(status: 200, body: "", headers: {})
22
+
23
+ VigilionRails::VigilionScanJob.perform_later("VigilionRails::UrlIntegration", document.class.name, document.id, key, 'attachment')
24
+ expect(VigilionRails::VigilionScanJob).to have_been_performed
25
+ end
26
+ end
@@ -5,9 +5,9 @@ describe VigilionRails::LocalIntegration do
5
5
 
6
6
  describe "#scan" do
7
7
  it "calls vigilion scanner" do
8
- document = CarrierwaveDocument.new
8
+ document = CarrierwaveDocument.create
9
9
  expect(Vigilion).to receive(:scan_path)
10
10
  document.scan_attachment!
11
11
  end
12
12
  end
13
- end
13
+ end
@@ -1,6 +1,8 @@
1
1
  require "vigilion_rails_helper"
2
2
 
3
3
  describe VigilionRails do
4
+ include ActiveJob::TestHelper
5
+
4
6
  describe "#clean?" do
5
7
  context "without scan results" do
6
8
  it "is not clean" do
@@ -32,7 +34,7 @@ describe VigilionRails do
32
34
  disable_loopback
33
35
 
34
36
  it "calls vigilion scanner" do
35
- document = AgnosticDocument.new
37
+ document = AgnosticDocument.create
36
38
  expect(Vigilion).to receive(:scan_url)
37
39
  document.scan_attachment!
38
40
  end
@@ -119,4 +121,36 @@ describe VigilionRails do
119
121
  end
120
122
  end
121
123
  end
124
+
125
+ describe "#active_job" do
126
+ before do
127
+ Vigilion::Configuration.loopback = false
128
+ Vigilion::Configuration.active_job = true
129
+ Vigilion::Configuration.integration = :url
130
+ end
131
+
132
+ it "enqueues a job" do
133
+ document = AgnosticDocument.create
134
+ expect {
135
+ document.scan_attachment!
136
+ }.to have_enqueued_job(::VigilionRails::VigilionScanJob)
137
+ end
138
+
139
+ it 'calls proper integration' do
140
+ document = AgnosticDocument.create
141
+ key = { model: document.class.name, column: 'attachment', id: document.id }.to_json
142
+ expect_any_instance_of(
143
+ ::VigilionRails::UrlIntegration
144
+ ).to receive(:scan).with(key, document, :attachment)
145
+ perform_enqueued_jobs do
146
+ document.scan_attachment!
147
+ end
148
+ end
149
+
150
+ it 'sets default status' do
151
+ document = AgnosticDocument.create
152
+ document.scan_attachment!
153
+ expect(document.reload.attachment_scan_results).to eq "pending"
154
+ end
155
+ end
122
156
  end
@@ -4,8 +4,10 @@ require 'spec_helper'
4
4
  require File.expand_path('../dummy/config/environment', __FILE__)
5
5
  require 'rspec/rails'
6
6
  require 'helper_methods'
7
+ require 'webmock/rspec'
7
8
 
8
9
  ActiveRecord::Migration.maintain_test_schema!
10
+ ActiveJob::Base.queue_adapter = :test
9
11
 
10
12
  RSpec.configure do |config|
11
13
  # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vigilion-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bit Zesty Ltd
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-24 00:00:00.000000000 Z
11
+ date: 2022-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.0
19
+ version: 6.0.3.7
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 4.2.0
26
+ version: 6.0.3.7
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: vigilion
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: webmock
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: Rails engine for Vigilion Anti-Virus & Malware file scanning service.
84
98
  email:
85
99
  - help@vigilion.com
@@ -90,6 +104,8 @@ files:
90
104
  - MIT-LICENSE
91
105
  - Rakefile
92
106
  - app/controllers/vigilion/vigilion_controller.rb
107
+ - app/jobs/vigilion_rails/application_job.rb
108
+ - app/jobs/vigilion_rails/vigilion_scan_job.rb
93
109
  - config/routes.rb
94
110
  - lib/generators/vigilion/install_generator.rb
95
111
  - lib/generators/vigilion/scan/USAGE
@@ -104,6 +120,7 @@ files:
104
120
  - lib/vigilion-rails/version.rb
105
121
  - spec/dummy/README.rdoc
106
122
  - spec/dummy/Rakefile
123
+ - spec/dummy/app/assets/config/manifest.js
107
124
  - spec/dummy/app/assets/javascripts/application.js
108
125
  - spec/dummy/app/assets/stylesheets/application.css
109
126
  - spec/dummy/app/controllers/application_controller.rb
@@ -133,6 +150,7 @@ files:
133
150
  - spec/dummy/config/initializers/inflections.rb
134
151
  - spec/dummy/config/initializers/mime_types.rb
135
152
  - spec/dummy/config/initializers/session_store.rb
153
+ - spec/dummy/config/initializers/vigilion.rb
136
154
  - spec/dummy/config/initializers/wrap_parameters.rb
137
155
  - spec/dummy/config/locales/en.yml
138
156
  - spec/dummy/config/routes.rb
@@ -142,11 +160,14 @@ files:
142
160
  - spec/dummy/db/migrate/20150616144235_create_dragonfly_documents.rb
143
161
  - spec/dummy/db/migrate/20150616144544_create_agnostic_documents.rb
144
162
  - spec/dummy/db/schema.rb
163
+ - spec/dummy/db/test.sqlite3
164
+ - spec/dummy/log/test.log
145
165
  - spec/dummy/public/404.html
146
166
  - spec/dummy/public/422.html
147
167
  - spec/dummy/public/500.html
148
168
  - spec/dummy/public/favicon.ico
149
169
  - spec/helper_methods.rb
170
+ - spec/jobs/vigilion_rails/vigilion_scan_job_spec.rb
150
171
  - spec/lib/integrations/local_integration_spec.rb
151
172
  - spec/lib/vigilion_rails_spec.rb
152
173
  - spec/routing/vigilion_routing_spec.rb
@@ -156,7 +177,7 @@ homepage: https://github.com/vigilion/vigilion-rails
156
177
  licenses:
157
178
  - MIT
158
179
  metadata: {}
159
- post_install_message:
180
+ post_install_message:
160
181
  rdoc_options: []
161
182
  require_paths:
162
183
  - lib
@@ -171,59 +192,63 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
192
  - !ruby/object:Gem::Version
172
193
  version: '0'
173
194
  requirements: []
174
- rubyforge_project:
175
- rubygems_version: 2.4.5.1
176
- signing_key:
195
+ rubygems_version: 3.1.2
196
+ signing_key:
177
197
  specification_version: 4
178
198
  summary: Rails engine for Vigilion Anti-Virus & Malware file scanning service.
179
199
  test_files:
180
- - spec/dummy/app/assets/javascripts/application.js
181
- - spec/dummy/app/assets/stylesheets/application.css
182
- - spec/dummy/app/controllers/application_controller.rb
183
- - spec/dummy/app/helpers/application_helper.rb
184
- - spec/dummy/app/models/agnostic_document.rb
200
+ - spec/vigilion_rails_helper.rb
201
+ - spec/spec_helper.rb
202
+ - spec/dummy/app/uploaders/attachment_uploader.rb
185
203
  - spec/dummy/app/models/carrierwave_document.rb
186
- - spec/dummy/app/models/dragonfly_document.rb
204
+ - spec/dummy/app/models/agnostic_document.rb
187
205
  - spec/dummy/app/models/paperclip_document.rb
188
- - spec/dummy/app/uploaders/attachment_uploader.rb
206
+ - spec/dummy/app/models/dragonfly_document.rb
207
+ - spec/dummy/app/controllers/application_controller.rb
189
208
  - spec/dummy/app/views/layouts/application.html.erb
190
- - spec/dummy/bin/bundle
191
- - spec/dummy/bin/rails
209
+ - spec/dummy/app/assets/config/manifest.js
210
+ - spec/dummy/app/assets/javascripts/application.js
211
+ - spec/dummy/app/assets/stylesheets/application.css
212
+ - spec/dummy/app/helpers/application_helper.rb
192
213
  - spec/dummy/bin/rake
193
214
  - spec/dummy/bin/setup
194
- - spec/dummy/config/application.rb
195
- - spec/dummy/config/boot.rb
196
- - spec/dummy/config/database.yml
197
- - spec/dummy/config/environment.rb
198
- - spec/dummy/config/environments/development.rb
215
+ - spec/dummy/bin/bundle
216
+ - spec/dummy/bin/rails
217
+ - spec/dummy/config/secrets.yml
218
+ - spec/dummy/config/routes.rb
219
+ - spec/dummy/config/locales/en.yml
199
220
  - spec/dummy/config/environments/production.rb
221
+ - spec/dummy/config/environments/development.rb
200
222
  - spec/dummy/config/environments/test.rb
201
- - spec/dummy/config/initializers/assets.rb
223
+ - spec/dummy/config/environment.rb
224
+ - spec/dummy/config/application.rb
225
+ - spec/dummy/config/database.yml
226
+ - spec/dummy/config/boot.rb
202
227
  - spec/dummy/config/initializers/backtrace_silencers.rb
203
- - spec/dummy/config/initializers/cookies_serializer.rb
204
- - spec/dummy/config/initializers/filter_parameter_logging.rb
205
- - spec/dummy/config/initializers/inflections.rb
206
228
  - spec/dummy/config/initializers/mime_types.rb
229
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
207
230
  - spec/dummy/config/initializers/session_store.rb
208
231
  - spec/dummy/config/initializers/wrap_parameters.rb
209
- - spec/dummy/config/locales/en.yml
210
- - spec/dummy/config/routes.rb
211
- - spec/dummy/config/secrets.yml
232
+ - spec/dummy/config/initializers/assets.rb
233
+ - spec/dummy/config/initializers/cookies_serializer.rb
234
+ - spec/dummy/config/initializers/vigilion.rb
235
+ - spec/dummy/config/initializers/inflections.rb
212
236
  - spec/dummy/config.ru
213
- - spec/dummy/db/migrate/20150616144220_create_carrierwave_documents.rb
214
- - spec/dummy/db/migrate/20150616144227_create_paperclip_documents.rb
215
- - spec/dummy/db/migrate/20150616144235_create_dragonfly_documents.rb
216
- - spec/dummy/db/migrate/20150616144544_create_agnostic_documents.rb
217
- - spec/dummy/db/schema.rb
218
- - spec/dummy/public/404.html
237
+ - spec/dummy/Rakefile
238
+ - spec/dummy/public/favicon.ico
219
239
  - spec/dummy/public/422.html
220
240
  - spec/dummy/public/500.html
221
- - spec/dummy/public/favicon.ico
222
- - spec/dummy/Rakefile
241
+ - spec/dummy/public/404.html
242
+ - spec/dummy/db/schema.rb
243
+ - spec/dummy/db/test.sqlite3
244
+ - spec/dummy/db/migrate/20150616144235_create_dragonfly_documents.rb
245
+ - spec/dummy/db/migrate/20150616144544_create_agnostic_documents.rb
246
+ - spec/dummy/db/migrate/20150616144227_create_paperclip_documents.rb
247
+ - spec/dummy/db/migrate/20150616144220_create_carrierwave_documents.rb
248
+ - spec/dummy/log/test.log
223
249
  - spec/dummy/README.rdoc
224
250
  - spec/helper_methods.rb
225
- - spec/lib/integrations/local_integration_spec.rb
226
251
  - spec/lib/vigilion_rails_spec.rb
252
+ - spec/lib/integrations/local_integration_spec.rb
227
253
  - spec/routing/vigilion_routing_spec.rb
228
- - spec/spec_helper.rb
229
- - spec/vigilion_rails_helper.rb
254
+ - spec/jobs/vigilion_rails/vigilion_scan_job_spec.rb