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