tim Rowledge uploaded a new version of WebClient-Tests to project The Trunk: http://source.squeak.org/trunk/WebClient-Tests-tpr.64.mcz
==================== Summary ====================
Name: WebClient-Tests-tpr.64 Author: tpr Time: 29 October 2023, 6:00:45.760151 pm UUID: 0cd122d2-a7b8-443a-b449-77f0da833bc4 Ancestors: WebClient-Tests-mt.63
Update json related WebClient tests. Some are simply redundant if we have changed to use Json instead of the older internal code. Some still require a little thought. Some of the number tests might be good to move to the JsonTests class since they extend the testing in #testAtomNumber. There's still some possible debate about when and how wide character containing String should be dealt with. What about those \u escaped non-ascii chars?
=============== Diff against WebClient-Tests-mt.63 ===============
Item was removed: - ----- Method: WebClientServerTest>>testArrays (in category 'tests - json') ----- - testArrays - "Test array encodings" - - self assert: (self decode: '[]') = #(). - self assert: (self decode: '[[]]') = #(#()). - self assert: (self decode: '[[], []]') = #(#() #()). - self assert: (self decode: '["hello", "world", 123]') = #('hello' 'world' 123). - self assert: (self decode: '[["true", false, null]]') = #(('true' false nil)). - - self assert: (self encode: #()) = '[]'. - self assert: (self encode: #(#())) = '[[]]'. - self assert: (self encode: #(#() #()) ) = '[[], []]'. - self assert: (self encode: #('hello' 'world' 123)) = '["hello", "world", 123]'. - self assert: (self encode: #(('true' false nil))) = '[["true", false, null]]'. - - self should: [self decode: '['] raise: Error. - self should: [self decode: '[}'] raise: Error. - self should: [self decode: '{[}'] raise: Error. - self should: [self decode: '[[[]]'] raise: Error. - !
Item was removed: - ----- Method: WebClientServerTest>>testDictionaries (in category 'tests - json') ----- - testDictionaries - "Test dictionary encodings" - - self assert: (self decode: '{}') = (Dictionary new). - - self assert: (self decode: '{"foo" : "bar"}') - equals: (Dictionary newFromPairs: { - 'foo'. 'bar' - }). - - self assert: (self decode: '{"stuff" : [[], 42, "hello"]}') - equals: (Dictionary newFromPairs: { - 'stuff'. #(() 42 'hello') - }). - - self assert: (self decode: '{"x" : 42, "y": "77", "z": 0.1}') - equals: (Dictionary newFromPairs: { - 'x'. 42. - 'y'. '77'. - 'z'. 0.1 - }). - - - self assert: (self encode: Dictionary new) = '{}'. - - self assert: (self encode: (Dictionary newFromPairs: { - 'foo'. 'bar' - })) equals: '{"foo": "bar"}'. - - self assert: (self encode: (Dictionary newFromPairs: { - 'stuff'. #(() 42 'hello') - })) equals: '{"stuff": [[], 42, "hello"]}'. - - self assert: (self encode: (Dictionary newFromPairs: { - 'x'. 42. - 'y'. '77'. - 'z'. 0.1 - })) equals: '{"x": 42, "y": "77", "z": 0.1}'. - - self should: [self decode: '{'] raise: Error. - self should: [self decode: '{]'] raise: Error. - self should: [self decode: '[{]'] raise: Error. - self should: [self decode: '{"a"}'] raise: Error. - self should: [self decode: '{42: "hello"}'] raise: Error. - self should: [self decode: '{"a" : 42,}'] raise: Error. - self should: [self decode: '{"a" : 42 "b": 33}'] raise: Error. - - self should: [self encode: (Dictionary newFromPairs: {1. 1})] raise: Error.!
Item was removed: - ----- Method: WebClientServerTest>>testNilTrueFalse (in category 'tests - json') ----- - testNilTrueFalse - "Test encodings of nil, true, false" - - self assert: (self decode: 'true') = true. - self assert: (self decode: 'false') = false. - self assert: (self decode: 'null') = nil. - - self assert: (self encode: true) = 'true'. - self assert: (self encode: false) = 'false'. - self assert: (self encode: nil) = 'null'. - - self should: [self decode: 'nul'] raise: Error. - self should: [self decode: 'nullll'] raise: Error. - self should: [self decode: 'tru'] raise: Error. - self should: [self decode: 'falsef'] raise: Error. - self should: [self decode: 'truefalse'] raise: Error. - !
Item was changed: ----- Method: WebClientServerTest>>testNumbers (in category 'tests - json') ----- testNumbers "Test the encodings of numbers"
self assert: 42 classAndValueEquals: (self decode: '42'). + self assert: -123 classAndValueEquals: (self decode: '-123'). - self assert: -123 classAndValueEquals: (self decode: '-0123'). self assert: 42.3 classAndValueEquals: (self decode: '42.3'). self assert: -42.9e44 classAndValueEquals: (self decode: '-42.9e44'). self assert: -42.95e-44 classAndValueEquals: (self decode: '-42.95e-44'). + self assert: 0 classAndValueEquals: (self decode: '-0.0e0'). "Looks like the standard is to return plain zero" - self assert: -0.0 classAndValueEquals: (self decode: '-0.0e0'). + self assert: 100 classAndValueEquals: (self decode: '1.0e+2'). "Standard appears to be produce integer" - self assert: 1.0 classAndValueEquals: (self decode: '1.'). - self assert: 100.0 classAndValueEquals: (self decode: '1.e+2'). self assert: 1000 classAndValueEquals: (self decode: '1e3'). "This remains an Integer like in Squeak, though questionable" self assert: 0.01 classAndValueEquals: (self decode: '1e-2').
self assert: '42' equals: (self encode: 42). self assert: '-123' equals: (self encode: -123). self assert: '42.3' equals: (self encode: 42.3). self assert: '-4.29e45' equals: (self encode: -42.9e44). self assert: '-4.295e-43' equals: (self encode: -42.95e-44). self assert: '-0.0' equals: (self encode: -0.0e0).
+ self should: [self decode: '0x123'] raise: JsonSyntaxError. + self should: [self decode: '0123'] raise: JsonSyntaxError. + self should: [self decode: '1.'] raise: JsonSyntaxError. + self should: [self decode: '1.e2'] raise: JsonSyntaxError. + self should: [self decode: '-.e'] raise: JsonSyntaxError. - self should: [self decode: '0x123'] raise: Error. - self should: [self decode: '-.e'] raise: Error. !
Item was changed: ----- Method: WebClientServerTest>>testStrings (in category 'tests - json') ----- testStrings + "Test string encodings. + These ones are still contentious" - "Test string encodings"
- self assert: (self decode: '"Hello World"') = 'Hello World'. - self assert: (self decode: '""Hello World""') = '"Hello World"'. - self assert: (self decode: '"foo\bar/baz"') = 'foo\bar/baz'. - self assert: (self decode: '""') = ''. - self assert: (self decode: '"foo \u0026 bar"') = 'foo & bar'. - self assert: (self decode: '"\r\n"') = String crlf. self assert: (self decode: '"\u041F\u0440\u0430\u0432\u0434\u0430"') equals: #[208 159 209 128 208 176 208 178 208 180 208 176] asString utf8ToSqueak. - - self assert: (self encode: 'Hello World') = '"Hello World"'. - self assert: (self encode: '"Hello World"') = '""Hello World""'. - self assert: (self encode: 'foo\bar/baz') = '"foo\bar/baz"'. - self assert: (self encode: '') = '""'. self assert: (self encode: 'foo ', (Character value: 257),' bar') = '"foo \u0101 bar"'. - self assert: (self encode: String crlf) = '"\r\n"'. - self assert: (self encode: #[208 159 209 128 208 176 208 178 208 180 208 176] asString utf8ToSqueak) equals: '"\u041F\u0440\u0430\u0432\u0434\u0430"'. + ! - - self should: [self decode: '"hello'] raise: Error. - self should: [self decode: '"'] raise: Error. - self should: [self decode: '""'] raise: Error.!
packages@lists.squeakfoundation.org