test_server 0.4.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +6 -3
  3. data/Gemfile +13 -5
  4. data/README.md +16 -0
  5. data/Rakefile +17 -3
  6. data/app/assets/javascripts/test_server/file_uploader.js.coffee +3 -0
  7. data/app/assets/stylesheets/application.scss +31 -0
  8. data/app/assets/stylesheets/test_server/file_uploader.css.scss +3 -0
  9. data/app/controllers/test_server/file_uploader_controller.rb +42 -0
  10. data/app/helpers/test_server/file_uploader_helper.rb +2 -0
  11. data/app/models/test_server/file_upload.rb +41 -0
  12. data/app/views/layouts/application.html.haml +10 -0
  13. data/app/views/test_server/dashboard/show.html.haml +1 -0
  14. data/app/views/test_server/file_uploader/_form.html.haml +27 -0
  15. data/app/views/test_server/file_uploader/_overview.html.haml +1 -0
  16. data/app/views/test_server/file_uploader/index.html.haml +1 -0
  17. data/app/views/test_server/file_uploader/result.html.haml +40 -0
  18. data/app/views/test_server/file_uploader/upload.html.haml +1 -0
  19. data/config/routes.rb +8 -2
  20. data/lib/test_server/checksum.rb +21 -0
  21. data/lib/test_server/checksum_calculator.rb +27 -0
  22. data/lib/test_server/command_runner.rb +58 -0
  23. data/lib/test_server/exceptions.rb +3 -0
  24. data/lib/test_server/file_size.rb +14 -0
  25. data/lib/test_server/filetype_detector.rb +21 -0
  26. data/lib/test_server/locales/en.yml +28 -1
  27. data/lib/test_server/main.rb +6 -1
  28. data/lib/test_server/md5_calculator.rb +17 -0
  29. data/lib/test_server/permitted_params.rb +25 -7
  30. data/lib/test_server/sha256_calculator.rb +17 -0
  31. data/lib/test_server/uploaded_file.rb +58 -0
  32. data/lib/test_server/version.rb +1 -1
  33. data/lib/test_server/virus_detector.rb +43 -0
  34. data/lib/test_server.rb +15 -0
  35. data/public/assets/{manifest-7c069da388f8a976fadfaab958b9feb7.json → manifest-1a3c45fcd482cca628c8cdc72631eb98.json} +0 -0
  36. data/spec/controllers/test_server/file_uploader_controller_spec.rb +26 -0
  37. data/spec/encoder_spec.rb +3 -3
  38. data/spec/features/fetch_data_via_javascript_spec.rb +18 -18
  39. data/spec/filetype_detector_spec.rb +31 -0
  40. data/spec/fixtures/file_uploader/file.bin +0 -0
  41. data/spec/permitted_params_spec.rb +1 -1
  42. data/spec/sha256_calculator_spec.rb +36 -0
  43. data/spec/spec_helper.rb +2 -0
  44. data/spec/support/commands.rb +15 -0
  45. data/spec/support/debugging.rb +6 -1
  46. data/spec/support/eicar.rb +15 -0
  47. data/spec/support/fixtures.rb +16 -0
  48. data/spec/support/rails.rb +2 -0
  49. data/spec/uploaded_file_spec.rb +167 -0
  50. data/spec/views/errors/not_found.html.haml_spec.rb +1 -1
  51. data/spec/views/test_server/file_uploader/index.html.haml_spec.rb +32 -0
  52. data/spec/views/test_server/file_uploader/result.html.haml_spec.rb +58 -0
  53. data/spec/views/test_server/file_uploader/upload.html.haml_spec.rb +12 -0
  54. data/spec/views/test_server/reflector/client_ip_address.html.haml_spec.rb +1 -1
  55. data/spec/virus_detector_spec.rb +45 -0
  56. data/test_server.gemspec +2 -3
  57. metadata +48 -19
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe "file_uploader/upload.html.haml" do
5
+ context 'File Upload' do
6
+ it 'returns file name' do
7
+ visit '/file_uploader/upload'
8
+
9
+ within 'form' do
10
+ attach_file 'test_server_file_upload[uploaded_file]', fixture_file('file_uploader/file.bin').path
11
+ end
12
+
13
+ click_button 'upload'
14
+
15
+ expect(page).to have_content 'Size'
16
+ end
17
+
18
+ it 'enables the user to check for viruses' do
19
+ visit '/file_uploader/upload'
20
+
21
+ within 'form' do
22
+ attach_file 'test_server_file_upload[uploaded_file]', fixture_file('file_uploader/file.bin').path
23
+ check 'test_server_file_upload[virus_scan]'
24
+ end
25
+
26
+ click_button 'upload'
27
+
28
+ expect(page).to have_content 'Virus ID'
29
+ end
30
+
31
+ it 'enables the user to calculate check sums' do
32
+ visit '/file_uploader/upload'
33
+
34
+ within 'form' do
35
+ attach_file 'test_server_file_upload[uploaded_file]', fixture_file('file_uploader/file.bin').path
36
+ check 'test_server_file_upload[checksum_calculation]'
37
+ end
38
+
39
+ click_button 'upload'
40
+
41
+ expect(page).to have_content 'MD5'
42
+ expect(page).to have_content 'SHA256'
43
+ end
44
+
45
+ it 'enables the user to detect file type' do
46
+ visit '/file_uploader/upload'
47
+
48
+ within 'form' do
49
+ attach_file 'test_server_file_upload[uploaded_file]', fixture_file('file_uploader/file.bin').path
50
+ check 'test_server_file_upload[filetype_detection]'
51
+ end
52
+
53
+ click_button 'upload'
54
+
55
+ expect(page).to have_content 'Filetype'
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe "file_uploader/upload.html.haml" do
5
+ context 'File Upload' do
6
+ it 'shows a form to upload a file' do
7
+ visit '/file_uploader'
8
+
9
+ expect(page).to have_content 'File Uploader'
10
+ end
11
+ end
12
+ end
@@ -22,7 +22,7 @@ describe "reflector/client_ip_address.html.haml" do
22
22
  end
23
23
 
24
24
  context 'Reflect Client IP-Adress' do
25
- it 'lists links to all other test functions' do
25
+ it 'shows client ip address' do
26
26
  visit '/reflector/client_ip_address'
27
27
  expect(page).to have_content '127.0.0.1'
28
28
  end
@@ -0,0 +1,45 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe VirusDetector do
5
+ let(:virusscanner) { which('clamscan') }
6
+
7
+ context '#use' do
8
+ it 'adds nil if no virus is found' do
9
+ test_file = create_file('file.txt', 'data')
10
+
11
+ file = double 'file'
12
+ expect(file).to receive(:virus_id=).with(nil)
13
+ allow(file).to receive(:name).and_return(File.basename(test_file))
14
+ allow(file).to receive(:path).and_return(test_file)
15
+
16
+ detector = VirusDetector.new(command: virusscanner)
17
+ detector.use file
18
+
19
+ end
20
+
21
+ it 'adds virus id if virus is found' do
22
+ test_file = create_file('eicar.txt', eicar_test_string)
23
+
24
+ file = double 'file'
25
+ expect(file).to receive(:virus_id=).with('Eicar-Test-Signature')
26
+ allow(file).to receive(:name).and_return(File.basename(test_file))
27
+ allow(file).to receive(:path).and_return(test_file)
28
+
29
+ detector = VirusDetector.new(command: virusscanner)
30
+ detector.use file
31
+ end
32
+
33
+ it 'attaches an error message to the file to be scanned if virus scanner command could not be found' do
34
+ test_file = create_file('file.txt', 'data')
35
+
36
+ file = double 'file'
37
+ expect(file).to receive(:virus_id=).with("Scan commands \"clamdscan\" and \"clamscan\" not found. File \"#{File.basename(test_file)}\" could not be scanned.")
38
+ allow(file).to receive(:name).and_return(File.basename(test_file))
39
+ allow(file).to receive(:path).and_return(test_file)
40
+
41
+ detector = VirusDetector.new(command: which('blubasdf'))
42
+ detector.use file
43
+ end
44
+ end
45
+ end
data/test_server.gemspec CHANGED
@@ -50,7 +50,6 @@ Gem::Specification.new do |spec|
50
50
  spec.add_runtime_dependency 'uglifier', '>= 1.3.0'
51
51
  spec.add_runtime_dependency 'bundler', '~> 1.6.2'
52
52
  spec.add_runtime_dependency 'puma', '~> 2.8.2'
53
- spec.add_runtime_dependency 'pry'
54
- spec.add_runtime_dependency 'pry-rails'
55
- spec.add_runtime_dependency 'pry-debugger'
53
+ spec.add_runtime_dependency 'activesupport'
54
+ spec.add_runtime_dependency 'ruby-filemagic'
56
55
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test_server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Günnewig
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-29 00:00:00.000000000 Z
11
+ date: 2014-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -361,7 +361,7 @@ dependencies:
361
361
  - !ruby/object:Gem::Version
362
362
  version: 2.8.2
363
363
  - !ruby/object:Gem::Dependency
364
- name: pry
364
+ name: activesupport
365
365
  requirement: !ruby/object:Gem::Requirement
366
366
  requirements:
367
367
  - - ">="
@@ -375,21 +375,7 @@ dependencies:
375
375
  - !ruby/object:Gem::Version
376
376
  version: '0'
377
377
  - !ruby/object:Gem::Dependency
378
- name: pry-rails
379
- requirement: !ruby/object:Gem::Requirement
380
- requirements:
381
- - - ">="
382
- - !ruby/object:Gem::Version
383
- version: '0'
384
- type: :runtime
385
- prerelease: false
386
- version_requirements: !ruby/object:Gem::Requirement
387
- requirements:
388
- - - ">="
389
- - !ruby/object:Gem::Version
390
- version: '0'
391
- - !ruby/object:Gem::Dependency
392
- name: pry-debugger
378
+ name: ruby-filemagic
393
379
  requirement: !ruby/object:Gem::Requirement
394
380
  requirements:
395
381
  - - ">="
@@ -427,14 +413,17 @@ files:
427
413
  - app/assets/images/ajax-loader.gif
428
414
  - app/assets/javascripts/application.js
429
415
  - app/assets/javascripts/errors.js
416
+ - app/assets/javascripts/test_server/file_uploader.js.coffee
430
417
  - app/assets/javascripts/test_server/reflector.js.coffee
431
418
  - app/assets/stylesheets/application.scss
432
419
  - app/assets/stylesheets/errors.css
420
+ - app/assets/stylesheets/test_server/file_uploader.css.scss
433
421
  - app/assets/stylesheets/test_server/reflector.css.scss
434
422
  - app/controllers/concerns/.keep
435
423
  - app/controllers/test_server/application_controller.rb
436
424
  - app/controllers/test_server/dashboard_controller.rb
437
425
  - app/controllers/test_server/errors_controller.rb
426
+ - app/controllers/test_server/file_uploader_controller.rb
438
427
  - app/controllers/test_server/generator_controller.rb
439
428
  - app/controllers/test_server/reflector_controller.rb
440
429
  - app/controllers/test_server/static_controller.rb
@@ -442,15 +431,22 @@ files:
442
431
  - app/controllers/test_server/string_controller.rb
443
432
  - app/helpers/application_helper.rb
444
433
  - app/helpers/errors_helper.rb
434
+ - app/helpers/test_server/file_uploader_helper.rb
445
435
  - app/helpers/test_server/reflector_helper.rb
446
436
  - app/mailers/.keep
447
437
  - app/models/.keep
448
438
  - app/models/concerns/.keep
439
+ - app/models/test_server/file_upload.rb
449
440
  - app/views/layouts/application.html.haml
450
441
  - app/views/shared/_overview.html.haml
451
442
  - app/views/test_server/dashboard/show.html.haml
452
443
  - app/views/test_server/errors/not_found.html.haml
453
444
  - app/views/test_server/errors/show.html.haml
445
+ - app/views/test_server/file_uploader/_form.html.haml
446
+ - app/views/test_server/file_uploader/_overview.html.haml
447
+ - app/views/test_server/file_uploader/index.html.haml
448
+ - app/views/test_server/file_uploader/result.html.haml
449
+ - app/views/test_server/file_uploader/upload.html.haml
454
450
  - app/views/test_server/generator/_overview.html.haml
455
451
  - app/views/test_server/generator/index.html.haml
456
452
  - app/views/test_server/generator/xhr.html.haml
@@ -504,9 +500,12 @@ files:
504
500
  - lib/test_server/actions/initialize_application.rb
505
501
  - lib/test_server/actions/reload_configuration.rb
506
502
  - lib/test_server/actions/send_signal.rb
503
+ - lib/test_server/checksum.rb
504
+ - lib/test_server/checksum_calculator.rb
507
505
  - lib/test_server/cli/helper.rb
508
506
  - lib/test_server/cli/main.rb
509
507
  - lib/test_server/cli/reload.rb
508
+ - lib/test_server/command_runner.rb
510
509
  - lib/test_server/config.rb
511
510
  - lib/test_server/data.rb
512
511
  - lib/test_server/encoder.rb
@@ -518,18 +517,24 @@ files:
518
517
  - lib/test_server/error_handler.rb
519
518
  - lib/test_server/error_messages.rb
520
519
  - lib/test_server/exceptions.rb
520
+ - lib/test_server/file_size.rb
521
+ - lib/test_server/filetype_detector.rb
521
522
  - lib/test_server/locales/en.yml
522
523
  - lib/test_server/main.rb
524
+ - lib/test_server/md5_calculator.rb
523
525
  - lib/test_server/null_access_logger.rb
524
526
  - lib/test_server/permitted_params.rb
525
527
  - lib/test_server/process_environment.rb
526
528
  - lib/test_server/server.rb
527
529
  - lib/test_server/server_commands/puma.rb
528
530
  - lib/test_server/server_commands/rackup.rb
531
+ - lib/test_server/sha256_calculator.rb
529
532
  - lib/test_server/template_file.rb
530
533
  - lib/test_server/template_repository.rb
531
534
  - lib/test_server/ui_logger.rb
535
+ - lib/test_server/uploaded_file.rb
532
536
  - lib/test_server/version.rb
537
+ - lib/test_server/virus_detector.rb
533
538
  - lib/test_server/web_helper.rb
534
539
  - log/.keep
535
540
  - log/development.log
@@ -546,7 +551,7 @@ files:
546
551
  - public/assets/bootstrap/glyphicons-halflings-regular-8921a93349df81eec3d107b946cadc11.woff
547
552
  - public/assets/bootstrap/glyphicons-halflings-regular-dabd247fcf6131fac2d5fb49ef946032.eot
548
553
  - public/assets/bootstrap/glyphicons-halflings-regular-f7c7c8f3c0d76e8572c38e5d8ee21a62.ttf
549
- - public/assets/manifest-7c069da388f8a976fadfaab958b9feb7.json
554
+ - public/assets/manifest-1a3c45fcd482cca628c8cdc72631eb98.json
550
555
  - public/assets/open-sans/fonts/bold-italic/opensans-bold-italic-webfont-1fd4caae8a90824c18dab91d876abd96.eot
551
556
  - public/assets/open-sans/fonts/bold-italic/opensans-bold-italic-webfont-57323909f6eb12958ceb3d71a31124a5.woff
552
557
  - public/assets/open-sans/fonts/bold-italic/opensans-bold-italic-webfont-610aeecbe53403e7731391febf814c62.svg
@@ -616,6 +621,7 @@ files:
616
621
  - share/systemd/test_server.socket
617
622
  - share/systemd/tmpfiles.conf.erb
618
623
  - spec/controllers/errors_controller_spec.rb
624
+ - spec/controllers/test_server/file_uploader_controller_spec.rb
619
625
  - spec/controllers/test_server/reflector_controller_spec.rb
620
626
  - spec/encoder_spec.rb
621
627
  - spec/encoders/base64_spec.rb
@@ -628,15 +634,21 @@ files:
628
634
  - spec/features/fetch_test_data_plain_spec.rb
629
635
  - spec/features/fetch_test_data_via_streaming_spec.rb
630
636
  - spec/features/helper_spec.rb
637
+ - spec/filetype_detector_spec.rb
638
+ - spec/fixtures/file_uploader/file.bin
631
639
  - spec/permitted_params_spec.rb
632
640
  - spec/process_environment_spec.rb
641
+ - spec/sha256_calculator_spec.rb
633
642
  - spec/spec_helper.rb
634
643
  - spec/support/capybara.rb
644
+ - spec/support/commands.rb
635
645
  - spec/support/debugging.rb
646
+ - spec/support/eicar.rb
636
647
  - spec/support/encoding.rb
637
648
  - spec/support/environment.rb
638
649
  - spec/support/example.rb
639
650
  - spec/support/filesystem.rb
651
+ - spec/support/fixtures.rb
640
652
  - spec/support/html.rb
641
653
  - spec/support/matcher.rb
642
654
  - spec/support/pretty_print.xsl
@@ -645,9 +657,14 @@ files:
645
657
  - spec/support/rspec.rb
646
658
  - spec/support/string.rb
647
659
  - spec/support/timeout.rb
660
+ - spec/uploaded_file_spec.rb
648
661
  - spec/views/errors/not_found.html.haml_spec.rb
662
+ - spec/views/test_server/file_uploader/index.html.haml_spec.rb
663
+ - spec/views/test_server/file_uploader/result.html.haml_spec.rb
664
+ - spec/views/test_server/file_uploader/upload.html.haml_spec.rb
649
665
  - spec/views/test_server/reflector/client_ip_address.html.haml_spec.rb
650
666
  - spec/views/test_server/reflector/index.html.haml_spec.rb
667
+ - spec/virus_detector_spec.rb
651
668
  - test_server.gemspec
652
669
  - tmp/.keep
653
670
  - vendor/assets/components/open-sans/.bower.json
@@ -734,6 +751,7 @@ specification_version: 4
734
751
  summary: Test server for proxies
735
752
  test_files:
736
753
  - spec/controllers/errors_controller_spec.rb
754
+ - spec/controllers/test_server/file_uploader_controller_spec.rb
737
755
  - spec/controllers/test_server/reflector_controller_spec.rb
738
756
  - spec/encoder_spec.rb
739
757
  - spec/encoders/base64_spec.rb
@@ -746,15 +764,21 @@ test_files:
746
764
  - spec/features/fetch_test_data_plain_spec.rb
747
765
  - spec/features/fetch_test_data_via_streaming_spec.rb
748
766
  - spec/features/helper_spec.rb
767
+ - spec/filetype_detector_spec.rb
768
+ - spec/fixtures/file_uploader/file.bin
749
769
  - spec/permitted_params_spec.rb
750
770
  - spec/process_environment_spec.rb
771
+ - spec/sha256_calculator_spec.rb
751
772
  - spec/spec_helper.rb
752
773
  - spec/support/capybara.rb
774
+ - spec/support/commands.rb
753
775
  - spec/support/debugging.rb
776
+ - spec/support/eicar.rb
754
777
  - spec/support/encoding.rb
755
778
  - spec/support/environment.rb
756
779
  - spec/support/example.rb
757
780
  - spec/support/filesystem.rb
781
+ - spec/support/fixtures.rb
758
782
  - spec/support/html.rb
759
783
  - spec/support/matcher.rb
760
784
  - spec/support/pretty_print.xsl
@@ -763,7 +787,12 @@ test_files:
763
787
  - spec/support/rspec.rb
764
788
  - spec/support/string.rb
765
789
  - spec/support/timeout.rb
790
+ - spec/uploaded_file_spec.rb
766
791
  - spec/views/errors/not_found.html.haml_spec.rb
792
+ - spec/views/test_server/file_uploader/index.html.haml_spec.rb
793
+ - spec/views/test_server/file_uploader/result.html.haml_spec.rb
794
+ - spec/views/test_server/file_uploader/upload.html.haml_spec.rb
767
795
  - spec/views/test_server/reflector/client_ip_address.html.haml_spec.rb
768
796
  - spec/views/test_server/reflector/index.html.haml_spec.rb
797
+ - spec/virus_detector_spec.rb
769
798
  has_rdoc: