test_server 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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: