The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use Test;

BEGIN { 
	plan tests => 2, todo => [];
}

use XML::XPathScript;

sub test_xml {
	my( $xml, $style, $result, $comment ) = @_;
    my $xps = new XML::XPathScript( xml => $xml, stylesheet => $style );
	my $buffer;
	$xps->process( \$buffer );

	ok( $buffer, $result, $comment );
}

my $style = <<'EOT';
<%
	$t->{doc}{testcode} = sub{
       my ($self, $t) = @_;
       my ($blahnode) = findnodes(".//blah", $self);
       $t->{pre} = findvalue('@value', $blahnode);
       return DO_SELF_ONLY;
    }
%><%= apply_templates() %>
EOT

test_xml( '<doc><foo><bar /><blah value="ok"/></foo></doc>', 
		$style, 
		"ok\n", 
		'findnodes($node,$path) and findvalue($node)' );

$style = <<'EOT';
<%
	$t->{doc}{testcode} = sub{
       my ($self, $t) = @_;
       my ($blahnode) = findnodes("/doc/foo/blah", $self);
       $t->{pre} = findvalue('@value', $blahnode);
       return DO_SELF_ONLY;
    }
%><%= apply_templates() %>
EOT

test_xml( '<doc><foo><bar /><blah value="ok"/></foo></doc>', 
		$style, 
		"ok\n", 
		'findnodes($node) - absolute XPath search' );

1;