csp_report 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +5 -0
  3. data/README.md +64 -24
  4. data/app/assets/javascripts/csp_report.js +2 -0
  5. data/app/assets/javascripts/csp_report/application.js +1 -0
  6. data/app/assets/javascripts/csp_report/report.js.coffee +4 -0
  7. data/app/assets/stylesheets/csp_report/bootstrap_and_overrides.css +7 -0
  8. data/app/assets/stylesheets/csp_report/csp_report.css.sass +19 -15
  9. data/app/controllers/csp_report/csp_reports_controller.rb +135 -0
  10. data/app/helpers/csp_report/headers_helpers.rb +32 -0
  11. data/app/views/csp_report/csp_reports/index.html.haml +60 -35
  12. data/app/views/csp_report/csp_reports/report_by_ip.html.haml +45 -0
  13. data/app/views/csp_report/csp_reports/report_by_rule.html.haml +46 -0
  14. data/app/views/csp_report/csp_reports/report_by_source.html.haml +46 -0
  15. data/config/routes.rb +4 -1
  16. data/lib/csp_report.rb +2 -0
  17. data/lib/csp_report/version.rb +1 -1
  18. data/lib/generators/csp_report/highcharts_include_generator.rb +14 -0
  19. data/lib/generators/csp_report/install_generator.rb +2 -0
  20. data/spec/controllers/csp_report/csp_reports_controller_spec.rb +132 -47
  21. data/spec/dummy/log/test.log +32398 -0
  22. data/spec/dummy/tmp/cache/assets/test/sass/745019acb880ec9412f97713489f02ba42209a06/csp_report.css.sassc +0 -0
  23. data/spec/dummy/tmp/cache/assets/test/sprockets/04b3e69eb694573268093bc96a12cb36 +0 -0
  24. data/spec/dummy/tmp/cache/assets/test/sprockets/05c90a274261cfca1eb2c000659570f5 +0 -0
  25. data/spec/dummy/tmp/cache/assets/test/sprockets/22f7ca496c173fb6290675535b2ea867 +0 -0
  26. data/spec/dummy/tmp/cache/assets/test/sprockets/27b25bddc744ae04b7e3f44fc2ff7b0a +0 -0
  27. data/spec/dummy/tmp/cache/assets/test/sprockets/2a6dae572905cab4d1414332fe21dd75 +0 -0
  28. data/spec/dummy/tmp/cache/assets/test/sprockets/325cfe516884cee28f48dc297246b1fc +0 -0
  29. data/spec/dummy/tmp/cache/assets/test/sprockets/391546e93f4c1edddf588160a1cedc5a +0 -0
  30. data/spec/dummy/tmp/cache/assets/test/sprockets/4949b199f7a3f61704ee406dfc99e38c +0 -0
  31. data/spec/dummy/tmp/cache/assets/test/sprockets/4f12538a5db5fd7fe75ebdcb6dc9b251 +0 -0
  32. data/spec/dummy/tmp/cache/assets/test/sprockets/50d961649ccb35a76acd4f63f6250361 +0 -0
  33. data/spec/dummy/tmp/cache/assets/test/sprockets/51522c13c1c4f9cf7dcfad7b204cf749 +0 -0
  34. data/spec/dummy/tmp/cache/assets/test/sprockets/56f7ae58d3064c45987cc434559f4dcb +0 -0
  35. data/spec/dummy/tmp/cache/assets/test/sprockets/5d4b85a2814f8d22d23ad047618fe032 +0 -0
  36. data/spec/dummy/tmp/cache/assets/test/sprockets/5d91dbec07ef096002d3f884edec8b55 +0 -0
  37. data/spec/dummy/tmp/cache/assets/test/sprockets/641ce249906eb1e5e40fe7309193e5a6 +0 -0
  38. data/spec/dummy/tmp/cache/assets/test/sprockets/71f1e2bbe4e3226070159a95e1690af9 +0 -0
  39. data/spec/dummy/tmp/cache/assets/test/sprockets/7f9fe739367238fbe3fe92a0362d8f33 +0 -0
  40. data/spec/dummy/tmp/cache/assets/test/sprockets/9b94cd42c6d3c0778772d609a4d7006d +0 -0
  41. data/spec/dummy/tmp/cache/assets/test/sprockets/b2fb1d4fcfbdd0431ec50d36c324e769 +0 -0
  42. data/spec/dummy/tmp/cache/assets/test/sprockets/bf4db1839fb7adc3305b797e33f5902c +0 -0
  43. data/spec/dummy/tmp/cache/assets/test/sprockets/d1841c51cd5922191135ddd5c6ed2b70 +0 -0
  44. data/spec/dummy/tmp/cache/assets/test/sprockets/dc4c1ce2dc434402713320ef23981262 +0 -0
  45. data/spec/dummy/tmp/cache/assets/test/sprockets/dd40235a4b424b2f80c80fe5cb993736 +0 -0
  46. data/spec/dummy/tmp/cache/assets/test/sprockets/de041484110f42c73b00c21167cfc7c2 +0 -0
  47. data/spec/dummy/tmp/cache/assets/test/sprockets/faef24ee109a081ff0b9346c27872274 +0 -0
  48. data/spec/factories/csp_report_csp_reports.rb +14 -6
  49. data/spec/features/csp_report/csp_reports_index_spec.rb +17 -0
  50. data/spec/features/csp_report/csp_reports_report_by_ip_spec.rb +12 -2
  51. data/spec/features/csp_report/csp_reports_report_by_rule_spec.rb +21 -0
  52. data/spec/features/csp_report/csp_reports_report_by_source_spec.rb +24 -0
  53. data/spec/routing/csp_reports_routes_spec.rb +9 -0
  54. data/spec/spec_helper.rb +1 -3
  55. metadata +114 -2
@@ -8,12 +8,20 @@ FactoryGirl.define do
8
8
  incoming_ip "127.0.0.1"
9
9
  end
10
10
 
11
- factory :local_home_index_inline, :class => 'CspReport::CspReport' do
11
+ factory :local_home_index_inline, parent: :local_inline do
12
12
  document_uri "http://localhost:3000/home/index"
13
- referrer ""
14
- blocked_uri ""
15
- violated_directive "script-src 'self'"
16
- original_policy "script-src 'self'; report-uri /csp/csp_reports"
17
- incoming_ip "127.0.0.1"
13
+ end
14
+
15
+ factory :local_ipv6_home_index_inline, parent: :local_home_index_inline do
16
+ incoming_ip "::1"
17
+ end
18
+
19
+ factory :local_home_about_inline, parent: :local_inline do
20
+ document_uri "http://localhost:3000/home/about"
21
+ end
22
+
23
+ factory :local_script_star, parent: :local_inline do
24
+ violated_directive "script-src *"
25
+ original_policy "script-src *; report-uri /csp/csp_reports"
18
26
  end
19
27
  end
@@ -78,4 +78,21 @@ describe 'CspReport index view' do
78
78
  {href: csp_reports_destroy_all_path}
79
79
  end
80
80
  end
81
+
82
+ describe 'Links to data presentation' do
83
+ it 'should have a link to the report by IP' do
84
+ visit csp_reports_path
85
+ page.should have_link 'By IP'
86
+ end
87
+
88
+ it 'should have a link to the report by Rule' do
89
+ visit csp_reports_path
90
+ page.should have_link 'By Violated Directive'
91
+ end
92
+
93
+ it 'should have a link to the report by Source' do
94
+ visit csp_reports_path
95
+ page.should have_link 'By Source Document URI'
96
+ end
97
+ end
81
98
  end
@@ -2,12 +2,22 @@ require 'spec_helper'
2
2
 
3
3
  describe 'CspReport report by IP view' do
4
4
  before(:each) do
5
- @localhost4 = FactoryGirl.create(:local_inline)
5
+ @localhost4 = FactoryGirl.create(:local_inline)
6
6
  @localhost4_2 = FactoryGirl.create(:local_home_index_inline)
7
- @localhost6 = FactoryGirl.create(:local_ipv6_home_index_inline)
7
+ @localhost6 = FactoryGirl.create(:local_ipv6_home_index_inline)
8
+ @localhost6_2 = FactoryGirl.create(:local_ipv6_home_index_inline)
9
+ end
10
+
11
+ it 'should display a table of breaches per IP' do
12
+ visit csp_reports_report_by_ip_path
13
+ page.should have_content('Incoming IP')
14
+ page.should have_content('Number of breaches reported')
8
15
  end
9
16
 
10
17
  it 'should display each IP only once' do
11
18
  visit csp_reports_report_by_ip_path
19
+ find('//table[@id="byip"]').text.scan(@localhost4.incoming_ip).size.should eq 1
20
+ find('//table[@id="byip"]').text.scan(@localhost6.incoming_ip).size.should eq 1
12
21
  end
22
+
13
23
  end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'CspReport report by rule view' do
4
+ before(:each) do
5
+ @script_self = FactoryGirl.create(:local_inline)
6
+ @script_star = FactoryGirl.create(:local_script_star)
7
+ end
8
+
9
+ it 'should display a table of breaches per rule' do
10
+ visit csp_reports_report_by_rule_path
11
+ page.should have_content('Violated Directive')
12
+ page.should have_content('Number of breaches reported')
13
+ end
14
+
15
+ it 'should display each rule only once' do
16
+ visit csp_reports_report_by_rule_path
17
+ find('//table[@id="byrule"]').text.scan(@script_self.violated_directive).size.should eq 1
18
+ find('//table[@id="byrule"]').text.scan(@script_star.violated_directive).size.should eq 1
19
+ end
20
+
21
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'CspReport report by source view' do
4
+ before(:each) do
5
+ @script_about = FactoryGirl.create(:local_home_about_inline)
6
+ @script_home = FactoryGirl.create(:local_home_index_inline)
7
+ @script_about_2 = FactoryGirl.create(:local_home_about_inline)
8
+ @script_home_2 = FactoryGirl.create(:local_home_index_inline)
9
+ end
10
+
11
+ it 'should display a table of breaches per sources' do
12
+ visit csp_reports_report_by_source_path
13
+ page.should have_content('Source Document URI')
14
+ page.should have_content('Number of breaches reported')
15
+ end
16
+
17
+ it 'should display each source only once' do
18
+ visit csp_reports_report_by_source_path
19
+ find('//table[@id="bysource"]').text.scan(@script_home.document_uri).size.should eq 1
20
+ find('//table[@id="bysource"]').text.scan(@script_about.document_uri).size.should eq 1
21
+ end
22
+
23
+ end
24
+
@@ -16,4 +16,13 @@ describe 'csp_report routing' do
16
16
  it 'should respond to delete_all requests' do
17
17
  get('/csp_reports/destroy_all').should route_to 'csp_report/csp_reports#destroy_all'
18
18
  end
19
+ it 'should respond to report_by_ip requests' do
20
+ get('/csp_reports/report_by_ip').should route_to 'csp_report/csp_reports#report_by_ip'
21
+ end
22
+ it 'should respond to report_by_rule requests' do
23
+ get('/csp_reports/report_by_rule').should route_to 'csp_report/csp_reports#report_by_rule'
24
+ end
25
+ it 'should respond to report_by_source requests' do
26
+ get('/csp_reports/report_by_source').should route_to 'csp_report/csp_reports#report_by_source'
27
+ end
19
28
  end
data/spec/spec_helper.rb CHANGED
@@ -27,8 +27,6 @@ Spork.prefork do
27
27
  # If you are not using ActiveRecord, you can remove this line.
28
28
  ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
29
29
 
30
- FactoryGirl.find_definitions
31
-
32
30
  RSpec.configure do |config|
33
31
  # For engine testing. Makes the Engine routes helpers available to the test files
34
32
  config.include CspReport::Engine.routes.url_helpers
@@ -64,5 +62,5 @@ end
64
62
 
65
63
  Spork.each_run do
66
64
  # This code will be run each time you run your specs.
67
-
65
+ FactoryGirl.find_definitions
68
66
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: csp_report
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregory Bataille
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-16 00:00:00.000000000 Z
11
+ date: 2013-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -52,6 +52,62 @@ dependencies:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.5.8
55
+ - !ruby/object:Gem::Dependency
56
+ name: jquery-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 3.0.4
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 3.0.4
69
+ - !ruby/object:Gem::Dependency
70
+ name: lazy_high_charts
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 1.4.3
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 1.4.3
83
+ - !ruby/object:Gem::Dependency
84
+ name: coffee-rails
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 4.0.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 4.0.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: twitter-bootstrap-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: 2.2.8
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 2.2.8
55
111
  - !ruby/object:Gem::Dependency
56
112
  name: sqlite3
57
113
  requirement: !ruby/object:Gem::Requirement
@@ -214,13 +270,20 @@ extensions: []
214
270
  extra_rdoc_files: []
215
271
  files:
216
272
  - app/assets/javascripts/csp_report/application.js
273
+ - app/assets/javascripts/csp_report/report.js.coffee
274
+ - app/assets/javascripts/csp_report.js
217
275
  - app/assets/stylesheets/csp_report/application.css
276
+ - app/assets/stylesheets/csp_report/bootstrap_and_overrides.css
218
277
  - app/assets/stylesheets/csp_report/csp_report.css.sass
219
278
  - app/controllers/csp_report/application_controller.rb
220
279
  - app/controllers/csp_report/csp_reports_controller.rb
221
280
  - app/helpers/csp_report/application_helper.rb
281
+ - app/helpers/csp_report/headers_helpers.rb
222
282
  - app/models/csp_report/csp_report.rb
223
283
  - app/views/csp_report/csp_reports/index.html.haml
284
+ - app/views/csp_report/csp_reports/report_by_ip.html.haml
285
+ - app/views/csp_report/csp_reports/report_by_rule.html.haml
286
+ - app/views/csp_report/csp_reports/report_by_source.html.haml
224
287
  - app/views/layouts/csp_report/application.html.erb
225
288
  - config/routes.rb
226
289
  - db/migrate/20130630091108_create_csp_report_csp_reports.rb
@@ -229,6 +292,7 @@ files:
229
292
  - lib/csp_report/version.rb
230
293
  - lib/csp_report.rb
231
294
  - lib/generators/csp_report/csp_declaration_generator.rb
295
+ - lib/generators/csp_report/highcharts_include_generator.rb
232
296
  - lib/generators/csp_report/initializer_install_generator.rb
233
297
  - lib/generators/csp_report/install_generator.rb
234
298
  - lib/generators/csp_report/migration_generator.rb
@@ -297,22 +361,46 @@ files:
297
361
  - spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
298
362
  - spec/dummy/tmp/cache/assets/test/sass/3993bbee5479f52ce0cb34d1bfbe0a6755e8c605/home.css.scssc
299
363
  - spec/dummy/tmp/cache/assets/test/sass/745019acb880ec9412f97713489f02ba42209a06/csp_report.css.sassc
364
+ - spec/dummy/tmp/cache/assets/test/sprockets/04b3e69eb694573268093bc96a12cb36
365
+ - spec/dummy/tmp/cache/assets/test/sprockets/05c90a274261cfca1eb2c000659570f5
300
366
  - spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
301
367
  - spec/dummy/tmp/cache/assets/test/sprockets/1638f87db345b13872695759502b54fe
302
368
  - spec/dummy/tmp/cache/assets/test/sprockets/1c9faaf28d05409b88ad3113374d613c
369
+ - spec/dummy/tmp/cache/assets/test/sprockets/22f7ca496c173fb6290675535b2ea867
370
+ - spec/dummy/tmp/cache/assets/test/sprockets/27b25bddc744ae04b7e3f44fc2ff7b0a
371
+ - spec/dummy/tmp/cache/assets/test/sprockets/2a6dae572905cab4d1414332fe21dd75
303
372
  - spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
373
+ - spec/dummy/tmp/cache/assets/test/sprockets/325cfe516884cee28f48dc297246b1fc
304
374
  - spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
375
+ - spec/dummy/tmp/cache/assets/test/sprockets/391546e93f4c1edddf588160a1cedc5a
305
376
  - spec/dummy/tmp/cache/assets/test/sprockets/4949b199f7a3f61704ee406dfc99e38c
377
+ - spec/dummy/tmp/cache/assets/test/sprockets/4f12538a5db5fd7fe75ebdcb6dc9b251
378
+ - spec/dummy/tmp/cache/assets/test/sprockets/50d961649ccb35a76acd4f63f6250361
379
+ - spec/dummy/tmp/cache/assets/test/sprockets/51522c13c1c4f9cf7dcfad7b204cf749
380
+ - spec/dummy/tmp/cache/assets/test/sprockets/56f7ae58d3064c45987cc434559f4dcb
381
+ - spec/dummy/tmp/cache/assets/test/sprockets/5d4b85a2814f8d22d23ad047618fe032
382
+ - spec/dummy/tmp/cache/assets/test/sprockets/5d91dbec07ef096002d3f884edec8b55
383
+ - spec/dummy/tmp/cache/assets/test/sprockets/641ce249906eb1e5e40fe7309193e5a6
384
+ - spec/dummy/tmp/cache/assets/test/sprockets/71f1e2bbe4e3226070159a95e1690af9
385
+ - spec/dummy/tmp/cache/assets/test/sprockets/7f9fe739367238fbe3fe92a0362d8f33
306
386
  - spec/dummy/tmp/cache/assets/test/sprockets/9b94cd42c6d3c0778772d609a4d7006d
387
+ - spec/dummy/tmp/cache/assets/test/sprockets/b2fb1d4fcfbdd0431ec50d36c324e769
307
388
  - spec/dummy/tmp/cache/assets/test/sprockets/b878faf942403e313a5b103e5d80488e
389
+ - spec/dummy/tmp/cache/assets/test/sprockets/bf4db1839fb7adc3305b797e33f5902c
308
390
  - spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
391
+ - spec/dummy/tmp/cache/assets/test/sprockets/d1841c51cd5922191135ddd5c6ed2b70
309
392
  - spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
310
393
  - spec/dummy/tmp/cache/assets/test/sprockets/dc4c1ce2dc434402713320ef23981262
394
+ - spec/dummy/tmp/cache/assets/test/sprockets/dd40235a4b424b2f80c80fe5cb993736
395
+ - spec/dummy/tmp/cache/assets/test/sprockets/de041484110f42c73b00c21167cfc7c2
311
396
  - spec/dummy/tmp/cache/assets/test/sprockets/f1663d34d4b6003379113df98f1433a5
312
397
  - spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
398
+ - spec/dummy/tmp/cache/assets/test/sprockets/faef24ee109a081ff0b9346c27872274
313
399
  - spec/factories/csp_report_csp_reports.rb
314
400
  - spec/features/csp_report/csp_reports_index_spec.rb
315
401
  - spec/features/csp_report/csp_reports_report_by_ip_spec.rb
402
+ - spec/features/csp_report/csp_reports_report_by_rule_spec.rb
403
+ - spec/features/csp_report/csp_reports_report_by_source_spec.rb
316
404
  - spec/generators/csp_report/initializer_install_generator_spec.rb
317
405
  - spec/generators/csp_report/mount_generator_spec.rb
318
406
  - spec/models/csp_report/csp_report_spec.rb
@@ -403,22 +491,46 @@ test_files:
403
491
  - spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
404
492
  - spec/dummy/tmp/cache/assets/test/sass/3993bbee5479f52ce0cb34d1bfbe0a6755e8c605/home.css.scssc
405
493
  - spec/dummy/tmp/cache/assets/test/sass/745019acb880ec9412f97713489f02ba42209a06/csp_report.css.sassc
494
+ - spec/dummy/tmp/cache/assets/test/sprockets/04b3e69eb694573268093bc96a12cb36
495
+ - spec/dummy/tmp/cache/assets/test/sprockets/05c90a274261cfca1eb2c000659570f5
406
496
  - spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
407
497
  - spec/dummy/tmp/cache/assets/test/sprockets/1638f87db345b13872695759502b54fe
408
498
  - spec/dummy/tmp/cache/assets/test/sprockets/1c9faaf28d05409b88ad3113374d613c
499
+ - spec/dummy/tmp/cache/assets/test/sprockets/22f7ca496c173fb6290675535b2ea867
500
+ - spec/dummy/tmp/cache/assets/test/sprockets/27b25bddc744ae04b7e3f44fc2ff7b0a
501
+ - spec/dummy/tmp/cache/assets/test/sprockets/2a6dae572905cab4d1414332fe21dd75
409
502
  - spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
503
+ - spec/dummy/tmp/cache/assets/test/sprockets/325cfe516884cee28f48dc297246b1fc
410
504
  - spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
505
+ - spec/dummy/tmp/cache/assets/test/sprockets/391546e93f4c1edddf588160a1cedc5a
411
506
  - spec/dummy/tmp/cache/assets/test/sprockets/4949b199f7a3f61704ee406dfc99e38c
507
+ - spec/dummy/tmp/cache/assets/test/sprockets/4f12538a5db5fd7fe75ebdcb6dc9b251
508
+ - spec/dummy/tmp/cache/assets/test/sprockets/50d961649ccb35a76acd4f63f6250361
509
+ - spec/dummy/tmp/cache/assets/test/sprockets/51522c13c1c4f9cf7dcfad7b204cf749
510
+ - spec/dummy/tmp/cache/assets/test/sprockets/56f7ae58d3064c45987cc434559f4dcb
511
+ - spec/dummy/tmp/cache/assets/test/sprockets/5d4b85a2814f8d22d23ad047618fe032
512
+ - spec/dummy/tmp/cache/assets/test/sprockets/5d91dbec07ef096002d3f884edec8b55
513
+ - spec/dummy/tmp/cache/assets/test/sprockets/641ce249906eb1e5e40fe7309193e5a6
514
+ - spec/dummy/tmp/cache/assets/test/sprockets/71f1e2bbe4e3226070159a95e1690af9
515
+ - spec/dummy/tmp/cache/assets/test/sprockets/7f9fe739367238fbe3fe92a0362d8f33
412
516
  - spec/dummy/tmp/cache/assets/test/sprockets/9b94cd42c6d3c0778772d609a4d7006d
517
+ - spec/dummy/tmp/cache/assets/test/sprockets/b2fb1d4fcfbdd0431ec50d36c324e769
413
518
  - spec/dummy/tmp/cache/assets/test/sprockets/b878faf942403e313a5b103e5d80488e
519
+ - spec/dummy/tmp/cache/assets/test/sprockets/bf4db1839fb7adc3305b797e33f5902c
414
520
  - spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
521
+ - spec/dummy/tmp/cache/assets/test/sprockets/d1841c51cd5922191135ddd5c6ed2b70
415
522
  - spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
416
523
  - spec/dummy/tmp/cache/assets/test/sprockets/dc4c1ce2dc434402713320ef23981262
524
+ - spec/dummy/tmp/cache/assets/test/sprockets/dd40235a4b424b2f80c80fe5cb993736
525
+ - spec/dummy/tmp/cache/assets/test/sprockets/de041484110f42c73b00c21167cfc7c2
417
526
  - spec/dummy/tmp/cache/assets/test/sprockets/f1663d34d4b6003379113df98f1433a5
418
527
  - spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
528
+ - spec/dummy/tmp/cache/assets/test/sprockets/faef24ee109a081ff0b9346c27872274
419
529
  - spec/factories/csp_report_csp_reports.rb
420
530
  - spec/features/csp_report/csp_reports_index_spec.rb
421
531
  - spec/features/csp_report/csp_reports_report_by_ip_spec.rb
532
+ - spec/features/csp_report/csp_reports_report_by_rule_spec.rb
533
+ - spec/features/csp_report/csp_reports_report_by_source_spec.rb
422
534
  - spec/generators/csp_report/initializer_install_generator_spec.rb
423
535
  - spec/generators/csp_report/mount_generator_spec.rb
424
536
  - spec/models/csp_report/csp_report_spec.rb