From 1d558228b702188d0cd4b8aeb4e064971b92eeba Mon Sep 17 00:00:00 2001 From: Dirk Wetter Date: Mon, 15 Apr 2019 10:34:03 +0200 Subject: [PATCH] PoC added Current catch: "JSON::Validator" cannot swallow "--json-pretty". Other validators tried had issues too. Improvements welcome! See #1227 --- t/09_isJSON_valid.t | 58 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100755 t/09_isJSON_valid.t diff --git a/t/09_isJSON_valid.t b/t/09_isJSON_valid.t new file mode 100755 index 0000000..aed17fe --- /dev/null +++ b/t/09_isJSON_valid.t @@ -0,0 +1,58 @@ +#!/usr/bin/env perl + +# This is more a PoC. Improvements welcome! +# +# Current catches: +# * JSON::Validator cannot swallow --json-pretty +# * other validators "Test::JSON", "Test::JSON::More", "JSON::Schema", "JSON::Parse" had issues too + +use strict; +use Test::More; +use JSON; +use JSON::Validator; + +my $jv = JSON::Validator->new; +my ( + $out, + $json, + $found, + $tests +); +$tests = 0; + +my $hostn = "cloudflare.com"; +unlink 'tmp.json'; + +#1 +pass("Running testssl.sh against $hostn with plain JSON output"); +$tests++; +$out = `./testssl.sh --ssl-native --ip=one -q --jsonfile tmp.json --color 0 $hostn`; +$json = json('tmp.json'); +unlink 'tmp.json'; + +#2 +my @errors = $jv->validate(@$json); +is(@errors,0,"no errors"); +$tests++; + +#3 +pass("Running testssl.sh --mx against $hostn with plain JSON"); +$tests++; +$out = `./testssl.sh --ssl-native --ip=one --mx -q --jsonfile tmp.json --color 0 $hostn`; +$json = json('tmp.json'); +unlink 'tmp.json'; + +#4 +my @errors = $jv->validate(@$json); +is(@errors,0,"no errors"); +$tests++; + +done_testing($tests); + +sub json($) { + my $file = shift; + $file = `cat $file`; + return from_json($file); +} + +