RegressionTests__FilenameTests.st
author Claus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 18:53:03 +0200
changeset 2327 bf482d49aeaf
parent 2161 17265ac15ada
child 2398 d6896f5dc88a
permissions -rw-r--r--
#QUALITY by exept class: RegressionTests::StringTests added: #test82c_expanding
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
     1
"{ Package: 'stx:goodies/regression' }"
822
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: RegressionTests }"
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
TestCase subclass:#FilenameTests
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:'filename'
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
869
32dea6c8b627 class: RegressionTests::FilenameTests
Claus Gittinger <cg@exept.de>
parents: 822
diff changeset
     9
	category:'tests-Regression'
822
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
2161
17265ac15ada #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 1447
diff changeset
    13
!FilenameTests methodsFor:'initialize / release'!
822
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
tearDown
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    filename notNil ifTrue:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
    17
	filename exists ifTrue:[
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
    18
	    filename remove
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
    19
	]
822
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    ].
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
    "Created: / 21-02-2013 / 17:56:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
! !
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
!FilenameTests methodsFor:'tests'!
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
test_01
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
    "
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    Tests whether filenames are properly encoded before
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    passed to an operating system (i.e. whether paths
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    are string-type transparent)
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    "
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    | path |
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    filename := 'abcd' asFilename.
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
    "Create the file"
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
    38
    filename writingFileDo:[:s|].
822
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    path := filename pathName.
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    "Make sure it is all ascii"
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    self assert: (path allSatisfy:[:c|c codePoint <= 127]).
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    self assert: path asFilename exists.
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    self assert: path asUnicode16String asFilename exists.
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    self assert: path asUnicode32String asFilename exists.
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    "Created: / 21-02-2013 / 17:45:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
!
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
test_01_unix
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
    "
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    Tests whether filenames are properly encoded before
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    passed to an operating system (i.e. whether paths
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    are string-type transparent)
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
    This has been fixed in JV's stx:libbasic rev 7766f4524d50.
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    See https://swing.fit.cvut.cz/hg/stx.libbasic/rev/7766f4524d50
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    "
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    | path locale |
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    OperatingSystem isUNIXlike ifFalse:[ ^ self ].
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    filename := 'unix' asFilename.
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    "Create the file"
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
    69
    filename writingFileDo:[:s|].
822
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    path := filename pathName.
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    "Make sure it is all ascii"
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    self assert: (path allSatisfy:[:c|c codePoint <= 127]).
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    "Now, pretend standard locale..."
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    locale := OperatingSystem getEnvironment: 'LANG'.
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
    [
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
    79
	OperatingSystem setEnvironment: 'LANG' to: 'C'.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
    80
	OperatingSystem initialize. "/reinitialize locale definitions
822
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
    82
	self assert: path asFilename exists.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
    83
	self assert: path asUnicode16String asFilename exists.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
    84
	self assert: path asUnicode32String asFilename exists.
822
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
    ] ensure:[
1447
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
    87
	OperatingSystem setEnvironment: 'LANG' to: locale.
2351db93aa5b package changes
Claus Gittinger <cg@exept.de>
parents: 869
diff changeset
    88
	OperatingSystem initialize. "/reinitialize locale definitions
822
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    ]
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    "Created: / 21-02-2013 / 17:56:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
! !
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
!FilenameTests class methodsFor:'documentation'!
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
version
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    ^ '$Header$'
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
!
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
version_CVS
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    ^ '$Header$'
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
! !
de92df99daf4 initial checkin
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103