diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2015-05-16 09:42:47 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2015-05-16 09:42:47 +1200 |
commit | d66dedc6e7bdc201cd4d3fa5f04c9636a8ad57f4 (patch) | |
tree | 088fbf245c8fef8f4a4b549566241bd93bf86fdb /test/test_language_base.py | |
parent | 2beae27541be19c22e15a2c02e8fbee254bb8e6c (diff) | |
download | mitmproxy-d66dedc6e7bdc201cd4d3fa5f04c9636a8ad57f4.tar.gz mitmproxy-d66dedc6e7bdc201cd4d3fa5f04c9636a8ad57f4.tar.bz2 mitmproxy-d66dedc6e7bdc201cd4d3fa5f04c9636a8ad57f4.zip |
websockets: mask specification
- Add a FixedLengthValue
- Use it to implement a 4-byte mask specifier
- Adjust docs
Diffstat (limited to 'test/test_language_base.py')
-rw-r--r-- | test/test_language_base.py | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/test/test_language_base.py b/test/test_language_base.py index c6cee7b3..bd67c010 100644 --- a/test/test_language_base.py +++ b/test/test_language_base.py @@ -168,7 +168,7 @@ class TestMisc: assert base.TokValue.parseString('"val"')[0].val == "val" assert base.TokValue.parseString('"\'val\'"')[0].val == "'val'" - def test_prevalue(self): + def test_value(self): class TT(base.Value): preamble = "m" e = TT.expr() @@ -183,6 +183,30 @@ class TestMisc: v3 = v2.freeze({}) assert v2.value.val == v3.value.val + def test_fixedlengthvalue(self): + class TT(base.FixedLengthValue): + preamble = "m" + length = 4 + + e = TT.expr() + assert e.parseString("m@4") + tutils.raises("invalid value length", e.parseString, "m@100") + tutils.raises("invalid value length", e.parseString, "m@1") + + with tutils.tmpdir() as t: + p = os.path.join(t, "path") + s = base.Settings(staticdir=t) + with open(p, "wb") as f: + f.write("a" * 20) + v = e.parseString("m<path")[0] + tutils.raises("invalid value length", v.values, s) + + p = os.path.join(t, "path") + with open(p, "wb") as f: + f.write("a" * 4) + v = e.parseString("m<path")[0] + assert v.values(s) + class TKeyValue(base.KeyValue): preamble = "h" |