RegressionTests__Base64Tests.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 2137 f64e7778af86
child 2576 79690400ae34
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2121
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
TestCase subclass:#Base64Tests
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
2137
f64e7778af86 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 2121
diff changeset
     9
	category:'tests-Regression-Files and Encodings'
2121
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
!Base64Tests class methodsFor:'documentation'!
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
documentation
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
"
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
    documentation to be added.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
    [author:]
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
        Claus Gittinger
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    [instance variables:]
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
    [class variables:]
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
    [see also:]
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
"
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
! !
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!Base64Tests class methodsFor:'queries'!
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
coveredClassNames
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    "should be redefined to return a collection of classes which are tested by
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
     this suite/case.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
     If not redefined, coveredPackageNames should be.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
     These classes can be instrumented for coverage analysis,
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
     before running the suite to provide coverage analysis/report"
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    ^ #( Base64Coder )
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    "Created: / 06-07-2011 / 21:27:03 / cg"
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    "Modified: / 21-03-2019 / 22:28:33 / Claus Gittinger"
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
! !
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
!Base64Tests methodsFor:'tests'!
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
test01_base64
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    "samples from https://www.base64encode.org/"
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
    
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    self assert:(Base64Coder encode:'') = ''.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    self assert:(Base64Coder encode:'a') = 'YQ=='.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    self assert:(Base64Coder encode:'aa') = 'YWE='.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    self assert:(Base64Coder encode:'aaa') = 'YWFh'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    self assert:(Base64Coder encode:'bbba') = 'YmJiYQ=='.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    self assert:(Base64Coder encode:'bbbaa') = 'YmJiYWE='.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    self assert:(Base64Coder encode:'bbbaaa') = 'YmJiYWFh'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    self assert:(Base64Coder encode:'cccbbba') = 'Y2NjYmJiYQ=='.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    self assert:(Base64Coder encode:'cccbbbaa') = 'Y2NjYmJiYWE='.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    self assert:(Base64Coder encode:'cccbbbaaa') = 'Y2NjYmJiYWFh'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    1 to:20 do:[:len |
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
        0 to:255 do:[:byteValue |
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
            |original encodedString decodedString|
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
            
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
            original := ByteArray new:len withAll:byteValue.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
            encodedString := Base64Coder encode:original.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
            decodedString := Base64Coder decode:encodedString.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
            self assert:(decodedString = original).
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
            original := String new:len withAll:byteValue asCharacter.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
            encodedString := Base64Coder encode:original.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
            decodedString := Base64Coder decodeAsString:encodedString.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
            self assert:(decodedString = original).
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
        ]
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    ].
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    "Created: / 21-03-2019 / 22:20:31 / Claus Gittinger"
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
!
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
test02_base64
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
    "samples from https://www.base64encode.org/"
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    self assert:(Base64Coder decodeAsString:'') = ''.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
    self assert:(Base64Coder decodeAsString:'YQ==') = 'a'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    self assert:(Base64Coder decodeAsString:'YWE=') = 'aa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    self assert:(Base64Coder decodeAsString:'YWFh') = 'aaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    self assert:(Base64Coder decodeAsString:'YmJiYQ==') = 'bbba'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    self assert:(Base64Coder decodeAsString:'YmJiYWE=') = 'bbbaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
    self assert:(Base64Coder decodeAsString:'YmJiYWFh') = 'bbbaaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    self assert:(Base64Coder decodeAsString:'Y2NjYmJiYQ==') = 'cccbbba'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
    self assert:(Base64Coder decodeAsString:'Y2NjYmJiYWE=') = 'cccbbbaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
    self assert:(Base64Coder decodeAsString:'Y2NjYmJiYWFh') = 'cccbbbaaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    "/ specials
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    self assert:(Base64Coder decodeAsString:'===') = ''.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    self assert:(Base64Coder decodeAsString:'YQ=====') = 'a'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    self assert:(Base64Coder decodeAsString:'YWE====') = 'aa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
    self assert:(Base64Coder decodeAsString:'YWFh===') = 'aaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
    self assert:(Base64Coder decodeAsString:'YmJiYQ=====') = 'bbba'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    self assert:(Base64Coder decodeAsString:'YmJiYWE====') = 'bbbaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    self assert:(Base64Coder decodeAsString:'YmJiYWFh===') = 'bbbaaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
    self assert:(Base64Coder decodeAsString:'Y2NjYmJiYQ=====') = 'cccbbba'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    self assert:(Base64Coder decodeAsString:'Y2NjYmJiYWE====') = 'cccbbbaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    self assert:(Base64Coder decodeAsString:'Y2NjYmJiYWFh===') = 'cccbbbaaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
    self assert:(Base64Coder decodeAsString:'======') = ''.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    self assert:(Base64Coder decodeAsString:'YQ========') = 'a'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
    self assert:(Base64Coder decodeAsString:'YWE=======') = 'aa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
    self assert:(Base64Coder decodeAsString:'YWFh======') = 'aaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    self assert:(Base64Coder decodeAsString:'YmJiYQ========') = 'bbba'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
    self assert:(Base64Coder decodeAsString:'YmJiYWE=======') = 'bbbaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
    self assert:(Base64Coder decodeAsString:'YmJiYWFh======') = 'bbbaaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
    self assert:(Base64Coder decodeAsString:'Y2NjYmJiYQ========') = 'cccbbba'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
    self assert:(Base64Coder decodeAsString:'Y2NjYmJiYWE=======') = 'cccbbbaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
    self assert:(Base64Coder decodeAsString:'Y2NjYmJiYWFh======') = 'cccbbbaaa'.
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
    "Created: / 21-03-2019 / 23:49:44 / Claus Gittinger"
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
! !
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
!Base64Tests class methodsFor:'documentation'!
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
version_CVS
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
    ^ '$Header$'
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
! !
32464e479c8f initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134