use strict; use Test::More; my $vcard = < (8 + $use_writer + $use_simple); use_ok("XML::SAXDriver::vCard"); use_ok("XML::SAX::ParserFactory"); use_ok("FileHandle"); my $output = ""; my $writer = undef; my $parser = undef; my $driver = undef; if ($use_writer) { $writer = XML::SAX::Writer->new(Output=>\$output); like($writer,qr/XML::(?:SAX::Writer|Filter::BufferText)/,"The object isa ".ref($writer)); } $parser = XML::SAX::ParserFactory->parser(Handler=>$writer); like($parser,qr/XML::SAX::(?:Pure|Exp|LibX)/,"The object isa ".ref($parser)); $driver = XML::SAXDriver::vCard->new(Handler=>$parser); isa_ok($driver,"XML::SAXDriver::vCard"); my $fh = FileHandle->new(">test.vcd"); isa_ok($fh,"FileHandle"); print $fh $vcard; $fh->close(); ok($driver->parse_file("test.vcd"),"Parsed vCard: test.vcd"); ok($driver->parse_uri("file://test.vcd"),"Parsed vCard : file://test.vcd"); if ($use_simple) { my $ref = &XML::Simple::XMLin($output); cmp_ok($ref->{'vCard'}{'adr'}{'street'},"eq","123 Main Street",$ref->{'vCard'}{'adr'}{'street'}); }