#------------------------------------------------------------------- # WebGUI is Copyright 2001-2009 Plain Black Corporation. #------------------------------------------------------------------- # Please read the legal notices (docs/legal.txt) and the license # (docs/license.txt) that came with this distribution before using # this software. #------------------------------------------------------------------- # http://www.plainblack.com info@plainblack.com #------------------------------------------------------------------- use FindBin; use strict; use lib "$FindBin::Bin/../lib"; use WebGUI::Test; use WebGUI::Session; use WebGUI::Macro::ViewCart; use HTML::TokeParser; use Data::Dumper; use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; my @testSets = ( { comment => 'default', label => q!!, output => 'View Cart', }, { comment => 'custom text', label => q!A Rock Hammer!, output => 'A Rock Hammer', }, ); my $numTests = 0; foreach my $testSet (@testSets) { $numTests += 1 + (ref $testSet->{output} eq 'CODE'); } plan tests => $numTests; foreach my $testSet (@testSets) { my $output = WebGUI::Macro::ViewCart::process( $session, $testSet->{label}); if (ref $testSet->{output} eq 'CODE') { my ($url, $label) = $testSet->{output}->($output); is($label, $testSet->{label}, $testSet->{comment}.", label"); is($url, $testSet->{url}, $testSet->{comment}.", url"); } else { is($output, $testSet->{output}, $testSet->{comment}); } } sub simpleHTMLParser { my ($text) = @_; my $p = HTML::TokeParser->new(\$text); my $token = $p->get_tag("a"); my $url = $token->[1]{href} || "-"; my $label = $p->get_trimmed_text("/a"); return ($url, $label); } sub simpleTextParser { my ($text) = @_; my ($url) = $text =~ /^HREF=(.+)$/m; my ($label) = $text =~ /^LABEL=(.+)$/m; return ($url, $label); }