The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl

# test that the output doesn't contain things it shouldn't

use Test::More;
use strict;

BEGIN
   {
   plan tests => 33;
   chdir 't' if -d 't';
   use lib '../lib';
   use_ok ("Graph::Easy") or die($@);
   };

#############################################################################
my $graph = Graph::Easy->new();

is (ref($graph), 'Graph::Easy');

my ($A,$B,$E) = $graph->add_edge('A','B','C');

my ($N) = $graph->add_anon_node();
$graph->add_edge('B',$N);

my ($G) = $graph->add_group('G');

# some attributes that should not be output:

$A->set_attribute('flow','east');
$A->set_attribute('autolabel','12');
$A->set_attribute('shape','diamond');
$A->set_attribute('group','G');
$A->set_attribute('format','pod');

$B->set_attribute('shape','point');
$B->set_attribute('point-shape','star');
$B->set_attribute('point-style','closed');
$B->set_attribute('border-style','double');
$B->set_attribute('offset','2,2');
$B->set_attribute('origin','A');
$B->set_attribute('textwrap','auto');

$graph->set_attribute('type','undirected');
$graph->set_attribute('node','columns','2');
$graph->set_attribute('labelpos','bottom');
$graph->set_attribute('root','A');

$E->set_attribute('labelcolor','green');
$E->set_attribute('autojoin','always');
$E->set_attribute('autosplit','always');
$E->set_attribute('end','north');
$E->set_attribute('start','east');
$E->set_attribute('minlen','2');
$E->set_attribute('fill','red');
$E->set_attribute('format','pod');
$E->set_attribute('textwrap','auto');

$G->set_attribute('root','A');

# some things that should be in the output
$A->set_attribute('id','A1');


# this will load As_svg:
my $svg = $graph->as_svg();

for my $w (qw/
	flow auto-label arrow-style arrow-shape
	shape point-shape
	auto-join auto-split
	end start minlen
	offset origin columns
	label-pos label-color format root rank
	textwrap format
	/)
   {
   unlike ($svg, qr/$w=/, "attribute $w skipped");
   if ($w =~ /-/)
     {
     my $w2 = $w; $w2 =~ s/-//g;
     unlike ($svg, qr/$w2=/, "attribute $w skipped");
     }
   }
like ($svg, qr/(id)="/, 'attribute id included');

unlike ($svg, qr/type=.undirected/, "attribute type for graph skipped");

#print $graph->as_txt();
# print STDERR $svg."\n";

#############################################################################

# all tests done