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