trunk/XMLv2__EncodingTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 08 Apr 2008 19:47:42 +0000
changeset 0 5057afe1ec87
permissions -rw-r--r--
Initial import from CVS

"{ Package: 'stx:goodies/xmlsuite' }"

"{ NameSpace: XMLv2 }"

TestCase subclass:#EncodingTests
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'XML Suite-Tests'
!

!EncodingTests class methodsFor:'documentation'!

documentation
"
    documentation to be added.

    [author:]
        Jan Vrany (janfrog@bruxa)

    [instance variables:]

    [class variables:]

    [see also:]

"
!

history
    "Created: / 15-06-2005 / 13:48:02 / janfrog"
! !

!EncodingTests class methodsFor:'defaults'!

defaultTestDirectory

    ^(Smalltalk getPackageDirectoryForPackage:self package)
        construct:'resources/tests/encoding'

    "Created: / 15-06-2005 / 14:26:36 / janfrog"
    "Modified: / 22-06-2005 / 09:22:56 / masca"
! !

!EncodingTests methodsFor:'accessing'!

letters

    ^'+ěščřžýáíéúů+ĚŠČŘŽÝÁÍÉÚŮ'
        utf8Decoded

    "Created: / 15-06-2005 / 14:44:15 / janfrog"
!

sentence

    ^'Příliš žluťoučký kůň úpěl ďábelské ódy'
        utf8Decoded

    "Modified: / 15-06-2005 / 14:43:28 / janfrog"
! !

!EncodingTests methodsFor:'initialize / release'!

setUp
    "common setup - invoked before testing."

    super setUp

    "Created: / 15-06-2005 / 13:48:02 / janfrog"
!

tearDown
    "common cleanup - invoked after testing."

    super tearDown

    "Created: / 15-06-2005 / 13:48:02 / janfrog"
! !

!EncodingTests methodsFor:'tests'!

test_read_iso8859_2

    | doc xmlSentence xmlLetters|
    doc := XMLv2::Parser new
            processDocumentInFilename:
                (self class defaultTestDirectory 
                    construct:'enc-iso8859-2.xml').
    xmlSentence := (doc root anyElementNamed:'sentence') characterData.
    xmlLetters := (doc root anyElementNamed:'letters') characterData.

    self assert:self sentence = xmlSentence.
    self assert:self letters = xmlLetters.

    "Created: / 15-06-2005 / 14:56:14 / janfrog"
!

test_read_utf8

    | doc xmlSentence xmlLetters|
    doc := XMLv2::Parser new
            processDocumentInFilename:
                (self class defaultTestDirectory 
                    construct:'enc-utf8.xml').
    xmlSentence := (doc root anyElementNamed:'sentence') characterData.
    xmlLetters := (doc root anyElementNamed:'letters') characterData.

    self assert:self sentence = xmlSentence.
    self assert:self letters = xmlLetters.

    "
        self sentence 
        xmlSentence
    "

    "Created: / 15-06-2005 / 14:55:41 / janfrog"
!

test_read_utf8_without_encoding_decl

    | doc xmlSentence xmlLetters|
    doc := XMLv2::Parser new
            processDocumentInFilename:
                (self class defaultTestDirectory 
                    construct:'enc-utf8-without-encoding-decl.xml').
    xmlSentence := (doc root anyElementNamed:'sentence') characterData.
    xmlLetters := (doc root anyElementNamed:'letters') characterData.

    self assert:self sentence = xmlSentence.
    self assert:self letters = xmlLetters.

    "
        self sentence 
        xmlSentence
    "

    "Created: / 16-06-2005 / 09:19:28 / janfrog"
!

test_write_iso8859_2

    | doc fileBuffer docBuffer |
    doc := XML::Document new.
    doc addNode:(XML::Element tag:'enc').
    doc root addNode:
        ((XML::Element tag:'sentence')
            addNode:(XML::Text text:self sentence)).
    doc root addNode:
        ((XML::Element tag:'letters')
            addNode:(XML::Text text:self letters)).


    fileBuffer := (self class defaultTestDirectory 
                        construct:'enc-iso8859-2.xml') readStream binary contents.

    docBuffer := (ByteArray new:189) writeStream.
    OldXMLWriter new
        stream:docBuffer;
        formatOutput:false;
        encoding:#'iso-8859-2';
        write:doc.
    docBuffer := docBuffer contents.

    self assert:docBuffer = fileBuffer. 



    "doc := XMLv2::Parser new
            processDocumentInFilename:
                (self class defaultTestDirectory 
                    construct:'enc-utf8.xml').
    xmlSentence := (doc root anyElementNamed:'sentence') characterData.
    xmlLetters := (doc root anyElementNamed:'letters') characterData.

    self assert:self sentence = xmlSentence.
    self assert:self letters = xmlLetters.
    "

    "
        self sentence 
        xmlSentence
    "

    "Created: / 15-06-2005 / 19:29:44 / janfrog"
    "Modified: / 18-10-2005 / 11:31:57 / janfrog"
!

test_write_utf8

    | doc fileBuffer docBuffer |
    doc := XML::Document new.
    doc addNode:(XML::Element tag:'enc').
    doc root addNode:
        ((XML::Element tag:'sentence')
            addNode:(XML::Text text:self sentence)).
    doc root addNode:
        ((XML::Element tag:'letters')
            addNode:(XML::Text text:self letters)).


    fileBuffer := (self class defaultTestDirectory 
                        construct:'enc-utf8.xml') readStream binary contents.

    docBuffer := (ByteArray new:189) writeStream.
    OldXMLWriter write:doc on:docBuffer format:false.
    docBuffer := docBuffer contents.
    
    self assert:docBuffer = fileBuffer.        


    "doc := XMLv2::Parser new
            processDocumentInFilename:
                (self class defaultTestDirectory 
                    construct:'enc-utf8.xml').
    xmlSentence := (doc root anyElementNamed:'sentence') characterData.
    xmlLetters := (doc root anyElementNamed:'letters') characterData.

    self assert:self sentence = xmlSentence.
    self assert:self letters = xmlLetters.
    "

    "
        self sentence 
        xmlSentence
    "

    "Created: / 15-06-2005 / 19:09:33 / janfrog"
    "Modified: / 18-10-2005 / 11:31:53 / janfrog"
! !

!EncodingTests class methodsFor:'documentation'!

version
    ^ '$Header: /opt/data/cvs/stx/goodies/xmlsuite/XMLv2__EncodingTests.st,v 1.1.1.1 2005-11-01 22:05:44 vranyj1 Exp $'
! !