1#!/use/bin/perl -w
2
3use strict;
4use Test::More;
5BEGIN {
6	my $add = 0;
7	eval {require Test::NoWarnings;Test::NoWarnings->import; ++$add; 1 }
8		or diag "Test::NoWarnings missed, skipping no warnings test";
9	plan tests => 3 + $add;
10
11	eval {require Data::Dumper;Data::Dumper::Dumper(1)}
12		and *dd = sub ($) { Data::Dumper->new([$_[0]])->Indent(0)->Terse(1)->Quotekeys(0)->Useqq(1)->Purity(1)->Dump }
13		or  *dd = \&explain;
14}
15
16use XML::Fast 'xml2hash';
17
18# Parsing
19
20my $xml0 = q{<!DOCTYPE>};
21my $xml1 = q{<?xml?>
22	<!DOCTYPE greeting [
23		<!ELEMENT greeting (#PCDATA)>
24	]>
25	<greeting>Hello!</greeting>
26};
27my $xml2 = q{<?xml?><!DOCTYPE test><greeting>Hello!</greeting>};
28
29our $data;
30{
31	is_deeply
32		$data = xml2hash($xml0),
33		{},
34		'doctype 0'
35	or diag dd($data),"\n";
36}
37{
38	is_deeply
39		$data = xml2hash($xml1),
40		{ greeting => 'Hello!' },
41		'doctype 1'
42	or diag dd($data),"\n";
43}
44{
45	is_deeply
46		$data = xml2hash($xml2),
47		{ greeting => 'Hello!' },
48		'doctype 2'
49	or diag dd($data),"\n";
50}
51