[Pkg] The Trunk: MultilingualTests-pre.27.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Aug 31 16:19:29 UTC 2017


Patrick Rein uploaded a new version of MultilingualTests to project The Trunk:
http://source.squeak.org/trunk/MultilingualTests-pre.27.mcz

==================== Summary ====================

Name: MultilingualTests-pre.27
Author: pre
Time: 31 August 2017, 6:19:18.949747 pm
UUID: e3fa7680-679e-0a4f-b16d-5d8b3f205eda
Ancestors: MultilingualTests-pre.26

Minor changes to the tests for MultiByteFileStream checking for correct latin1 conversion for the fixed size UTF encodings and working on the LineEndConvention test to read in through MultiByteFileStream.

=============== Diff against MultilingualTests-pre.26 ===============

Item was changed:
  ----- Method: MultiByteFileStreamTest>>testLineEndConvention:withConverter:ifFail: (in category 'helpers') -----
  testLineEndConvention: lineEndConvention withConverter: textConverterClass ifFail: failBlock
  
  	| expectedResult result |
  	[
  		MultiByteFileStream forceNewFileNamed: fileName do: [ :file |
  			file
  				converter: textConverterClass new;
  				lineEndConvention: lineEndConvention;
  				cr;
  				nextPut: Character cr;
  				nextPutAll: String cr;
  				nextPutAll: String cr asWideString ].
+ 		result := MultiByteFileStream oldFileNamed: fileName do: [ :file |
+ 			file 
+ 				converter: textConverterClass new; 
+ 				contents ].
- 		result := StandardFileStream oldFileNamed: fileName do: [ :file |
- 			file contents ].
  		expectedResult := String streamContents: [ :stream |
  			4 timesRepeat: [ stream perform: lineEndConvention ] ].
  		result = expectedResult ifFalse: [
  			failBlock value: expectedResult asByteArray value: result asByteArray ] ]
  		on: Error
  		do: [ :err | failBlock value: err messageText value: err messageText ]!

Item was changed:
  ----- Method: MultiByteFileStreamTest>>testLineEndConversion (in category 'testing') -----
  testLineEndConversion
  
  	| failures | 
  	fileName := 'foolinendconversion.txt'.
  	failures := OrderedCollection new.
  	TextConverter allSubclassesDo: [ :textConverterClass |
  		textConverterClass encodingNames ifNotEmpty: [
  			#(cr lf crlf) do: [ :lineEndConvention |
  				self
  					testLineEndConvention: lineEndConvention
  					withConverter: textConverterClass
  					ifFail: [ :expectedResult :result |
  						failures add: {
  							textConverterClass.
  							lineEndConvention.
  							expectedResult.
  							result } ] ] ] ].
  	self assert: failures isEmpty.
  	"The code below is here to help you see why those cases fail"
  	failures do: [ :failure |
  		self
  			testLineEndConvention: failure second
  			withConverter: failure first
  			ifFail: [ :expectedResult :result | self halt ] ].!

Item was added:
+ ----- Method: MultiByteFileStreamTest>>testNextPutAllUtfsStartingAt (in category 'testing') -----
+ testNextPutAllUtfsStartingAt
+ 
+ 	| result |
+ 	fileName := 'foonextputallstartingat.txt'.
+ 	{'utf-16' . #[0 64 216 0 220 0 216 0 220 1 216 0 220 2] .
+ 	   'utf-32'. #[0 0 0 64 0 1 0 0 0 1 0 1 0 1 0 2]} 
+ 		pairsDo: [:encodingName :encodingResult | 
+ 		MultiByteFileStream forceNewFileNamed: fileName do: [ :file | | string |
+ 			file converter: (TextConverter newForEncoding: encodingName).
+ 			string := self unicodeString.
+ 			file 
+ 				next: 2 putAll: string startingAt: 1;
+ 				next: 1 putAll: string startingAt: 3;
+ 				next: 1 putAll: string startingAt: 4 ].
+ 		result := StandardFileStream readOnlyFileNamed: fileName do: [ :file |
+ 			file binary; contents ].
+ 	
+ 		"See for example: https://unicode-table.com/de/10000/ --pre"
+ 		self assert: encodingResult equals: result]
+ 	
+ 	
+ !

Item was added:
+ ----- Method: MultiByteFileStreamTest>>unicodeString (in category 'fixtures') -----
+ unicodeString
+ 
+ 	^ String newFrom: (#(64 65536 65537 65538) collect: [:n | Character codePoint: n])!



More information about the Packages mailing list