author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Mon, 24 Jul 2017 21:21:01 +0200 | |
branch | jv |
changeset 1672 | bfbf726020fc |
parent 1500 | d406a10b2965 |
child 1974 | f2eaf05205d6 |
permissions | -rw-r--r-- |
867
4bddc8e1d9a1
Added lost Encoding pragma
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
865
diff
changeset
|
1 |
"{ Encoding: utf8 }" |
4bddc8e1d9a1
Added lost Encoding pragma
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
865
diff
changeset
|
2 |
|
1447 | 3 |
"{ Package: 'stx:goodies/regression' }" |
862 | 4 |
|
5 |
"{ NameSpace: RegressionTests }" |
|
6 |
||
7 |
TestCase subclass:#ProjectDefinitionTests |
|
8 |
instanceVariableNames:'' |
|
9 |
classVariableNames:'' |
|
10 |
poolDictionaries:'' |
|
876
b210d31a1c19
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
867
diff
changeset
|
11 |
category:'tests-Regression' |
862 | 12 |
! |
13 |
||
14 |
||
15 |
!ProjectDefinitionTests methodsFor:'running'! |
|
16 |
||
17 |
tearDown |
|
18 |
| classes methods | |
|
19 |
||
20 |
"Also, wipe out all mocks" |
|
21 |
classes := OrderedCollection new. |
|
22 |
methods := OrderedCollection new. |
|
23 |
Smalltalk allClassesDo:[:cls| |
|
1447 | 24 |
(cls package notNil and:[cls package startsWith:'stx:goodies/regression/testData']) ifTrue:[ |
25 |
classes add: cls |
|
26 |
] ifFalse:[ |
|
27 |
cls methodsDo:[:m|(m package notNil and:[m package startsWith:'stx:goodies/regression/testData']) ifTrue:[methods add: m]]. |
|
28 |
cls class methodsDo:[:m|(m package notNil and:[m package startsWith:'stx:goodies/regression/testData']) ifTrue:[methods add: m]]. |
|
29 |
] |
|
862 | 30 |
]. |
31 |
Class withoutUpdatingChangesDo:[ |
|
1447 | 32 |
classes do:[:cls|Smalltalk removeClass: cls]. |
33 |
methods do:[:m|m mclass removeSelector: m selector] |
|
862 | 34 |
]. |
35 |
||
36 |
"Created: / 22-03-2013 / 11:31:49 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
37 |
! ! |
|
38 |
||
1672 | 39 |
!ProjectDefinitionTests methodsFor:'tests - regression'! |
40 |
||
41 |
test_issue63_01 |
|
42 |
||
43 |
| classes1 classes2 code | |
|
44 |
||
45 |
classes1 := stx_libbasic classNamesAndAttributes. |
|
46 |
code := stx_libbasic classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
47 |
classes2 := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
48 |
||
49 |
self assert: (classes1 \ classes2) isEmpty. |
|
50 |
self assert: (classes2 \ classes1) isEmpty. |
|
51 |
||
52 |
"Created: / 20-07-2017 / 17:36:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
53 |
"Modified: / 24-07-2017 / 21:05:05 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
54 |
! |
|
55 |
||
56 |
test_issue63_02u |
|
57 |
" |
|
58 |
Issue #63: Test if platform-specific attribute is preserved |
|
59 |
across class renames. |
|
60 |
||
61 |
See https://swing.fit.cvut.cz/projects/stx-jv/ticket/63 |
|
62 |
" |
|
63 |
||
64 |
| pkg pkgDef classes code | |
|
65 |
||
66 |
self skipIf: OperatingSystem isUNIXlike not description: 'This test in UNIX specific'. |
|
67 |
||
68 |
pkg := 'stx:goodies/regression/testData/packages/p2platform_specific_classes'. |
|
69 |
Smalltalk loadPackage: pkg. |
|
70 |
pkgDef := ProjectDefinition definitionClassForPackage: pkg. |
|
71 |
classes := pkgDef classNamesAndAttributes. |
|
72 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
73 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
74 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
75 |
self assert: (Smalltalk includesKey: #UnixSpecificClass). |
|
76 |
self assert: (Smalltalk includesKey: #Win32SpecificClass) not. |
|
77 |
self assert: (Smalltalk includesKey: #VMSSpecificClass) not. |
|
78 |
||
79 |
||
80 |
Smalltalk renameClass: (Smalltalk at: #UnixSpecificClass) to: #XXXXSpecificClass. |
|
81 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
82 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
83 |
self assert: (classes includes: #(XXXXSpecificClass unix)). |
|
84 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
85 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
86 |
||
87 |
Smalltalk renameClass: (Smalltalk at: #XXXXSpecificClass) to: #YYYYSpecificClass. |
|
88 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
89 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
90 |
self assert: (classes includes: #(YYYYSpecificClass unix)). |
|
91 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
92 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
93 |
||
94 |
Smalltalk renameClass: (Smalltalk at: #YYYYSpecificClass) to: #UnixSpecificClass. |
|
95 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
96 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
97 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
98 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
99 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
100 |
||
101 |
Smalltalk renameClass: (Smalltalk at: #UnixSpecificClass) to: #ZZZZSpecificClass. |
|
102 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
103 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
104 |
self assert: (classes includes: #(ZZZZSpecificClass unix)). |
|
105 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
106 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
107 |
||
108 |
"Created: / 26-07-2017 / 22:57:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
109 |
"Modified: / 27-07-2017 / 10:49:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
110 |
! |
|
111 |
||
112 |
test_issue63_02w |
|
113 |
" |
|
114 |
Issue #63: Test if platform-specific attribute is preserved |
|
115 |
across class renames. |
|
116 |
||
117 |
See https://swing.fit.cvut.cz/projects/stx-jv/ticket/63 |
|
118 |
" |
|
119 |
||
120 |
| pkg pkgDef classes code | |
|
121 |
||
122 |
self skipIf: OperatingSystem isMSWINDOWSlike not description: 'This test in Windows specific'. |
|
123 |
||
124 |
pkg := 'stx:goodies/regression/testData/packages/p2platform_specific_classes'. |
|
125 |
Smalltalk loadPackage: pkg. |
|
126 |
pkgDef := ProjectDefinition definitionClassForPackage: pkg. |
|
127 |
classes := pkgDef classNamesAndAttributes. |
|
128 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
129 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
130 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
131 |
self assert: (Smalltalk includesKey: #UnixSpecificClass) not. |
|
132 |
self assert: (Smalltalk includesKey: #Win32SpecificClass). |
|
133 |
self assert: (Smalltalk includesKey: #VMSSpecificClass) not. |
|
134 |
||
135 |
||
136 |
Smalltalk renameClass: (Smalltalk at: #Win32SpecificClass) to: #XXXXSpecificClass. |
|
137 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
138 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
139 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
140 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
141 |
self assert: (classes includes: #(XXXXSpecificClass win32)). |
|
142 |
||
143 |
Smalltalk renameClass: (Smalltalk at: #XXXXSpecificClass) to: #YYYYSpecificClass. |
|
144 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
145 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
146 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
147 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
148 |
self assert: (classes includes: #(YYYYSpecificClass win32)). |
|
149 |
||
150 |
Smalltalk renameClass: (Smalltalk at: #YYYYSpecificClass) to: #Win32SpecificClass. |
|
151 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
152 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
153 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
154 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
155 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
156 |
||
157 |
Smalltalk renameClass: (Smalltalk at: #Win32SpecificClass) to: #ZZZZSpecificClass. |
|
158 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
159 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
160 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
161 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
162 |
self assert: (classes includes: #(ZZZZSpecificClass win32)). |
|
163 |
||
164 |
"Created: / 27-07-2017 / 10:51:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
165 |
! ! |
|
166 |
||
862 | 167 |
!ProjectDefinitionTests methodsFor:'tests - utf8'! |
168 |
||
169 |
test_filein_01 |
|
170 |
" |
|
171 |
Test of filein of a class with non-ASCII/ISO8859-1 chars |
|
172 |
" |
|
173 |
| file | |
|
174 |
||
175 |
file := (Smalltalk getPackageDirectoryForPackage: self class package) / 'testData' / 'packages' / 'p1utf8' / 'ProjectDefinitionTestsP1UTF8Bar.st'. |
|
176 |
self assert: file exists. |
|
177 |
||
178 |
file fileIn. |
|
179 |
||
180 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) notNil. |
|
181 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) new zork size = 38. |
|
182 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) new zork = 'Příliš žluťoučký kůň úpěl ďábelské ódy'. |
|
183 |
||
184 |
"Created: / 22-03-2013 / 11:39:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
185 |
! |
|
186 |
||
865 | 187 |
test_filein_01b |
188 |
" |
|
189 |
Test of filein of a class with non-ASCII/ISO8859-1 chars |
|
190 |
" |
|
191 |
| file | |
|
192 |
||
193 |
file := (Smalltalk getPackageDirectoryForPackage: self class package) / 'testData' / 'packages' / 'p1utf8' / 'ProjectDefinitionTestsP1UTF8Bar.st'. |
|
194 |
self assert: file exists. |
|
195 |
||
196 |
file contents asString readStream fileIn. |
|
197 |
||
198 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) notNil. |
|
199 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) new zork size = 38. |
|
200 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) new zork = 'Příliš žluťoučký kůň úpěl ďábelské ódy'. |
|
201 |
||
202 |
"Created: / 25-03-2013 / 22:51:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
203 |
! |
|
204 |
||
862 | 205 |
test_filein_03 |
206 |
" |
|
207 |
Test of filein of a extension with non-ASCII/ISO8859-1 chars |
|
208 |
" |
|
209 |
| file | |
|
210 |
||
211 |
file := (Smalltalk getPackageDirectoryForPackage: self class package) / 'testData' / 'packages' / 'p1utf8' / 'extensions.st'. |
|
212 |
self assert: file exists. |
|
213 |
||
214 |
file fileIn. |
|
215 |
||
216 |
self assert: nil zork size = 38. |
|
217 |
self assert: nil zork = 'Příliš žluťoučký kůň úpěl ďábelské ódy'. |
|
218 |
||
219 |
"Created: / 22-03-2013 / 11:40:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
220 |
! |
|
221 |
||
222 |
test_loadPackage_utf8_01 |
|
223 |
" |
|
224 |
Test of filein of a extension with non-ASCII/ISO8859-1 chars |
|
225 |
" |
|
226 |
||
1369 | 227 |
Transcript showCR:'loading p1utf8 package...'. |
1371 | 228 |
[ |
1447 | 229 |
Smalltalk loadPackage: 'stx:goodies/regression/testData/packages/p1utf8'. |
1371 | 230 |
] ifCurtailed:[ |
1447 | 231 |
thisContext fullPrintAll |
232 |
]. |
|
1369 | 233 |
Transcript showCR:'done.'. |
862 | 234 |
|
235 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) notNil. |
|
236 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) new zork size = 38. |
|
237 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) new zork = 'Příliš žluťoučký kůň úpěl ďábelské ódy'. |
|
238 |
||
239 |
self assert: nil zork size = 38. |
|
240 |
self assert: nil zork = 'Příliš žluťoučký kůň úpěl ďábelské ódy'. |
|
241 |
||
1369 | 242 |
Transcript showCR:'test done.'. |
1447 | 243 |
Smalltalk unloadPackage: 'stx:goodies/regression/testData/packages/p1utf8'. |
1369 | 244 |
|
862 | 245 |
"Created: / 22-03-2013 / 11:44:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
246 |
! ! |
|
247 |
||
1087
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
248 |
!ProjectDefinitionTests methodsFor:'tests-obsolete'! |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
249 |
|
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
250 |
test1 |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
251 |
self skipIf:true description:'obsolete and outdated'. |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
252 |
|
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
253 |
DAPASX::DapasXProject compileClassNames. |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
254 |
self assert:(DAPASX::DapasXProject classNames asSortedCollection = DAPASX::DapasXProject searchForClassesNamesWithProject asSortedCollection) |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
255 |
|
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
256 |
"Modified: / 09-08-2006 / 18:22:16 / fm" |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
257 |
! ! |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
258 |
|
862 | 259 |
!ProjectDefinitionTests class methodsFor:'documentation'! |
260 |
||
261 |
version |
|
262 |
^ '$Header$' |
|
263 |
! |
|
264 |
||
265 |
version_CVS |
|
266 |
^ '$Header$' |
|
1672 | 267 |
! |
268 |
||
269 |
version_HG |
|
270 |
||
271 |
^ '$Changeset: <not expanded> $' |
|
862 | 272 |
! ! |
273 |