"{ Package: 'stx:goodies/regression' }"
"{ NameSpace: RegressionTests }"
TestCase subclass:#Base64Tests
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'tests-Regression-Files and Encodings'
!
!Base64Tests class methodsFor:'documentation'!
documentation
"
documentation to be added.
[author:]
Claus Gittinger
[instance variables:]
[class variables:]
[see also:]
"
! !
!Base64Tests class methodsFor:'queries'!
coveredClassNames
"should be redefined to return a collection of classes which are tested by
this suite/case.
If not redefined, coveredPackageNames should be.
These classes can be instrumented for coverage analysis,
before running the suite to provide coverage analysis/report"
^ #( Base64Coder )
"Created: / 06-07-2011 / 21:27:03 / cg"
"Modified: / 21-03-2019 / 22:28:33 / Claus Gittinger"
! !
!Base64Tests methodsFor:'tests'!
test01_base64
"samples from https://www.base64encode.org/"
self assert:(Base64Coder encode:'') = ''.
self assert:(Base64Coder encode:'a') = 'YQ=='.
self assert:(Base64Coder encode:'aa') = 'YWE='.
self assert:(Base64Coder encode:'aaa') = 'YWFh'.
self assert:(Base64Coder encode:'bbba') = 'YmJiYQ=='.
self assert:(Base64Coder encode:'bbbaa') = 'YmJiYWE='.
self assert:(Base64Coder encode:'bbbaaa') = 'YmJiYWFh'.
self assert:(Base64Coder encode:'cccbbba') = 'Y2NjYmJiYQ=='.
self assert:(Base64Coder encode:'cccbbbaa') = 'Y2NjYmJiYWE='.
self assert:(Base64Coder encode:'cccbbbaaa') = 'Y2NjYmJiYWFh'.
1 to:20 do:[:len |
0 to:255 do:[:byteValue |
|original encodedString decodedString|
original := ByteArray new:len withAll:byteValue.
encodedString := Base64Coder encode:original.
decodedString := Base64Coder decode:encodedString.
self assert:(decodedString = original).
original := String new:len withAll:byteValue asCharacter.
encodedString := Base64Coder encode:original.
decodedString := Base64Coder decodeAsString:encodedString.
self assert:(decodedString = original).
]
].
"Created: / 21-03-2019 / 22:20:31 / Claus Gittinger"
!
test02_base64
"samples from https://www.base64encode.org/"
self assert:(Base64Coder decodeAsString:'') = ''.
self assert:(Base64Coder decodeAsString:'YQ==') = 'a'.
self assert:(Base64Coder decodeAsString:'YWE=') = 'aa'.
self assert:(Base64Coder decodeAsString:'YWFh') = 'aaa'.
self assert:(Base64Coder decodeAsString:'YmJiYQ==') = 'bbba'.
self assert:(Base64Coder decodeAsString:'YmJiYWE=') = 'bbbaa'.
self assert:(Base64Coder decodeAsString:'YmJiYWFh') = 'bbbaaa'.
self assert:(Base64Coder decodeAsString:'Y2NjYmJiYQ==') = 'cccbbba'.
self assert:(Base64Coder decodeAsString:'Y2NjYmJiYWE=') = 'cccbbbaa'.
self assert:(Base64Coder decodeAsString:'Y2NjYmJiYWFh') = 'cccbbbaaa'.
"/ specials
self assert:(Base64Coder decodeAsString:'===') = ''.
self assert:(Base64Coder decodeAsString:'YQ=====') = 'a'.
self assert:(Base64Coder decodeAsString:'YWE====') = 'aa'.
self assert:(Base64Coder decodeAsString:'YWFh===') = 'aaa'.
self assert:(Base64Coder decodeAsString:'YmJiYQ=====') = 'bbba'.
self assert:(Base64Coder decodeAsString:'YmJiYWE====') = 'bbbaa'.
self assert:(Base64Coder decodeAsString:'YmJiYWFh===') = 'bbbaaa'.
self assert:(Base64Coder decodeAsString:'Y2NjYmJiYQ=====') = 'cccbbba'.
self assert:(Base64Coder decodeAsString:'Y2NjYmJiYWE====') = 'cccbbbaa'.
self assert:(Base64Coder decodeAsString:'Y2NjYmJiYWFh===') = 'cccbbbaaa'.
self assert:(Base64Coder decodeAsString:'======') = ''.
self assert:(Base64Coder decodeAsString:'YQ========') = 'a'.
self assert:(Base64Coder decodeAsString:'YWE=======') = 'aa'.
self assert:(Base64Coder decodeAsString:'YWFh======') = 'aaa'.
self assert:(Base64Coder decodeAsString:'YmJiYQ========') = 'bbba'.
self assert:(Base64Coder decodeAsString:'YmJiYWE=======') = 'bbbaa'.
self assert:(Base64Coder decodeAsString:'YmJiYWFh======') = 'bbbaaa'.
self assert:(Base64Coder decodeAsString:'Y2NjYmJiYQ========') = 'cccbbba'.
self assert:(Base64Coder decodeAsString:'Y2NjYmJiYWE=======') = 'cccbbbaa'.
self assert:(Base64Coder decodeAsString:'Y2NjYmJiYWFh======') = 'cccbbbaaa'.
"Created: / 21-03-2019 / 23:49:44 / Claus Gittinger"
! !
!Base64Tests class methodsFor:'documentation'!
version_CVS
^ '$Header$'
! !