1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
#
# written by Stefano Sanfilippo <a.little.coder@gmail.com>
#
"""Tests for JavaScriptObfuscator unpacker."""
import unittest
from jsbeautifier.unpackers.javascriptobfuscator import unpack, detect, smartsplit
# pylint: disable=R0904
class TestJavascriptObfuscator(unittest.TestCase):
"""JavascriptObfuscator.com test case."""
def test_smartsplit(self):
"""Test smartsplit() function."""
split = smartsplit
def equals(data, result):
return self.assertEqual(split(data), result)
equals("", [])
equals('"a", "b"', ['"a"', '"b"'])
equals('"aaa","bbbb"', ['"aaa"', '"bbbb"'])
equals('"a", "b\\""', ['"a"', '"b\\""'])
def test_detect(self):
"""Test detect() function."""
def positive(source):
return self.assertTrue(detect(source))
def negative(source):
return self.assertFalse(detect(source))
negative("")
negative("abcd")
negative("var _0xaaaa")
positive('var _0xaaaa = ["a", "b"]')
positive('var _0xaaaa=["a", "b"]')
positive('var _0x1234=["a","b"]')
def test_unpack(self):
"""Test unpack() function."""
def decodeto(ob, original):
return self.assertEqual(unpack(ob), original)
decodeto("var _0x8df3=[];var a=10;", "var a=10;")
decodeto(
'var _0xb2a7=["\x74\x27\x65\x73\x74"];var i;for(i=0;i<10;++i)'
"{alert(_0xb2a7[0]);} ;",
"var i;for(i=0;i<10;++i){alert" '("t\'est");} ;',
)
if __name__ == "__main__":
unittest.main()
|