LP#1618136 Fix webstaff IDL2js.js test failures
authorJeff Godin <jgodin@tadl.org>
Mon, 29 Aug 2016 16:58:27 +0000 (12:58 -0400)
committerDan Wells <dbw2@calvin.edu>
Mon, 29 Aug 2016 21:24:33 +0000 (17:24 -0400)
Fix webstaff test failures due to an invalid IDL2js.js file by adding
newly-required preprocessing to the support script that generates that
file when running tests.

Signed-off-by: Jeff Godin <jgodin@tadl.org>
Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Open-ILS/web/js/ui/default/staff/test/data/idl2js.pl

index 66fb2e1..4301f31 100644 (file)
@@ -9,7 +9,8 @@ my $xsl_file = '../../../../../../../xsl/fm_IDL2js.xsl';
 my $xslt = XML::LibXSLT->new();
 my $style_doc = XML::LibXML->load_xml(location => $xsl_file, no_cdata=>1);
 my $stylesheet = $xslt->parse_stylesheet($style_doc);
-my $idl_doc = XML::LibXML->load_xml(location => $idl_file);
+my $idl_string = preprocess_idl_file($idl_file);
+my $idl_doc = XML::LibXML->load_xml(string => $idl_string);
 my $results = $stylesheet->transform($idl_doc);
 my $output = $stylesheet->output_as_bytes($results);
 
@@ -20,3 +21,16 @@ print IDL $output;
 close(IDL);
 
 
+sub preprocess_idl_file {
+       my $file = shift;
+       open my $idl_fh, '<', $file or die "Unable to open IDL file $file : $!\n";
+       local $/ = undef;
+       my $xml = <$idl_fh>;
+       close($idl_fh);
+       # These substitutions are taken from OpenILS::WWW::IDL2js
+       $xml =~ s/<!--.*?-->//sg;     # filter out XML comments ...
+       $xml =~ s/(?:^|\s+)--.*$//mg; # and SQL comments ...
+       $xml =~ s/^\s+/ /mg;          # and extra leading spaces ...
+       $xml =~ s/\R*//g;             # and newlines
+       return $xml;
+}