Source code for jasy.test.script.inject

#!/usr/bin/env python3

import sys
import os
import unittest
import logging

# Extend PYTHONPATH with local 'lib' folder
if __name__ == "__main__":
    jasyroot = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), os.pardir, os.pardir, os.pardir, os.pardir))
    sys.path.insert(0, jasyroot)
    print("Running from %s..." % jasyroot)

import jasy.core.Permutation as Permutation

import jasy.script.parse.Parser as Parser
import jasy.script.parse.ScopeScanner as ScopeScanner
import jasy.script.output.Compressor as Compressor
import jasy.script.clean.Permutate as Permutate


[docs]class Tests(unittest.TestCase):
[docs] def process(self, code, contextId=""): node = Parser.parse(code) permutation = Permutation.Permutation({ 'debug': False, 'legacy': True, 'engine': 'webkit', 'version': 3, 'fullversion': 3.11 }) Permutate.patch(node, permutation) return Compressor.Compressor().compress(node)
[docs] def test_get(self): self.assertEqual(self.process( 'var engine = jasy.Env.getValue("engine");'), 'var engine="webkit";' )
[docs] def test_if_isset(self): self.assertEqual(self.process( ''' if (jasy.Env.isSet("debug", true)) { var x = 1; } '''), 'if(false){var x=1}' )
[docs] def test_isset_bool_false(self): self.assertEqual(self.process( 'var debug = jasy.Env.isSet("debug", true);'), 'var debug=false;' )
[docs] def test_isset_bool_shorthand_false(self): self.assertEqual(self.process( 'var debug = jasy.Env.isSet("debug");'), 'var debug=false;' )
[docs] def test_isset_bool_true(self): self.assertEqual(self.process( 'var legacy = jasy.Env.isSet("legacy", true);'), 'var legacy=true;' )
[docs] def test_isset_bool_shorthand_true(self): self.assertEqual(self.process( 'var legacy = jasy.Env.isSet("legacy");'), 'var legacy=true;' )
[docs] def test_isset_typediff(self): self.assertEqual(self.process( 'var legacy = jasy.Env.isSet("legacy", "foo");'), 'var legacy=false;' )
[docs] def test_isset_lookup(self): self.assertEqual(self.process( 'var legacy = jasy.Env.isSet("legacy", x);'), 'var legacy=jasy.Env.isSet("legacy",x);' )
[docs] def test_isset_int_true(self): self.assertEqual(self.process( 'var recent = jasy.Env.isSet("version", 3);'), 'var recent=true;' )
[docs] def test_isset_int_false(self): self.assertEqual(self.process( 'var recent = jasy.Env.isSet("version", 5);'), 'var recent=false;' )
[docs] def test_isset_float_true(self): self.assertEqual(self.process( 'var buggy = jasy.Env.isSet("fullversion", 3.11);'), 'var buggy=true;' )
[docs] def test_isset_float_false(self): self.assertEqual(self.process( 'var buggy = jasy.Env.isSet("fullversion", 3.2);'), 'var buggy=false;' )
[docs] def test_isset_str_single(self): self.assertEqual(self.process( 'var modern = jasy.Env.isSet("engine", "webkit");'), 'var modern=true;' )
[docs] def test_isset_str_multi(self): self.assertEqual(self.process( 'var modern = jasy.Env.isSet("engine", "gecko|webkit");'), 'var modern=true;' )
[docs] def test_isset_str_multilong(self): self.assertEqual(self.process( 'var modern = jasy.Env.isSet("engine", "gecko|webkitbrowser");'), 'var modern=false;' )
[docs] def test_select(self): self.assertEqual(self.process( ''' var prefix = jasy.Env.select("engine", { webkit: "Webkit", gecko: "Moz", trident: "ms" }); '''), 'var prefix="Webkit";' )
[docs] def test_select_notfound(self): self.assertEqual(self.process( ''' var prefix = jasy.Env.select("engine", { gecko: "Moz", trident: "ms" }); '''), 'var prefix=jasy.Env.select("engine",{gecko:"Moz",trident:"ms"});' )
[docs] def test_select_default(self): self.assertEqual(self.process( ''' var prefix = jasy.Env.select("engine", { gecko: "Moz", trident: "ms", "default": "" }); '''), 'var prefix="";' )
[docs] def test_select_multi(self): self.assertEqual(self.process( ''' var prefix = jasy.Env.select("engine", { "webkit|khtml": "Webkit", trident: "ms", }); '''), 'var prefix="Webkit";' )
if __name__ == '__main__': logging.getLogger().setLevel(logging.ERROR) suite = unittest.TestLoader().loadTestsFromTestCase(Tests) unittest.TextTestRunner(verbosity=2).run(suite)