From 7c5309cf7229e06dd6eee23cde0197aa4ef288da Mon Sep 17 00:00:00 2001 From: Jakub Cegan <cegan@ics.muni.cz> Date: Fri, 7 Sep 2012 13:47:05 +0200 Subject: [PATCH] (Issue #525) Pridani souboru pro unit testy Testovaci soubory pro klienta a server.Vetsina testu serveru je nefunkcnich. Vice informaci je dostupnych v Redmine na strance Issue. --- src/warden-client/lib/WardenClientSend.t | 32 ++++++++++ src/warden-server/lib/Warden.t | 80 ++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 src/warden-client/lib/WardenClientSend.t create mode 100644 src/warden-server/lib/Warden.t diff --git a/src/warden-client/lib/WardenClientSend.t b/src/warden-client/lib/WardenClientSend.t new file mode 100644 index 0000000..b32a36b --- /dev/null +++ b/src/warden-client/lib/WardenClientSend.t @@ -0,0 +1,32 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Test::More tests => 2; + +use lib '..'; +use WardenClientSend; + +my $uri_ok = 'https://warden-dev.cesnet.cz:443/Warden'; +my $ssl_key_file_ok = '/opt/warden-client/etc/warden-dev.cesnet.cz.key'; +my $ssl_cert_file_ok = '/opt/warden-client/etc/warden-dev.cesnet.cz.pem'; +my $ssl_ca_file_ok = '/opt/warden-client/etc/tcs-ca-meta-bundle.pem'; +my $method_ok = 'saveNewEvent'; +my $data_ok = ''; + +my $warden_path_ok = '/opt/warden-client'; +my $warden_path_fail = '/path/to/fail'; +my @event_ok = ("honeyscan", "1234567890", "portscan","IP", "123.123.123.123", "TCP", "22", "1234567890", "important note or comment", "null", "20"); +my @vent_ok = ('HoneyScan', '2012-09-01T23:02:48', 'webattackReply-To:', '170.96.48.164', 'UDP', '44392354', 'tohle je takova normalni jednoducha poznamka', '180187'); + +my $ret; + +#my ($ret) = WardenClientSend::c2s($uri_ok, $ssl_key_file_ok, $ssl_cert_file_ok, $ssl_ca_file_ok, $method_ok, $data_ok); +#ok ($ret == 1, 'Everything is fine!'); + +$ret = WardenClientSend::saveNewEvent($warden_path_fail,\@event_ok); +ok ($ret == 0, 'Bad Warden path!'); + +$ret = WardenClientSend::saveNewEvent($warden_path_ok,\@event_ok); +ok ($ret == 1, 'Everything is fine.'); diff --git a/src/warden-server/lib/Warden.t b/src/warden-server/lib/Warden.t new file mode 100644 index 0000000..956f3f6 --- /dev/null +++ b/src/warden-server/lib/Warden.t @@ -0,0 +1,80 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use DBI; +use DBD::mysql; + +use Test::More tests => 2; +#use Test::Exception; + +use lib '..'; +use Warden; + +# Fake $ENV values +BEGIN { + $ENV{'SSL_CLIENT_S_DN_CN'} = '?'; + $ENV{'SSL_CLIENT_CERT'} = '?'; + $ENV{'REMOTE_ADDR'} = '?'; + $ENV{'SERVER_NAME'} = 'warden-dev.cesnet.cz'; + $ENV{'SERVER_ADDR'} = '195.113.161.39'; + $ENV{'SERVER_PORT'} = '443'; +} + + +my $ret; + + +our $MAX_EVENTS_LIMIT = "1000000"; +our %VALID_STRINGS = ( +"type" => ["portscan", "bruteforce", "probe", "spam", "phishing", "botnet_c_c", "dos", "malware", "copyright", "webattack", "test", "other"], +); + +our $DBH = DBI->connect("DBI:mysql:database=warden;host=localhost", "root", "w4rd3n&r00t", {RaiseError => 1, mysql_auto_reconnect => 1}) || die "Could not connect to database: $DBI::errstr"; + +#print $ENV{'SSL_CLIENT_S_DN_CN'}; +#foreach (keys %ENV){ +# print "$_ -> $ENV{$_}\n"; +#} + +#trim test +$ret = Warden::trim(' a '); +is($ret,'a','Trim si OK.'); + + +# Alternate names test +#$alt_names, $ip, $service_type, $client_type, $function_name +#$ret = Warden::getAltNames("warden-dev.cesnet.cz","195.113.161.39","honeyscan","s","someEvent"); +#is($ret, '', 'Alternate names are OK.'); + +# Client authorizaton test +#$ret = Warden::authorizeClient("warden-dev.cesnet.cz","195.113.161.39","honeyscan","s","someEvent"); +#is($ret, undef, 'Client is unregistered.'); + +#$ret = Warden::authorizeClient(); +#is($ret, undef, 'Client is from the unauthorized subnet.'); + +#$ret = Warden::authorizeClient(); +#is($ret, undef, 'Everything is fine.'); + +# Save event test +#$class, $data +#dies_ok {Warden::saveNewEvent()} 'Cannot do insert statement.'; + +#my @event_ok = ("honeyscan", "1234567890", "portscan","IP", "123.123.123.123", "TCP", "22", "1234567890", "important note or comment", "null", "20"); +#$ret = Warden::saveNewEvent("a",@event_ok); +#ok($ret, 'Everything is fine.'); + +# Get new event +#dies_ok {Warden::getNewEvents()} 'Cannot work with the database.'; + +#$ret = Warden::getNewEvents(); +#is($ret, @EVENTS, 'Everything is fine.'); + +# Get last ID test +#dies_ok {Warden::getLastId()} 'Cannot prepare statment.'; + +$ret = Warden::getLastId(); +print $ret. "\n"; +is($ret, '16302246', 'GetLastID is OK.'); -- GitLab