tests: Add tests for tests.utils.http
This commit is contained in:
parent
cf3fa25ef4
commit
7be3976890
109
qutebrowser/test/utils/http/test_http.py
Normal file
109
qutebrowser/test/utils/http/test_http.py
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et:
|
||||||
|
|
||||||
|
# Copyright 2014 Florian Bruhin (The Compiler) <mail@qutebrowser.org>
|
||||||
|
#
|
||||||
|
# This file is part of qutebrowser.
|
||||||
|
#
|
||||||
|
# qutebrowser is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# qutebrowser is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
"""Tests for qutebrowser.utils.http.
|
||||||
|
|
||||||
|
Note that tests for parse_content_disposition are in their own
|
||||||
|
test_content_disposition.py file.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
import qutebrowser.utils.http as httputils
|
||||||
|
from qutebrowser.test.stubs import FakeNetworkReply
|
||||||
|
|
||||||
|
|
||||||
|
class ParseContentTypeTests(unittest.TestCase):
|
||||||
|
|
||||||
|
"""Test for parse_content_type."""
|
||||||
|
|
||||||
|
# pylint: disable=unpacking-non-sequence
|
||||||
|
|
||||||
|
def test_not_existing(self):
|
||||||
|
"""Test without any Content-Type header."""
|
||||||
|
reply = FakeNetworkReply()
|
||||||
|
self.assertIsNone(httputils.parse_content_type(reply))
|
||||||
|
|
||||||
|
def test_mimetype(self):
|
||||||
|
"""Test with simple Content-Type header."""
|
||||||
|
reply = FakeNetworkReply(headers={'Content-Type': 'image/example'})
|
||||||
|
mimetype, rest = httputils.parse_content_type(reply)
|
||||||
|
self.assertEqual(mimetype, 'image/example')
|
||||||
|
self.assertIsNone(rest)
|
||||||
|
|
||||||
|
def test_empty(self):
|
||||||
|
"""Test with empty Content-Type header."""
|
||||||
|
reply = FakeNetworkReply(headers={'Content-Type': ''})
|
||||||
|
mimetype, rest = httputils.parse_content_type(reply)
|
||||||
|
self.assertEqual(mimetype, '')
|
||||||
|
self.assertIsNone(rest)
|
||||||
|
|
||||||
|
def test_additional(self):
|
||||||
|
"""Test with Content-Type header with additional informations."""
|
||||||
|
reply = FakeNetworkReply(
|
||||||
|
headers={'Content-Type': 'image/example; encoding=UTF-8'})
|
||||||
|
mimetype, rest = httputils.parse_content_type(reply)
|
||||||
|
self.assertEqual(mimetype, 'image/example')
|
||||||
|
self.assertEqual(rest, ' encoding=UTF-8')
|
||||||
|
|
||||||
|
|
||||||
|
class ChangeContentTypeTests(unittest.TestCase):
|
||||||
|
|
||||||
|
"""Test for change_content_type."""
|
||||||
|
|
||||||
|
def test_not_existing(self):
|
||||||
|
"""Test without any Content-Type header."""
|
||||||
|
reply = FakeNetworkReply()
|
||||||
|
httputils.change_content_type(reply, {'image/example': 'image/jpeg'})
|
||||||
|
|
||||||
|
def test_mimetype(self):
|
||||||
|
"""Test with simple Content-Type header."""
|
||||||
|
reply = FakeNetworkReply(headers={'Content-Type': 'image/example'})
|
||||||
|
httputils.change_content_type(reply, {'image/example': 'image/jpeg'})
|
||||||
|
self.assertEqual(reply.headers['Content-Type'], 'image/jpeg')
|
||||||
|
|
||||||
|
def test_empty(self):
|
||||||
|
"""Test with empty Content-Type header."""
|
||||||
|
reply = FakeNetworkReply(headers={'Content-Type': ''})
|
||||||
|
httputils.change_content_type(reply, {'image/example': 'image/jpeg'})
|
||||||
|
self.assertEqual(reply.headers['Content-Type'], '')
|
||||||
|
|
||||||
|
def test_additional(self):
|
||||||
|
"""Test with Content-Type header with additional informations."""
|
||||||
|
reply = FakeNetworkReply(
|
||||||
|
headers={'Content-Type': 'image/example; encoding=UTF-8'})
|
||||||
|
httputils.change_content_type(reply, {'image/example': 'image/jpeg'})
|
||||||
|
self.assertEqual(reply.headers['Content-Type'],
|
||||||
|
'image/jpeg; encoding=UTF-8')
|
||||||
|
|
||||||
|
def test_wrong_mapping(self):
|
||||||
|
"""Test with a mapping which doesn't match the header."""
|
||||||
|
reply = FakeNetworkReply(headers={'Content-Type': 'image/example'})
|
||||||
|
httputils.change_content_type(reply, {'image/foo': 'image/bar'})
|
||||||
|
self.assertEqual(reply.headers['Content-Type'], 'image/example')
|
||||||
|
|
||||||
|
def test_empty_mapping(self):
|
||||||
|
"""Test with a mapping which is empty."""
|
||||||
|
reply = FakeNetworkReply(headers={'Content-Type': 'image/example'})
|
||||||
|
httputils.change_content_type(reply, {})
|
||||||
|
self.assertEqual(reply.headers['Content-Type'], 'image/example')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main()
|
Loading…
Reference in New Issue
Block a user