mirror of
				https://github.com/drwetter/testssl.sh.git
				synced 2025-10-31 05:45:26 +01:00 
			
		
		
		
	Merge pull request #1236 from drwetter/json_validate
PoC added for JSON validation unit test
This commit is contained in:
		
							
								
								
									
										58
									
								
								t/09_isJSON_valid.t
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										58
									
								
								t/09_isJSON_valid.t
									
									
									
									
									
										Executable file
									
								
							| @@ -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); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user
	 Dirk Wetter
					Dirk Wetter