diff --git a/setup.cfg b/setup.cfg index ebe76efd7..f1382a6ef 100644 --- a/setup.cfg +++ b/setup.cfg @@ -21,9 +21,7 @@ exclude_lines = [tool:full_coverage] exclude = - mitmproxy/contentviews/__init__.py mitmproxy/contentviews/wbxml.py - mitmproxy/contentviews/xml_html.py mitmproxy/net/tcp.py mitmproxy/net/http/encoding.py mitmproxy/proxy/protocol/ @@ -31,7 +29,6 @@ exclude = mitmproxy/proxy/root_context.py mitmproxy/proxy/server.py mitmproxy/tools/ - mitmproxy/controller.py mitmproxy/flow.py mitmproxy/master.py pathod/pathoc.py @@ -45,7 +42,6 @@ exclude = mitmproxy/addons/termlog.py mitmproxy/contentviews/base.py mitmproxy/contentviews/wbxml.py - mitmproxy/contentviews/xml_html.py mitmproxy/controller.py mitmproxy/ctx.py mitmproxy/exceptions.py diff --git a/test/mitmproxy/contentviews/test_api.py b/test/mitmproxy/contentviews/test_api.py index 95d83af91..c072c86ff 100644 --- a/test/mitmproxy/contentviews/test_api.py +++ b/test/mitmproxy/contentviews/test_api.py @@ -9,23 +9,28 @@ from mitmproxy.test import tutils class TestContentView(contentviews.View): name = "test" - prompt = ("t", "test") + prompt = ("test", "t") content_types = ["test/123"] def test_add_remove(): tcv = TestContentView() contentviews.add(tcv) + assert tcv in contentviews.views # repeated addition causes exception - with pytest.raises(ContentViewException): + with pytest.raises(ContentViewException, match="Duplicate view"): contentviews.add(tcv) + tcv2 = TestContentView() + tcv2.name = "test2" + tcv2.prompt = ("test2", "t") # Same shortcut doesn't work either. - with pytest.raises(ContentViewException): - contentviews.add(TestContentView()) + with pytest.raises(ContentViewException, match="Duplicate view shortcut"): + contentviews.add(tcv2) contentviews.remove(tcv) + assert tcv not in contentviews.views def test_get_content_view(): @@ -43,6 +48,7 @@ def test_get_content_view(): headers=Headers(content_type="application/json") ) assert desc == "JSON" + assert list(lines) desc, lines, err = contentviews.get_content_view( contentviews.get("JSON"), @@ -84,3 +90,4 @@ def test_get_message_content_view(): def test_get_by_shortcut(): assert contentviews.get_by_shortcut("s") + assert not contentviews.get_by_shortcut("b") diff --git a/test/mitmproxy/contentviews/test_xml_html.py b/test/mitmproxy/contentviews/test_xml_html.py index 2b0aee4d6..8148fd4ce 100644 --- a/test/mitmproxy/contentviews/test_xml_html.py +++ b/test/mitmproxy/contentviews/test_xml_html.py @@ -11,6 +11,13 @@ def test_simple(): v = full_eval(xml_html.ViewXmlHtml()) assert v(b"foo") == ('XML', [[('text', 'foo')]]) assert v(b"") == ('HTML', [[('text', '')]]) + assert v(b"<>") == ('XML', [[('text', '<>')]]) + assert v(b"
)" @pytest.mark.parametrize("filename", [ @@ -18,6 +25,7 @@ def test_simple(): "cdata.xml", "comment.xml", "inline.html", + "test.html" ]) def test_format_xml(filename): path = data.path(filename) diff --git a/test/mitmproxy/contentviews/test_xml_html_data/test-formatted.html b/test/mitmproxy/contentviews/test_xml_html_data/test-formatted.html new file mode 100644 index 000000000..0eb600048 --- /dev/null +++ b/test/mitmproxy/contentviews/test_xml_html_data/test-formatted.html @@ -0,0 +1,44 @@ + + +
+ ++ Lorem ipsum dolor +
+ sit amet, consectetur +
+ adipiscing elit, sed +
+ do eiusmod tempor +
+ incididunt ut +
+ labore et dolore +
+ magna aliqua. +
+ Ut enim ad minim +
+ veniam, quis nostrud +
+ exercitation +
+ ullamco laboris +
+ nisi ut aliquip ex ea +
+ commodo consequat. +
+ Duis aute irure +
+ dolor in reprehenderit +
+ in voluptate velit +
+ esse cillum dolore +
eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ + diff --git a/test/mitmproxy/contentviews/test_xml_html_data/test.html b/test/mitmproxy/contentviews/test_xml_html_data/test.html new file mode 100644 index 000000000..e74ac3146 --- /dev/null +++ b/test/mitmproxy/contentviews/test_xml_html_data/test.html @@ -0,0 +1,14 @@ + + + + +Lorem ipsum dolor
sit amet, consectetur
adipiscing elit, sed
do eiusmod tempor
incididunt ut
labore et dolore
magna aliqua. +
Ut enim ad minim
veniam, quis nostrud
exercitation
ullamco laboris
+ nisi ut aliquip ex ea
commodo consequat.
Duis aute irure
dolor in reprehenderit
in voluptate velit
esse cillum dolore
eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+ + + + \ No newline at end of file diff --git a/test/mitmproxy/test_controller.py b/test/mitmproxy/test_controller.py index ccc8bf351..2e13d2983 100644 --- a/test/mitmproxy/test_controller.py +++ b/test/mitmproxy/test_controller.py @@ -176,6 +176,8 @@ class TestDummyReply: reply = controller.DummyReply() reply.ack() reply.take() + with pytest.raises(ControlException): + reply.mark_reset() reply.commit() reply.mark_reset() assert reply.state == "committed"