mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-04 20:40:14 +03:00
Merged danielnaabs test case
This commit is contained in:
commit
4697be18f1
|
@ -101,8 +101,15 @@ class HTMLView1(APIView):
|
||||||
def get(self, request, **kwargs):
|
def get(self, request, **kwargs):
|
||||||
return Response('text')
|
return Response('text')
|
||||||
|
|
||||||
urlpatterns = patterns(
|
|
||||||
'',
|
class HTMLView2(APIView):
|
||||||
|
renderer_classes = (BrowsableAPIRenderer, JSONRenderer)
|
||||||
|
|
||||||
|
def get(self, request, **kwargs):
|
||||||
|
return Response({'url': 'http://domain.com/?param=Yes+%26+No'})
|
||||||
|
|
||||||
|
|
||||||
|
urlpatterns = patterns('',
|
||||||
url(r'^.*\.(?P<format>.+)$', MockView.as_view(renderer_classes=[RendererA, RendererB])),
|
url(r'^.*\.(?P<format>.+)$', MockView.as_view(renderer_classes=[RendererA, RendererB])),
|
||||||
url(r'^$', MockView.as_view(renderer_classes=[RendererA, RendererB])),
|
url(r'^$', MockView.as_view(renderer_classes=[RendererA, RendererB])),
|
||||||
url(r'^cache$', MockGETView.as_view()),
|
url(r'^cache$', MockGETView.as_view()),
|
||||||
|
@ -111,6 +118,7 @@ urlpatterns = patterns(
|
||||||
url(r'^parseerror$', MockPOSTView.as_view(renderer_classes=[JSONRenderer, BrowsableAPIRenderer])),
|
url(r'^parseerror$', MockPOSTView.as_view(renderer_classes=[JSONRenderer, BrowsableAPIRenderer])),
|
||||||
url(r'^html$', HTMLView.as_view()),
|
url(r'^html$', HTMLView.as_view()),
|
||||||
url(r'^html1$', HTMLView1.as_view()),
|
url(r'^html1$', HTMLView1.as_view()),
|
||||||
|
url(r'^html2$', HTMLView2.as_view()),
|
||||||
url(r'^empty$', EmptyGETView.as_view()),
|
url(r'^empty$', EmptyGETView.as_view()),
|
||||||
url(r'^api', include('rest_framework.urls', namespace='rest_framework'))
|
url(r'^api', include('rest_framework.urls', namespace='rest_framework'))
|
||||||
)
|
)
|
||||||
|
@ -269,6 +277,16 @@ class RendererEndToEndTests(TestCase):
|
||||||
self.assertContains(resp, '>application/json<')
|
self.assertContains(resp, '>application/json<')
|
||||||
self.assertNotContains(resp, '>text/html; charset=utf-8<')
|
self.assertNotContains(resp, '>text/html; charset=utf-8<')
|
||||||
|
|
||||||
|
def test_browsable_api_urls(self):
|
||||||
|
"""
|
||||||
|
Issue #1649
|
||||||
|
|
||||||
|
Test that URLs have properly escaped GET parameters.
|
||||||
|
"""
|
||||||
|
resp = self.client.get('/html2')
|
||||||
|
# GET parameter should be escaped as Yes+%26+No, not Yes+&+No
|
||||||
|
self.assertEqual(resp.rendered_content.find('Yes+&+No'), -1)
|
||||||
|
|
||||||
|
|
||||||
_flat_repr = '{"foo": ["bar", "baz"]}'
|
_flat_repr = '{"foo": ["bar", "baz"]}'
|
||||||
_indented_repr = '{\n "foo": [\n "bar",\n "baz"\n ]\n}'
|
_indented_repr = '{\n "foo": [\n "bar",\n "baz"\n ]\n}'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user