A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/django/django/commit/d1bc980db1c0fffd6d60677e62f70beadb9fe64a below:

[1.9.x] Fixed CVE-2016-7401 -- Fixed CSRF protection bypass on a site… · django/django@d1bc980 · GitHub

21 21

from django.test import SimpleTestCase

22 22

from django.utils import six

23 23

from django.utils._os import upath

24 -

from django.utils.encoding import force_text, smart_str

24 +

from django.utils.encoding import force_str, force_text, smart_str

25 25

from django.utils.functional import lazy

26 26 27 27

lazystr = lazy(force_text, six.text_type)

@@ -657,6 +657,8 @@ def test_decode(self):

657 657

c2 = SimpleCookie()

658 658

c2.load(c.output()[12:])

659 659

self.assertEqual(c['test'].value, c2['test'].value)

660 +

c3 = parse_cookie(c.output()[12:])

661 +

self.assertEqual(c['test'].value, c3['test'])

660 662 661 663

def test_decode_2(self):

662 664

"""

@@ -667,6 +669,8 @@ def test_decode_2(self):

667 669

c2 = SimpleCookie()

668 670

c2.load(c.output()[12:])

669 671

self.assertEqual(c['test'].value, c2['test'].value)

672 +

c3 = parse_cookie(c.output()[12:])

673 +

self.assertEqual(c['test'].value, c3['test'])

670 674 671 675

def test_nonstandard_keys(self):

672 676

"""

@@ -680,6 +684,52 @@ def test_repeated_nonstandard_keys(self):

680 684

"""

681 685

self.assertIn('good_cookie', parse_cookie('a:=b; a:=c; good_cookie=yes').keys())

682 686 687 +

def test_python_cookies(self):

688 +

"""

689 +

Test cases copied from Python's Lib/test/test_http_cookies.py

690 +

"""

691 +

self.assertEqual(parse_cookie('chips=ahoy; vienna=finger'), {'chips': 'ahoy', 'vienna': 'finger'})

692 +

# Here parse_cookie() differs from Python's cookie parsing in that it

693 +

# treats all semicolons as delimiters, even within quotes.

694 +

self.assertEqual(

695 +

parse_cookie('keebler="E=mc2; L=\\"Loves\\"; fudge=\\012;"'),

696 +

{'keebler': '"E=mc2', 'L': '\\"Loves\\"', 'fudge': '\\012', '': '"'}

697 +

)

698 +

# Illegal cookies that have an '=' char in an unquoted value.

699 +

self.assertEqual(parse_cookie('keebler=E=mc2'), {'keebler': 'E=mc2'})

700 +

# Cookies with ':' character in their name.

701 +

self.assertEqual(parse_cookie('key:term=value:term'), {'key:term': 'value:term'})

702 +

# Cookies with '[' and ']'.

703 +

self.assertEqual(parse_cookie('a=b; c=[; d=r; f=h'), {'a': 'b', 'c': '[', 'd': 'r', 'f': 'h'})

704 + 705 +

def test_cookie_edgecases(self):

706 +

# Cookies that RFC6265 allows.

707 +

self.assertEqual(parse_cookie('a=b; Domain=example.com'), {'a': 'b', 'Domain': 'example.com'})

708 +

# parse_cookie() has historically kept only the last cookie with the

709 +

# same name.

710 +

self.assertEqual(parse_cookie('a=b; h=i; a=c'), {'a': 'c', 'h': 'i'})

711 + 712 +

def test_invalid_cookies(self):

713 +

"""

714 +

Cookie strings that go against RFC6265 but browsers will send if set

715 +

via document.cookie.

716 +

"""

717 +

# Chunks without an equals sign appear as unnamed values per

718 +

# https://bugzilla.mozilla.org/show_bug.cgi?id=169091

719 +

self.assertIn('django_language', parse_cookie('abc=def; unnamed; django_language=en').keys())

720 +

# Even a double quote may be an unamed value.

721 +

self.assertEqual(parse_cookie('a=b; "; c=d'), {'a': 'b', '': '"', 'c': 'd'})

722 +

# Spaces in names and values, and an equals sign in values.

723 +

self.assertEqual(parse_cookie('a b c=d e = f; gh=i'), {'a b c': 'd e = f', 'gh': 'i'})

724 +

# More characters the spec forbids.

725 +

self.assertEqual(parse_cookie('a b,c<>@:/[]?{}=d " =e,f g'), {'a b,c<>@:/[]?{}': 'd " =e,f g'})

726 +

# Unicode characters. The spec only allows ASCII.

727 +

self.assertEqual(parse_cookie('saint=André Bessette'), {'saint': force_str('André Bessette')})

728 +

# Browsers don't send extra whitespace or semicolons in Cookie headers,

729 +

# but parse_cookie() should parse whitespace the same way

730 +

# document.cookie parses whitespace.

731 +

self.assertEqual(parse_cookie(' = b ; ; = ; c = ; '), {'': 'b', 'c': ''})

732 + 683 733

def test_httponly_after_load(self):

684 734

"""

685 735

Test that we can use httponly attribute on cookies that we load


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4