index.spec.ts 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. import 'reflect-metadata';
  2. /**
  3. * Unit tests
  4. */
  5. import './unit-tests/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.spec';
  6. import './unit-tests/analyzers/number-numerical-expression-analyzer/NumberNumericalExpressionAnalyzer.spec';
  7. import './unit-tests/analyzers/prevailing-kind-of-variables-analyzer/PrevailingKindOfVariablesAnalyzer.spec';
  8. import './unit-tests/analyzers/scope-analyzer/ScopeAnalyzer.spec';
  9. import './unit-tests/analyzers/string-array-storage-analyzer/StringArrayStorageAnalyzer.spec';
  10. import './unit-tests/cli/sanitizers/ArraySanitizer.spec';
  11. import './unit-tests/cli/sanitizers/BooleanSanitizer.spec';
  12. import './unit-tests/cli/utils/CLIUtils.spec';
  13. import './unit-tests/cli/utils/IdentifierNamesCacheFileUtils.spec';
  14. import './unit-tests/cli/utils/ObfuscatedCodeFileUtils.spec';
  15. import './unit-tests/cli/utils/SourceCodeFileUtils.spec';
  16. import './unit-tests/decorators/initializable/Initializable.spec';
  17. import './unit-tests/generators/identifier-names-generators/DictionarylIdentifierNamesGenerator.spec';
  18. import './unit-tests/generators/identifier-names-generators/HexadecimalIdentifierNamesGenerator.spec';
  19. import './unit-tests/generators/identifier-names-generators/MangledShuffledlIdentifierNamesGenerator.spec';
  20. import './unit-tests/generators/identifier-names-generators/MangledlIdentifierNamesGenerator.spec';
  21. import './unit-tests/javascript-obfuscator/ASTParserFacade.spec';
  22. import './unit-tests/javascript-obfuscator/JavaScriptObfuscator.spec';
  23. import './unit-tests/logger/Logger.spec';
  24. import './unit-tests/node-transformers/preparing-transformers/ObfuscatingGuardsTransformer.spec';
  25. import './unit-tests/node/node-appender/NodeAppender.spec';
  26. import './unit-tests/node/node-guards/NodeGuards.spec';
  27. import './unit-tests/node/node-lexical-scope-utils/NodeLexicalScopeUtils.spec';
  28. import './unit-tests/node/node-literal-utils/NodeLiteralUtils.spec';
  29. import './unit-tests/node/node-metadata/NodeMetadata.spec';
  30. import './unit-tests/node/node-statement-utils/NodeStatementUtils.spec';
  31. import './unit-tests/node/node-utils/NodeUtils.spec';
  32. import './unit-tests/node/numerical-expression-data-to-node-converter/NumericalExpressionDataToNodeConverter.spec';
  33. import './unit-tests/options/Options.spec';
  34. import './unit-tests/options/ValidationErrorsFormatter.spec';
  35. import './unit-tests/source-code/ObfuscationResult.spec';
  36. import './unit-tests/source-code/SourceCode.spec';
  37. import './unit-tests/storages/ArrayStorage.spec';
  38. import './unit-tests/storages/MapStorage.spec';
  39. import './unit-tests/storages/identifier-names-cache/GlobalIdentifierNamesCacheStorage.spec';
  40. import './unit-tests/storages/identifier-names-cache/PropertyIdentifierNamesCacheStorage.spec';
  41. import './unit-tests/storages/string-array-transformers/literal-nodes-cache/LiteralNodesCacheStorage.spec';
  42. import './unit-tests/storages/string-array-transformers/string-array/StringArrayStorage.spec';
  43. import './unit-tests/storages/string-array-transformers/visited-lexical-scope-nodes-stack/VisitedLexicalScopeNodesStackStorage.spec';
  44. import './unit-tests/utils/ArrayUtils.spec';
  45. import './unit-tests/utils/CryptUtils.spec';
  46. import './unit-tests/utils/CryptUtilsStringArray.spec';
  47. import './unit-tests/utils/EscapeSequenceEncoder.spec';
  48. import './unit-tests/utils/LevelledTopologicalSorter.spec';
  49. import './unit-tests/utils/NumberUtils.spec';
  50. import './unit-tests/utils/ObfuscatedCodeFileUtils.spec'
  51. import './unit-tests/utils/RandomGenerator.spec';
  52. import './unit-tests/utils/SetUtils.spec';
  53. import './unit-tests/utils/StringUtils.spec';
  54. import './unit-tests/utils/Utils.spec';
  55. /**
  56. * Functional tests
  57. */
  58. import './functional-tests/analyzers/calls-graph-analyzer/CallsGraphAnalyzer.spec';
  59. import './functional-tests/analyzers/scope-analyzer/ScopeAnalyzer.spec';
  60. import './functional-tests/cli/JavaScriptObfuscatorCLI.spec';
  61. import './functional-tests/code-transformers/preparing-transformers/hashbang-operator-transformer/HashbangOperatorTransformer.spec';
  62. import './functional-tests/custom-code-helpers/common/templates/GlobalVariableNoEvalTemplate.spec';
  63. import './functional-tests/custom-code-helpers/console-output/ConsoleOutputDisableExpressionCodeHelper.spec';
  64. import './functional-tests/custom-code-helpers/console-output/templates/ConsoleOutputDisableTemplate.spec';
  65. import './functional-tests/custom-code-helpers/debug-protection/templates/debug-protection-function-call-template/DebugProtectionFunctionCallTemplate.spec';
  66. import './functional-tests/custom-code-helpers/debug-protection/templates/debug-protection-function-interval-template/DebugProtectionFunctionIntervalTemplate.spec';
  67. import './functional-tests/custom-code-helpers/domain-lock/DomainLockCodeHelper.spec';
  68. import './functional-tests/custom-code-helpers/domain-lock/templates/DomainLockNodeTemplate.spec';
  69. import './functional-tests/custom-code-helpers/self-defending/SelfDefendingCodeHelper.spec';
  70. import './functional-tests/custom-code-helpers/self-defending/templates/SelfDefendingTemplate.spec';
  71. import './functional-tests/custom-code-helpers/string-array/StringArrayCallsWrapperCodeHelper.spec';
  72. import './functional-tests/custom-code-helpers/string-array/StringArrayCodeHelper.spec';
  73. import './functional-tests/custom-code-helpers/string-array/StringArrayRotateFunctionCodeHelper.spec';
  74. import './functional-tests/custom-code-helpers/string-array/group/StringArrayCodeHelperGroup.spec';
  75. import './functional-tests/custom-code-helpers/string-array/templates/string-array-calls-wrapper-node-template/StringArrayCallsWrapperTemplate.spec';
  76. import './functional-tests/custom-code-helpers/string-array/templates/string-array-rotate-function-template/StringArrayRotateFunctionTemplate.spec';
  77. import './functional-tests/custom-code-helpers/string-array/templates/string-array-template/StringArrayTemplate.spec';
  78. import './functional-tests/generators/identifier-names-generators/dictionary-identifier-names-generator/DictionaryIdentifierNamesGenerator.spec';
  79. import './functional-tests/generators/identifier-names-generators/mangled-identifier-names-generator/MangledIdentifierNamesGenerator.spec';
  80. import './functional-tests/generators/identifier-names-generators/mangled-shuffled-identifier-names-generator/MangledShuffledIdentifierNamesGenerator.spec';
  81. import './functional-tests/issues/issue321.spec';
  82. import './functional-tests/issues/issue355.spec';
  83. import './functional-tests/issues/issue419.spec';
  84. import './functional-tests/issues/issue424.spec';
  85. import './functional-tests/issues/issue437.spec';
  86. import './functional-tests/javascript-obfuscator/JavaScriptObfuscator.spec';
  87. import './functional-tests/node-transformers/control-flow-transformers/block-statement-control-flow-transformer/BlockStatementControlFlowTransformer.spec';
  88. import './functional-tests/node-transformers/control-flow-transformers/control-flow-replacers/binary-expression-control-flow-replacer/BinaryExpressionControlFlowReplacer.spec';
  89. import './functional-tests/node-transformers/control-flow-transformers/control-flow-replacers/call-expression-control-flow-replacer/CallExpressionControlFlowReplacer.spec';
  90. import './functional-tests/node-transformers/control-flow-transformers/control-flow-replacers/logical-expression-control-flow-replacer/LogicalExpressionControlFlowReplacer.spec';
  91. import './functional-tests/node-transformers/control-flow-transformers/control-flow-replacers/string-litertal-control-flow-replacer/StringLiteralControlFlowReplacer.spec';
  92. import './functional-tests/node-transformers/control-flow-transformers/function-control-flow-transformer/FunctionControlFlowTransformer.spec';
  93. import './functional-tests/node-transformers/control-flow-transformers/string-array-control-flow-transformer/StringArrayControlFlowTransformer.spec';
  94. import './functional-tests/node-transformers/converting-transformers/boolean-literal-transformer/BooleanLiteralTransformer.spec';
  95. import './functional-tests/node-transformers/converting-transformers/class-field-transformer/ClassFieldTransformer.spec';
  96. import './functional-tests/node-transformers/converting-transformers/export-specifier-transformer/ExportSpecifierTransformer.spec';
  97. import './functional-tests/node-transformers/converting-transformers/member-expression-transformer/MemberExpressionTransformer.spec';
  98. import './functional-tests/node-transformers/converting-transformers/number-literal-transformer/NumberLiteralTransformer.spec';
  99. import './functional-tests/node-transformers/converting-transformers/numbers-to-numerical-expressions-transformer/NumbersToNumericalExpressionsTransformer.spec';
  100. import './functional-tests/node-transformers/converting-transformers/object-expression-keys-transformer/ObjectExpressionKeysTransformer.spec';
  101. import './functional-tests/node-transformers/converting-transformers/object-expression-transformer/ObjectExpressionTransformer.spec';
  102. import './functional-tests/node-transformers/converting-transformers/object-pattern-properties-transformer/ObjectPatternPropertiesTransformer.spec';
  103. import './functional-tests/node-transformers/converting-transformers/split-string-transformer/SplitStringTransformer.spec';
  104. import './functional-tests/node-transformers/converting-transformers/template-literal-transformer/TemplateLiteralTransformer.spec';
  105. import './functional-tests/node-transformers/dead-code-injection-transformers/DeadCodeInjectionTransformer.spec';
  106. import './functional-tests/node-transformers/finalizing-transformers/directive-placement-transformer/DirectivePlacementTransformer.spec';
  107. import './functional-tests/node-transformers/finalizing-transformers/escape-sequence-transformer/EscapeSequenceTransformer.spec';
  108. import './functional-tests/node-transformers/initializing-transformers/comments-transformer/CommentsTransformer.spec';
  109. import './functional-tests/node-transformers/preparing-transformers/eval-call-expression-transformer/EvalCallExpressionTransformer.spec';
  110. import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/black-list-obfuscating-guard/BlackListObfuscatingGuard.spec';
  111. import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/conditional-comment-obfuscating-guard/ConditionalCommentObfuscatingGuard.spec';
  112. import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/force-transform-string-obfuscating-guard/ForceTransformStringObfuscatingGuard.spec';
  113. import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/ignored-import-obfuscating-guard/IgnoredImportObfuscatingGuard.spec';
  114. import './functional-tests/node-transformers/preparing-transformers/obfuscating-guards/reserved-string-obfuscating-guard/ReservedStringObfuscatingGuard.spec';
  115. import './functional-tests/node-transformers/preparing-transformers/variable-preserve-transformer/VariablePreserveTransformer.spec';
  116. import './functional-tests/node-transformers/rename-identifiers-transformers/identifier-replacer/IdentifierReplacer.spec';
  117. import './functional-tests/node-transformers/rename-identifiers-transformers/labeled-statement-transformer/LabeledStatementTransformer.spec';
  118. import './functional-tests/node-transformers/rename-identifiers-transformers/scope-identifiers-transformer/catch-clause/CatchClause.spec';
  119. import './functional-tests/node-transformers/rename-identifiers-transformers/scope-identifiers-transformer/class-declaration/ClassDeclaration.spec';
  120. import './functional-tests/node-transformers/rename-identifiers-transformers/scope-identifiers-transformer/class-expression/ClassExpression.spec';
  121. import './functional-tests/node-transformers/rename-identifiers-transformers/scope-identifiers-transformer/function-declaration/FunctionDeclaration.spec';
  122. import './functional-tests/node-transformers/rename-identifiers-transformers/scope-identifiers-transformer/function/Function.spec';
  123. import './functional-tests/node-transformers/rename-identifiers-transformers/scope-identifiers-transformer/import-declaration/ImportDeclaration.spec';
  124. import './functional-tests/node-transformers/rename-identifiers-transformers/scope-identifiers-transformer/variable-declaration/VariableDeclaration.spec';
  125. import './functional-tests/node-transformers/rename-identifiers-transformers/scope-through-identifiers-transformer/class-declaration/ClassDeclaration.spec';
  126. import './functional-tests/node-transformers/rename-identifiers-transformers/scope-through-identifiers-transformer/function-declaration/FunctionDeclaration.spec';
  127. import './functional-tests/node-transformers/rename-identifiers-transformers/scope-through-identifiers-transformer/variable-declaration/VariableDeclaration.spec';
  128. import './functional-tests/node-transformers/rename-properties-transformers/rename-properties-transformer/RenamePropertiesTransformer.spec';
  129. import './functional-tests/node-transformers/simplifying-transformers/block-statement-simplify-transformer/BlockStatementSimplifyTransformer.spec';
  130. import './functional-tests/node-transformers/simplifying-transformers/expression-statements-merge-transformer/ExpressionStatementsMergeTransformer.spec';
  131. import './functional-tests/node-transformers/simplifying-transformers/if-statement-simplify-transformer/IfStatementSimplifyTransformer.spec';
  132. import './functional-tests/node-transformers/simplifying-transformers/variable-declarations-merge-transformer/VariableDeclarationsMergeTransformer.spec';
  133. import './functional-tests/node-transformers/string-array-transformers/string-array-rotate-function-transformer/StringArrayRotateFunctionTransformer.spec';
  134. import './functional-tests/node-transformers/string-array-transformers/string-array-scope-calls-wrapper-transformer/StringArrayScopeCallsWrapperTransformer.spec';
  135. import './functional-tests/node-transformers/string-array-transformers/string-array-transformer/StringArrayTransformer.spec';
  136. import './functional-tests/options/OptionsNormalizer.spec';
  137. import './functional-tests/options/domain-lock-destination/Validation.spec';
  138. import './functional-tests/options/domain-lock/Validation.spec';
  139. import './functional-tests/options/identifier-names-cache/Validation.spec';
  140. import './functional-tests/options/input-file-name/Validation.spec';
  141. import './functional-tests/storages/string-array-transformers/string-array-storage/StringArrayStorage.spec';
  142. /**
  143. * Performance tests
  144. */
  145. import './performance-tests/JavaScriptObfuscatorPerformance.spec';
  146. /**
  147. * Runtime tests
  148. */
  149. import './runtime-tests/JavaScriptObfuscatorRuntime.spec';