RegressionTests__XMLCanonicalEncodingTests.st
author Stefan Vogel <sv@exept.de>
Tue, 11 Jun 2019 10:34:41 +0200
changeset 2321 32ea6329f5ad
parent 1898 894ff733ec4d
permissions -rw-r--r--
class: stx_goodies_regression class changed: #classNamesAndAttributes make classes autoloaded that stc cannot compile (yet)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1898
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Encoding: utf8 }"
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ Package: 'stx:goodies/regression' }"
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
"{ NameSpace: RegressionTests }"
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
TestCase subclass:#XMLCanonicalEncodingTests
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	instanceVariableNames:''
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	classVariableNames:''
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
	poolDictionaries:''
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
	category:'tests-Regression-XML'
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
!XMLCanonicalEncodingTests class methodsFor:'documentation'!
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
documentation
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
"
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    documentation to be added.
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
    [author:]
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
        cg
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    [instance variables:]
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    [class variables:]
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
    [see also:]
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
"
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
! !
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
!XMLCanonicalEncodingTests methodsFor:'testing'!
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
test01
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
    "see examples in https://www.w3.org/TR/2001/REC-xml-c14n-20010315"
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
    |dom out canonOut|
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
    dom := XML::XMLParser 
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
                parse:
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
'<?xml version="1.0" encoding="ISO-8859-1"?>
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
<doc>&#169;</doc>'.
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    out := dom printString.
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    self assert:(out = 
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
'<?xml version="1.0"?>
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
<doc>©</doc>').
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    canonOut := dom canonicalPrintString.
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    self assert:(canonOut = '<doc>©</doc>').
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
!
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
test02
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    "see examples in https://www.w3.org/TR/2001/REC-xml-c14n-20010315"
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    |dom out canonOut worldFile|
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    "/ <!!-- Let world.txt contain "world" (excluding the quotes) -->
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    worldFile := 'world.txt' asFilename.
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    [
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
        worldFile contents:'world'.
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
        dom := XML::XMLParser 
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
                parse:
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
'<!!DOCTYPE doc [
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
<!!ATTLIST doc attrExtEnt ENTITY #IMPLIED>
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
<!!ENTITY ent1 "Hello">
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
<!!ENTITY ent2 SYSTEM "world.txt">
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
<!!ENTITY entExt SYSTEM "earth.gif" NDATA gif>
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
<!!NOTATION gif SYSTEM "viewgif.exe">
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
]>
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
<doc attrExtEnt="entExt">
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
   &ent1;, &ent2;!!
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
</doc>'.
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
        out := dom printString.
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
        self assert:(out = 
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
'<doc attrExtEnt="entExt">
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
   Hello, world!!
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
</doc>'
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
        ).
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
        canonOut := dom canonicalPrintString.
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
        self assert:(canonOut = '<doc attrExtEnt="entExt">
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
   Hello, world!!
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
</doc>').
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    ] ensure:[
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
        worldFile remove
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    ]
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
! !
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
!XMLCanonicalEncodingTests class methodsFor:'documentation'!
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
version
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    ^ '$Header$'
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
version_CVS
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    ^ '$Header$'
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
! !
894ff733ec4d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101