Esempio n. 1
0
 def testStarNoUtf8(self):
     # If '*' is in HTTP_ACCEPT_CHARSET, but 'utf-8' isn't, we insert
     # utf-8 in the list, since we prefer that over any other #
     # charset.
     request = {"HTTP_ACCEPT_CHARSET": "ISO-8859-1, *"}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()), ["utf-8", "iso-8859-1", "*"])
 def testTrivialHTTP_ACCEPT_CHARSET(self):
     # If the client provides a trivial HTTP_ACCEPT_CHARSET, it can
     # accept any charset
     request = {'HTTP_ACCEPT_CHARSET': ''}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['utf-8'])
Esempio n. 3
0
 def testStarAndUtf8(self):
     # If '*' and 'utf-8' are in HTTP_ACCEPT_CHARSET, we won't insert
     # an extra 'utf-8'.
     request = {'HTTP_ACCEPT_CHARSET': 'ISO-8859-1, utf-8, *'}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['utf-8', 'iso-8859-1', '*'])
 def testGetPreferredCharset(self):
     request = {
         'HTTP_ACCEPT_CHARSET': 'ISO-8859-1, UTF-8;q=0.66, UTF-16;q=0.33'
     }
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['utf-8', 'iso-8859-1', 'utf-16'])
 def testTrivialHTTP_ACCEPT_CHARSET(self):
     # If the client provides a trivial HTTP_ACCEPT_CHARSET, it can
     # accept any charset
     request = {'HTTP_ACCEPT_CHARSET': ''}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['utf-8'])
 def testStarAndUtf8(self):
     # If '*' and 'utf-8' are in HTTP_ACCEPT_CHARSET, we won't insert
     # an extra 'utf-8'.
     request = {'HTTP_ACCEPT_CHARSET': 'ISO-8859-1, utf-8, *'}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['utf-8', 'iso-8859-1', '*'])
Esempio n. 7
0
 def testNoHTTP_ACCEPT_CHARSET(self):
     # If the client doesn't provide a HTTP_ACCEPT_CHARSET, it should
     # accept any charset
     request = {}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      [])
 def testNoHTTP_ACCEPT_CHARSET(self):
     # If the client doesn't provide a HTTP_ACCEPT_CHARSET, it can
     # accept any charset.
     request = {}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['utf-8'])
Esempio n. 9
0
 def testGetPreferredCharsetBogusQuality(self):
     # test that handling of bogus "quality values" and non-quality
     # parameters is reasonable
     request = {'HTTP_ACCEPT_CHARSET':
                'ISO-8859-1;x, UTF-16;Q=0.33, UTF-8;q=foo'}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['iso-8859-1', 'utf-16'])
Esempio n. 10
0
 def testGetPreferredCharsetOrdering(self):
     # test that the charsets are returned sorted according to
     # their "quality value"
     request = {'HTTP_ACCEPT_CHARSET':
                'ISO-8859-1, UTF-16;Q=0.33, UTF-8;q=0.66'}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['utf-8', 'iso-8859-1', 'utf-16'])
 def testMalformedHTTP_ACCEPT_CHARSET(self):
     """ Test for Launchpad #253362 """
     request = {
         'HTTP_ACCEPT_CHARSET': 'utf-8;q=0.7,iso-8859-1;q=0.2*;q=0.1'
     }
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['utf-8', 'iso-8859-1'])
 def testStarNoUtf8(self):
     # If '*' is in HTTP_ACCEPT_CHARSET, but 'utf-8' isn't, we insert
     # utf-8 in the list, since we prefer that over any other #
     # charset.
     request = {'HTTP_ACCEPT_CHARSET': 'ISO-8859-1, *'}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['utf-8', 'iso-8859-1', '*'])
Esempio n. 13
0
 def testTrivialHTTP_ACCEPT_CHARSET(self):
     # If the client provides a trivial HTTP_ACCEPT_CHARSET, it should
     # accept any charset (this test is aimed at Zope 2's handling
     # of request queries for entries starting with HTTP_
     # See: https://bugs.launchpad.net/zope2/+bug/143873
     request = {"HTTP_ACCEPT_CHARSET": ""}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()), [])
Esempio n. 14
0
 def testTrivialHTTP_ACCEPT_CHARSET(self):
     # If the client provides a trivial HTTP_ACCEPT_CHARSET, it should
     # accept any charset (this test is aimed at Zope 2's handling
     # of request queries for entries starting with HTTP_
     # See: https://bugs.launchpad.net/zope2/+bug/143873
     request = {'HTTP_ACCEPT_CHARSET': ''}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()), [])
 def testGetPreferredCharsetBogusQuality(self):
     # test that handling of bogus "quality values" and non-quality
     # parameters is reasonable
     request = {
         'HTTP_ACCEPT_CHARSET': 'ISO-8859-1;x, UTF-16;Q=0.33, UTF-8;q=foo'
     }
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['iso-8859-1', 'utf-16'])
 def testGetPreferredCharsetOrdering(self):
     # test that the charsets are returned sorted according to
     # their "quality value"
     request = {
         'HTTP_ACCEPT_CHARSET': 'ISO-8859-1, UTF-16;Q=0.33, UTF-8;q=0.66'
     }
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['utf-8', 'iso-8859-1', 'utf-16'])
 def testMalformedHTTP_ACCEPT_CHARSET(self):
     """ Test for Launchpad #253362 """
     request = {'HTTP_ACCEPT_CHARSET': 'utf-8;q=0.7,iso-8859-1;q=0.2*;q=0.1'}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['utf-8', 'iso-8859-1'])
Esempio n. 18
0
def PyramidBrowserPreferredCharsets(request):
    # Unfortunately, the trick we use for UserPreferredLanguages
    # (through an interface) does not work here and so we have to tightly
    # couple to an implementation.
    return HTTPCharsets(PyramidZopeRequestProxy(request))
 def testNoStar(self):
     request = {'HTTP_ACCEPT_CHARSET': 'utf-16;q=0.66'}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['iso-8859-1', 'utf-16'])
Esempio n. 20
0
 def testGetPreferredCharset(self):
     request = {'HTTP_ACCEPT_CHARSET':
                'ISO-8859-1, UTF-8;q=0.66, UTF-16;q=0.33'}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['utf-8', 'iso-8859-1', 'utf-16'])
Esempio n. 21
0
 def testMalformedHTTP_ACCEPT_CHARSET(self):
     """ Test for Launchpad #253362 """
     request = {"HTTP_ACCEPT_CHARSET": "utf-8;q=0.7,iso-8859-1;q=0.2*;q=0.1"}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()), ["utf-8", "iso-8859-1"])
Esempio n. 22
0
 def test_star_header(self):
     """ test star charset header keeps zope publisher's behaviour """
     req = create_request('*')
     zope_publisher = HTTPCharsets(req).getPreferredCharsets()
     self._validate(req, zope_publisher)
Esempio n. 23
0
 def testNoStar(self):
     request = {'HTTP_ACCEPT_CHARSET': 'utf-16;q=0.66'}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()),
                      ['iso-8859-1', 'utf-16'])
Esempio n. 24
0
 def testNoStar(self):
     request = {"HTTP_ACCEPT_CHARSET": "utf-16;q=0.66"}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()), ["iso-8859-1", "utf-16"])
Esempio n. 25
0
 def testGetPreferredCharset(self):
     request = {"HTTP_ACCEPT_CHARSET": "ISO-8859-1, UTF-8;q=0.66, UTF-16;q=0.33"}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()), ["utf-8", "iso-8859-1", "utf-16"])
Esempio n. 26
0
 def testStarAndUtf8(self):
     # If '*' and 'utf-8' are in HTTP_ACCEPT_CHARSET, we won't insert
     # an extra 'utf-8'.
     request = {"HTTP_ACCEPT_CHARSET": "ISO-8859-1, utf-8, *"}
     browser_charsets = HTTPCharsets(request)
     self.assertEqual(list(browser_charsets.getPreferredCharsets()), ["utf-8", "iso-8859-1", "*"])
Esempio n. 27
0
 def test_specific_header(self):
     """ test explicit charset header keeps zope publisher's behaviour """
     req = create_request('ISO-8859-1,utf-8;q=0.7,*;q=0.3')
     zope_publisher = HTTPCharsets(req).getPreferredCharsets()
     self._validate(req, zope_publisher)