Hi,
I noticed that some tests from XML Support started failing with the latest version of Zinc. The 4 tests are XMLHTTP[Request|Response]>>#testAddHeader #testHeaderValuesAdd
And yes, something changed recently (a couple of months ago) in Zinc: ZnMultiValueDictionary>>#at:add: became idempotent (by design).
ZnMultiValueDictionary is like a dictionary but allows for multiple entries per key.
In practice this is used for the headers of an HTTP request or response and for the query values of a URL. Using the second application as an example, this means that
http://server.com/foo?a=1&b=2contains 2 simple key/value pairs (a=1 and b=2), while
http://server.com/foo?a=1&b=2&a=-1contains 1 normal key (b=2) and 1 extended key with 2 values (a=1 and a=-1).
With the recent change,
http://server.com/foo?a=1&b=2&a=-1&b=2is the same (idempotent) as the previous one, since b=2 occurs twice with exactly the same key and value.
XMLHTTP[Request|Response]>>#testAddHeader #testHeaderValuesAdd assume that adding the same key and value more than once should be relevant (not be idempotent).
In HTTP headers, this means that Connection:close can occur multiple times but that that would be totally equivalent to it occurring only once.
I think that XMLHTTP is wrong and Zinc is right.
Opinions ?
Sven