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.
- checksums.yaml +4 -4
- data/.travis.yml +6 -3
- data/Gemfile +13 -5
- data/README.md +16 -0
- data/Rakefile +17 -3
- data/app/assets/javascripts/test_server/file_uploader.js.coffee +3 -0
- data/app/assets/stylesheets/application.scss +31 -0
- data/app/assets/stylesheets/test_server/file_uploader.css.scss +3 -0
- data/app/controllers/test_server/file_uploader_controller.rb +42 -0
- data/app/helpers/test_server/file_uploader_helper.rb +2 -0
- data/app/models/test_server/file_upload.rb +41 -0
- data/app/views/layouts/application.html.haml +10 -0
- data/app/views/test_server/dashboard/show.html.haml +1 -0
- data/app/views/test_server/file_uploader/_form.html.haml +27 -0
- data/app/views/test_server/file_uploader/_overview.html.haml +1 -0
- data/app/views/test_server/file_uploader/index.html.haml +1 -0
- data/app/views/test_server/file_uploader/result.html.haml +40 -0
- data/app/views/test_server/file_uploader/upload.html.haml +1 -0
- data/config/routes.rb +8 -2
- data/lib/test_server/checksum.rb +21 -0
- data/lib/test_server/checksum_calculator.rb +27 -0
- data/lib/test_server/command_runner.rb +58 -0
- data/lib/test_server/exceptions.rb +3 -0
- data/lib/test_server/file_size.rb +14 -0
- data/lib/test_server/filetype_detector.rb +21 -0
- data/lib/test_server/locales/en.yml +28 -1
- data/lib/test_server/main.rb +6 -1
- data/lib/test_server/md5_calculator.rb +17 -0
- data/lib/test_server/permitted_params.rb +25 -7
- data/lib/test_server/sha256_calculator.rb +17 -0
- data/lib/test_server/uploaded_file.rb +58 -0
- data/lib/test_server/version.rb +1 -1
- data/lib/test_server/virus_detector.rb +43 -0
- data/lib/test_server.rb +15 -0
- data/public/assets/{manifest-7c069da388f8a976fadfaab958b9feb7.json → manifest-1a3c45fcd482cca628c8cdc72631eb98.json} +0 -0
- data/spec/controllers/test_server/file_uploader_controller_spec.rb +26 -0
- data/spec/encoder_spec.rb +3 -3
- data/spec/features/fetch_data_via_javascript_spec.rb +18 -18
- data/spec/filetype_detector_spec.rb +31 -0
- data/spec/fixtures/file_uploader/file.bin +0 -0
- data/spec/permitted_params_spec.rb +1 -1
- data/spec/sha256_calculator_spec.rb +36 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/support/commands.rb +15 -0
- data/spec/support/debugging.rb +6 -1
- data/spec/support/eicar.rb +15 -0
- data/spec/support/fixtures.rb +16 -0
- data/spec/support/rails.rb +2 -0
- data/spec/uploaded_file_spec.rb +167 -0
- data/spec/views/errors/not_found.html.haml_spec.rb +1 -1
- data/spec/views/test_server/file_uploader/index.html.haml_spec.rb +32 -0
- data/spec/views/test_server/file_uploader/result.html.haml_spec.rb +58 -0
- data/spec/views/test_server/file_uploader/upload.html.haml_spec.rb +12 -0
- data/spec/views/test_server/reflector/client_ip_address.html.haml_spec.rb +1 -1
- data/spec/virus_detector_spec.rb +45 -0
- data/test_server.gemspec +2 -3
- 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
|
@@ -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 '
|
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 '
|
54
|
-
spec.add_runtime_dependency '
|
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
|
+
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-
|
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:
|
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:
|
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-
|
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:
|