File: test_erase.t

package info (click to toggle)
libxml-twig-perl 1%3A3.48-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 4,392 kB
  • ctags: 2,143
  • sloc: perl: 20,863; xml: 418; makefile: 7
file content (68 lines) | stat: -rwxr-xr-x 1,967 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/perl -w
use strict;

use XML::Twig;

$|=1;

my $TMAX=1; # do not forget to update!
print "1..$TMAX\n";

undef $/;
my $doc=<DATA>;

my $t= XML::Twig->new(keep_spaces => 1);
$t->parse( $doc);
foreach my $erase ($t->descendants( 'erase'))
  { $erase->erase; }
my $result=$t->sprint;
$result=~ s{\s*$}{}s;     # remove trailing spaces (and \n)

my $expected_result= $doc; 
  $expected_result=~ s{</?erase/?>}{}g;
$expected_result=~ s{\s*$}{}s;     # remove trailing spaces (and \n)

if( $result eq $expected_result)
  { print "ok 1\n"; }
else
  { print "not ok 1\n"; 
    print STDERR "expected: \n$expected_result\n",
                 "real: \n$result\n";
  }
  
exit 0;


__DATA__
<doc>
  <!-- erase an empty element -->
  <test1>
    <elt><erase/></elt>
    <elt>text <erase/></elt>
    <elt><erase/> text (1)</elt>
    <elt>text <erase/> text (2)</elt>
    <elt><child/><erase/><child/></elt>
    <elt><erase/><child/></elt>
    <elt><child/><erase/></elt>
  </test1>
  <!-- erase an element with 1 text child -->
  <test2>
    <elt><erase>text (3)</erase></elt>
    <elt>text <erase>text (4)</erase></elt>
    <elt><erase>text (5)</erase> text (6)</elt>
    <elt>text (7)<erase>text (8)</erase> text (9)</elt>
    <elt><child/><erase>text (10)</erase><child/></elt>
    <elt><erase>text (11)</erase><child/></elt>
    <elt><child/><erase>text</erase></elt>
  </test2>
  <!-- erase an element with several children -->
  <test3>
    <elt><erase><child>text (12)</child><child/></erase></elt>
    <elt>text (13)<erase><child>text (14)</child><child/></erase></elt>
    <elt><erase><child>text (15)</child><child/></erase> text (16)</elt>
    <elt>text (17)<erase><child>text (18)</child><child/></erase> text (19)</elt>
    <elt><child/><erase><child>text (20)</child><child/></erase>child/></elt>
    <elt><erase><child>text (21)</child><child/></erase>child/></elt>
    <elt><child/><erase><child>text (22)</child><child/></erase></elt>
  </test3>
</doc>