1 #!/usr/bin/env python 2 3 """ 4 A test of content preferences using examples from the HTTP 1.1 specification. 5 See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1 6 """ 7 8 from MoinSupport import getContentPreferences 9 10 s0 = "audio/*; q=0.2, audio/basic" 11 prefs = getContentPreferences(s0) 12 oprefs = prefs.get_ordered(True) 13 expected = [ 14 ["audio/basic"], 15 ["audio/*"] 16 ] 17 print oprefs == expected, ":", oprefs, "==", expected 18 19 s1 = "text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c" 20 prefs = getContentPreferences(s1) 21 oprefs = prefs.get_ordered(True) 22 expected = [ 23 ["text/html", "text/x-c"], # equal quality, specificity 24 ["text/x-dvi"], 25 ["text/plain"] 26 ] 27 print oprefs == expected, ":", oprefs, "==", expected 28 29 s2 = "text/*, text/html, text/html;level=1, */*" 30 prefs = getContentPreferences(s2) 31 oprefs = prefs.get_ordered(True) 32 expected = [ 33 ["text/html;level=1"], # specificity is 1 34 ["text/html"], # specificity is 0 35 ["text/*"], # specificity is -1 36 ["*/*"] # specificity is -2 37 ] 38 print oprefs == expected, ":", oprefs, "==", expected 39 40 s3 = "text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5" 41 prefs = getContentPreferences(s3) 42 oprefs = prefs.get_ordered(True) 43 expected = [ 44 ["text/html;level=1"], 45 ["text/html"], # specificity is 1 46 ["*/*"], # specificity is -2 47 ["text/html;level=2"], 48 ["text/*"] 49 ] 50 print oprefs == expected, ":", oprefs, "==", expected 51 52 available = [ 53 "text/html;level=1", 54 "text/html" 55 ] 56 expected = ["text/html;level=1"] 57 print prefs.get_preferred_types(available) == expected, ":", prefs.get_preferred_types(available), "==", expected 58 59 available = [ 60 "text/plain", 61 "image/jpeg" 62 ] 63 expected = ["image/jpeg"] 64 print prefs.get_preferred_types(available) == expected, ":", prefs.get_preferred_types(available), "==", expected 65 66 available = [ 67 "text/html;level=2", 68 "text/html;level=3" 69 ] 70 expected = ["text/html;level=3"] 71 print prefs.get_preferred_types(available) == expected, ":", prefs.get_preferred_types(available), "==", expected 72 73 # vim: tabstop=4 expandtab shiftwidth=4