public void Match_HardcodedPasswordAspx_WithoutException() { var hardcodedPassRepository = new DslPatternRepository("<[(?i)password]> = <[\"\\w*\"]>", LanguageFlags.CSharp); var sourceCodeRep = new FileCodeRepository(Path.Combine(TestHelper.TestsDataPath, "HardcodedPassword.aspx")); var workflow = new Workflow(sourceCodeRep, Language.CSharp, hardcodedPassRepository); MatchingResultDto[] matchingResults = workflow.Process().MatchingResults.ToDto(workflow.SourceCodeRepository); Assert.IsTrue(matchingResults[0].MatchedCode.Contains("password = \"hardcoded\"")); Assert.IsTrue(matchingResults[1].MatchedCode.Contains("PASSWORD = \"hardcoded\"")); }
public void Match_RefOutArg() { var codeRepository = new MemorySourceRepository("class P { void Main() { Func(ref a); } }", "test.cs"); var patternsRepository = new DslPatternRepository("Func(a)", "CSharp"); var logger = new TestLogger(); var workflow = new Workflow(codeRepository, patternsRepository) { Logger = logger }; workflow.Process(); Assert.AreEqual(1, logger.Matches.Count); }
public void Match_HardcodedPasswordAspx_WithoutException() { var hardcodedPassRepository = new DslPatternRepository("<[(?i)password]> = <[\"\\w*\"]>", "CSharp"); var sourceCodeRep = new FileCodeRepository(Path.Combine(TestUtility.TestsDataPath, "HardcodedPassword.aspx")); var workflow = new Workflow(sourceCodeRep, hardcodedPassRepository); IEnumerable <MatchResultDto> matchResults = workflow.Process().MatchResults.ToDto(); string match = matchResults.ElementAt(0).MatchedCode; Assert.IsTrue(match.Contains("password") && match.Contains("hardcoded")); match = matchResults.ElementAt(1).MatchedCode; Assert.IsTrue(match.Contains("PASSWORD") && match.Contains("hardcoded")); }
public void Match_HardcodedPasswordAspx_WithoutException() { var hardcodedPassRepository = new DslPatternRepository("<[(?i)password]> = <[\"\\w*\"]>", "CSharp"); var sourceRep = CreateTestFileSourceRepository("HardcodedPassword.aspx"); var logger = new TestLogger(); var workflow = new Workflow(sourceRep, hardcodedPassRepository) { Logger = logger }; workflow.Process(); IEnumerable <MatchResultDto> matchResults = logger.Matches.ToDto(); string match = matchResults.ElementAt(0).MatchedCode; Assert.IsTrue(match.Contains("password") && match.Contains("hardcoded")); match = matchResults.ElementAt(1).MatchedCode; Assert.IsTrue(match.Contains("PASSWORD") && match.Contains("hardcoded")); }
internal void UpdateMatchings() { sourceCodeLogger.Clear(); var sourceCodeRep = new MemoryCodeRepository(sourceCodeTextBox.Text); IPatternsRepository patternRepository; if (!string.IsNullOrEmpty(ServiceLocator.PatternViewModel.Value)) { patternRepository = new DslPatternRepository(ServiceLocator.PatternViewModel.Value, ServiceLocator.PatternViewModel.Languages); } else { patternRepository = new MemoryPatternsRepository(); } var workflow = new Workflow(sourceCodeRep, SelectedLanguage, patternRepository, stage: Stage); workflow.IsIncludeIntermediateResult = true; workflow.Logger = sourceCodeLogger; WorkflowResult workflowResult = workflow.Process(); MatchingResultDto[] matchingResults = workflowResult.MatchingResults .ToDto(workflow.SourceCodeRepository) .ToArray(); if (IsDeveloperMode) { AntlrParseTree antlrParseTree = workflowResult.ParseTrees.FirstOrDefault() as AntlrParseTree; if (antlrParseTree != null && antlrParseTree.SyntaxTree != null) { Antlr4.Runtime.Parser antlrParser = (workflow.ParserConverterSets[antlrParseTree.SourceLanguage].Parser as AntlrParser).Parser; string tokensString = AntlrHelper.GetTokensString(antlrParseTree.Tokens, antlrParser.Vocabulary, onlyDefaultChannel: true); string treeString = antlrParseTree.SyntaxTree.ToStringTreeIndented(antlrParser); Tokens = tokensString; ParseTree = treeString; File.WriteAllText(Path.Combine(ServiceLocator.TempDirectory, "Tokens.txt"), Tokens); File.WriteAllText(Path.Combine(ServiceLocator.TempDirectory, "Tree.txt"), ParseTree); } if (Stage >= Stage.Convert && workflowResult.Usts.FirstOrDefault() != null) { UstJson = jsonSerializer.Serialize(workflowResult.Usts.FirstOrDefault().Root); File.WriteAllText(Path.Combine(ServiceLocator.TempDirectory, "UST.json"), UstJson); } } MatchingResultText = "MATCHINGS"; if (matchingResults.Count() > 0) { MatchingResultText += " (" + matchingResults.Count() + ")"; } if (sourceCodeLogger.ErrorCount == 0) { SourceCodeErrorsIsVisible = false; SourceCodeErrorsText = "ERRORS"; } else { SourceCodeErrorsIsVisible = true; SourceCodeErrorsText = $"ERRORS ({sourceCodeLogger.ErrorCount})"; } Dispatcher.UIThread.InvokeAsync(() => { MatchingResults.Clear(); foreach (var matchingResult in matchingResults) { MatchingResults.Add(new MathingResultDtoWrapper(matchingResult)); } this.RaisePropertyChanged(nameof(Tokens)); this.RaisePropertyChanged(nameof(ParseTree)); this.RaisePropertyChanged(nameof(UstJson)); this.RaisePropertyChanged(nameof(MatchingResultText)); this.RaisePropertyChanged(nameof(SourceCodeErrorsIsVisible)); this.RaisePropertyChanged(nameof(SourceCodeErrorsText)); }); }