aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2017-05-01 16:28:00 +1200
committerAldo Cortesi <aldo@nullcube.com>2017-05-01 16:52:58 +1200
commit1ea4a5a48ef096f314ac81af8426a8e911336729 (patch)
treeafda2e5ccefbcda0164827d4cebbf1cff1482292 /test
parent670d1e408b565f673ebb2c5d498ad5ddf4558d8b (diff)
downloadmitmproxy-1ea4a5a48ef096f314ac81af8426a8e911336729.tar.gz
mitmproxy-1ea4a5a48ef096f314ac81af8426a8e911336729.tar.bz2
mitmproxy-1ea4a5a48ef096f314ac81af8426a8e911336729.zip
keymap: keys can now bind to multiple contexts
Use this to map the majority of the keys in flowview.
Diffstat (limited to 'test')
-rw-r--r--test/mitmproxy/addons/test_view.py7
-rw-r--r--test/mitmproxy/tools/console/test_keymap.py29
2 files changed, 35 insertions, 1 deletions
diff --git a/test/mitmproxy/addons/test_view.py b/test/mitmproxy/addons/test_view.py
index 1724da49..eca4b546 100644
--- a/test/mitmproxy/addons/test_view.py
+++ b/test/mitmproxy/addons/test_view.py
@@ -218,7 +218,7 @@ def test_resolve():
tctx.command(v.resolve, "~")
-def test_go():
+def test_movement():
v = view.View()
with taddons.context():
v.add([
@@ -240,6 +240,11 @@ def test_go():
v.go(-999)
assert v.focus.index == 0
+ v.focus_next()
+ assert v.focus.index == 1
+ v.focus_prev()
+ assert v.focus.index == 0
+
def test_duplicate():
v = view.View()
diff --git a/test/mitmproxy/tools/console/test_keymap.py b/test/mitmproxy/tools/console/test_keymap.py
new file mode 100644
index 00000000..6a75800e
--- /dev/null
+++ b/test/mitmproxy/tools/console/test_keymap.py
@@ -0,0 +1,29 @@
+from mitmproxy.tools.console import keymap
+from mitmproxy.test import taddons
+from unittest import mock
+import pytest
+
+
+def test_bind():
+ with taddons.context() as tctx:
+ km = keymap.Keymap(tctx.master)
+ km.executor = mock.Mock()
+
+ with pytest.raises(ValueError):
+ km.add("foo", "bar", ["unsupported"])
+
+ km.add("key", "str", ["options", "commands"])
+ assert km.get("options", "key")
+ assert km.get("commands", "key")
+ assert not km.get("flowlist", "key")
+
+ km.handle("unknown", "unknown")
+ assert not km.executor.called
+
+ km.handle("options", "key")
+ assert km.executor.called
+
+ km.add("glob", "str", ["global"])
+ km.executor = mock.Mock()
+ km.handle("options", "glob")
+ assert km.executor.called