diff --git a/tests/test_decoding.py b/tests/test_decoding.py index b52a22f..d19f2d9 100644 --- a/tests/test_decoding.py +++ b/tests/test_decoding.py @@ -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 # }}}