|
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 |