Fixed Issue #75 CONNEG doesn't handle accept encodings correcty
This commit is contained in:
@@ -88,7 +88,8 @@ feature -- Parser
|
||||
loop
|
||||
range := parsed_charsets.item_for_iteration
|
||||
if attached range.field as l_range_common then
|
||||
if l_target_field.same_string (l_range_common) or l_target_field.same_string ("*") or l_range_common.same_string ("*") then
|
||||
if l_target_field.same_string (l_range_common) or l_target_field.same_string ("*") or l_range_common.same_string ("*")
|
||||
or l_target_field.same_string ("identity") then
|
||||
if l_range_common.same_string (l_target_field) then
|
||||
l_fitness := 100
|
||||
else
|
||||
|
||||
@@ -123,6 +123,39 @@ feature -- Test routines
|
||||
assert ("Variants is dettached",compression_variants.supported_variants = Void)
|
||||
assert ("Variant Header", compression_variants.variant_header.is_equal ("Accept-Encoding"))
|
||||
assert ("Encoding Type is gzip", compression_variants.type.is_equal ("gzip"))
|
||||
|
||||
|
||||
-- Scenario 4, the server set `identity' and the client doesn't mention identity
|
||||
l_compression := "identity"
|
||||
compression_supported := l_compression.split(',')
|
||||
conneg.set_encoding_default("gzip")
|
||||
compression_variants := conneg.encoding_preference (compression_supported, "gzip;q=0.7")
|
||||
assert ("Expected Acceptable", compression_variants.is_acceptable)
|
||||
assert ("Variants is dettached",compression_variants.supported_variants = Void)
|
||||
assert ("Variant Header", compression_variants.variant_header.is_equal ("Accept-Encoding"))
|
||||
assert ("Encoding Type is identity", compression_variants.type.is_equal ("identity"))
|
||||
|
||||
-- Scenario 5, the server set `identity' and the client mention identity,q=0
|
||||
l_compression := "identity"
|
||||
compression_supported := l_compression.split(',')
|
||||
conneg.set_encoding_default("gzip")
|
||||
compression_variants := conneg.encoding_preference (compression_supported, "identity;q=0")
|
||||
assert ("Expected Not Acceptable", not compression_variants.is_acceptable)
|
||||
assert ("Variants is attached",attached compression_variants.supported_variants )
|
||||
assert ("Variant Header is void", compression_variants.variant_header = Void)
|
||||
assert ("Encoding Type is Void", compression_variants.type = Void)
|
||||
|
||||
-- Scenario 6, the server set `identity' and the client mention *,q=0
|
||||
l_compression := "identity"
|
||||
compression_supported := l_compression.split(',')
|
||||
conneg.set_encoding_default("gzip")
|
||||
compression_variants := conneg.encoding_preference (compression_supported, "*;q=0")
|
||||
assert ("Expected Not Acceptable", not compression_variants.is_acceptable)
|
||||
assert ("Variants is attached",attached compression_variants.supported_variants )
|
||||
assert ("Variant Header is void", compression_variants.variant_header = Void)
|
||||
assert ("Encoding Type is Void", compression_variants.type = Void)
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user