1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
# vim: sw=4 : et : ts=4
use warnings;
use strict;
use Test::More tests => 9;
use_ok('Munin::Node::Server');
no warnings;
*Munin::Node::Server::_net_write = sub {};
use warnings;
###############################################################################
# C A P A B I L I T I E S
{
my $session = {};
Munin::Node::Server::_negotiate_session_capabilities($session, 'multigraph');
is_deeply($session, {
server_capabilities => {
multigraph => 1,
},
},
"Negotiate a single capability");
}
{
my $session = {};
Munin::Node::Server::_negotiate_session_capabilities($session, '');
is_deeply($session, {
server_capabilities => {
},
},
"No capabilities offered");
}
{
my $session = {};
Munin::Node::Server::_negotiate_session_capabilities($session, "dirtyconfig multigraph\r");
is_deeply($session, {
server_capabilities => {
dirtyconfig => 1,
multigraph => 1,
},
},
"Ignore trailing CR on capabiltities string.");
}
### capabilities are reported to the plugins.
{
my $session = {};
Munin::Node::Server::_negotiate_session_capabilities($session, '');
ok(! $ENV{MUNIN_CAP_DIRTYCONFIG}. 'No dirtyconfig allowed');
}
{
my $session = {};
Munin::Node::Server::_negotiate_session_capabilities($session, 'multigraph');
ok(! $ENV{MUNIN_CAP_DIRTYCONFIG}. 'Still no dirtyconfig allowed');
}
{
my $session = {};
Munin::Node::Server::_negotiate_session_capabilities($session, 'dirtyconfig multigraph');
ok($ENV{MUNIN_CAP_DIRTYCONFIG}. 'Dirtyconfig allowed when server claims it as a capability');
}
{
no warnings;
local *Munin::Node::Server::_net_write = sub { return $_[1] };
use warnings;
my $session = {};
is(
Munin::Node::Server::_negotiate_session_capabilities($session, 'dirtyconfig multigraph'),
"cap multigraph dirtyconfig\n",
'Node sends capabilities back to the server'
);
$session = {};
is(
Munin::Node::Server::_negotiate_session_capabilities($session, ''),
"cap multigraph dirtyconfig\n",
q{Node sends capabilities back to the server, even when the server provided none}
);
}
|