[GEMINI] Add tests for base32, binary, url, rot13, and reversed decoders
This commit is contained in:
@@ -40,4 +40,64 @@ def test_try_decode_metadata_non_decodable():
|
||||
# Hex: \x01\x02\x03\x04
|
||||
res_binary = try_decode_metadata("01020304")
|
||||
assert not res_binary
|
||||
# {{{ test_try_decode_metadata_base32
|
||||
def test_try_decode_metadata_base32():
|
||||
"""
|
||||
Verifies that try_decode_metadata successfully decodes standard base32 string payloads.
|
||||
"""
|
||||
# Base32 encoding of "flag{b32_metadata}"
|
||||
b32_str = "MZXW6YTBMJWGS4TZENWGS4TBNQ======"
|
||||
res = try_decode_metadata(b32_str)
|
||||
assert res.get("base32") == "flag{b32_metadata}"
|
||||
# }}}
|
||||
|
||||
# {{{ test_try_decode_metadata_binary
|
||||
def test_try_decode_metadata_binary():
|
||||
"""
|
||||
Verifies that try_decode_metadata successfully decodes binary strings.
|
||||
"""
|
||||
# Binary encoding of "flag{bin}"
|
||||
bin_str = "011001100110110001100001011001110111101101100010011010010110111001111101"
|
||||
res = try_decode_metadata(bin_str)
|
||||
assert res.get("binary") == "flag{bin}"
|
||||
# }}}
|
||||
|
||||
# {{{ test_try_decode_metadata_url
|
||||
def test_try_decode_metadata_url():
|
||||
"""
|
||||
Verifies that try_decode_metadata successfully decodes percent/URL encoded payloads.
|
||||
"""
|
||||
url_str = "%66%6c%61%67%7b%75%72%6c%7d"
|
||||
res = try_decode_metadata(url_str)
|
||||
assert res.get("url") == "flag{url}"
|
||||
# }}}
|
||||
|
||||
# {{{ test_try_decode_metadata_rot13_only_flags
|
||||
def test_try_decode_metadata_rot13_only_flags():
|
||||
"""
|
||||
Verifies that rot13 decodes flags but ignores standard text noise.
|
||||
"""
|
||||
# ROT13 of "flag{rot13}" -> "synt{ebg13}"
|
||||
rot_str = "synt{ebg13}"
|
||||
res = try_decode_metadata(rot_str)
|
||||
assert res.get("rot13") == "flag{rot13}"
|
||||
|
||||
# ROT13 of "normal text" -> "abezny grkg"
|
||||
res_noise = try_decode_metadata("abezny grkg")
|
||||
assert "rot13" not in res_noise
|
||||
# }}}
|
||||
|
||||
# {{{ test_try_decode_metadata_reversed_only_flags
|
||||
def test_try_decode_metadata_reversed_only_flags():
|
||||
"""
|
||||
Verifies that reversed decodes flags but ignores standard text noise.
|
||||
"""
|
||||
# Reversed of "flag{rev}" -> "}ver{galf"
|
||||
rev_str = "}ver{galf"
|
||||
res = try_decode_metadata(rev_str)
|
||||
assert res.get("reversed") == "flag{rev}"
|
||||
|
||||
# Reversed of "normal text" -> "txet lamron"
|
||||
res_noise = try_decode_metadata("txet lamron")
|
||||
assert "reversed" not in res_noise
|
||||
# }}}
|
||||
|
||||
Reference in New Issue
Block a user