public void RecursiveSearchMatch() { var config = ScriptableObject.CreateInstance <ProjectAuditorConfig>(); config.AnalyzeEditorCode = false; var projectAuditor = new Unity.ProjectAuditor.Editor.ProjectAuditor(config); var projectReport = projectAuditor.Audit(); var issues = projectReport.GetIssues(IssueCategory.Code); var stringFilter = new TextFilter { matchCase = true, searchDependencies = false, searchText = "WrapperClass" }; var filteredIssues = issues.Where(i => stringFilter.Match(i)); Assert.AreEqual(0, filteredIssues.Count()); // try again looking into dependencies too stringFilter.searchDependencies = true; filteredIssues = issues.Where(i => stringFilter.Match(i)); Assert.AreEqual(1, filteredIssues.Count()); }
public void CaseSensitiveMatch() { var projectAuditor = new Unity.ProjectAuditor.Editor.ProjectAuditor(); // disabling stripEngineCode will be reported as an issue PlayerSettings.stripEngineCode = false; var projectReport = projectAuditor.Audit(); var issues = projectReport.GetIssues(IssueCategory.ProjectSettings); var stringFilter = new TextFilter { matchCase = true, searchDependencies = false, searchText = "Engine Code Stripping" }; var filteredIssues = issues.Where(i => stringFilter.Match(i)); Assert.AreEqual(1, filteredIssues.Count()); stringFilter.searchText = "engine code stripping"; filteredIssues = issues.Where(i => stringFilter.Match(i)); Assert.AreEqual(0, filteredIssues.Count()); }
public bool Match(ProjectIssue issue) { // return false if the issue does not match one of these criteria: // - assembly name, if applicable // - area // - is not muted, if enabled // - critical context, if enabled/applicable Profiler.BeginSample("MatchAssembly"); var matchAssembly = !activeView.desc.showAssemblySelection || m_AssemblySelection != null && (m_AssemblySelection.Contains(issue.GetCustomProperty((int)CodeProperty.Assembly)) || m_AssemblySelection.ContainsGroup("All")); Profiler.EndSample(); if (!matchAssembly) { return(false); } Profiler.BeginSample("MatchArea"); var matchArea = !activeView.desc.showAreaSelection || m_AreaSelection.ContainsAny(issue.descriptor.area.Split('|')) || m_AreaSelection.ContainsGroup("All"); Profiler.EndSample(); if (!matchArea) { return(false); } if (!m_Preferences.mutedIssues && activeView.desc.showMuteOptions) { Profiler.BeginSample("IsMuted"); var muted = m_ProjectAuditor.config.GetAction(issue.descriptor, issue.GetCallingMethod()) == Rule.Severity.None; Profiler.EndSample(); if (muted) { return(false); } } if (activeView.desc.showCritical && m_Preferences.onlyCriticalIssues && !issue.isPerfCriticalContext) { return(false); } return(m_TextFilter.Match(issue)); }
private void ApplyFunctionFilter() { if (_activeFunctions == null) { return; } var filter = new TextFilter(c_functionFilter.Text); foreach (var func in _activeFunctions) { func.Visible = filter.Match(func.Name); } }
public void CaseInsensitiveMatch() { // disabling stripEngineCode will be reported as an issue PlayerSettings.stripEngineCode = false; var issues = Utility.Analyze(IssueCategory.ProjectSettings); var stringFilter = new TextFilter { matchCase = false, searchDependencies = false, searchText = "engine code stripping" }; var filteredIssues = issues.Where(i => stringFilter.Match(i)); Assert.AreEqual(1, filteredIssues.Count()); }
public void FilenameMatch() { var projectAuditor = new Unity.ProjectAuditor.Editor.ProjectAuditor(); var projectReport = projectAuditor.Audit(); var issues = projectReport.GetIssues(IssueCategory.Code); var stringFilter = new TextFilter { matchCase = false, searchDependencies = false, searchText = "FilterTests.cs" }; var filteredIssues = issues.Where(i => stringFilter.Match(i)); Assert.AreEqual(1, filteredIssues.Count()); }
public void EmptyStringMatchesAllIssues() { // disabling stripEngineCode will be reported as an issue PlayerSettings.stripEngineCode = false; var stringFilter = new TextFilter { matchCase = true, searchDependencies = false, searchText = string.Empty }; var issues = Utility.Analyze(IssueCategory.ProjectSettings); var filteredIssues = issues.Where(i => stringFilter.Match(i)); Assert.AreEqual(issues.Length, filteredIssues.Count()); }
private void UpdateForFileFilter() { var filterText = c_fileFilterTextBox.Text; if (string.IsNullOrWhiteSpace(filterText)) { // Display the tree c_fileTree.Visibility = System.Windows.Visibility.Visible; c_fileList.Visibility = System.Windows.Visibility.Hidden; } else { // Display the filtered list c_fileList.Items.Clear(); var numItems = 0; var hiddenExt = GetHiddenExtensions(); var appSettings = ProbeEnvironment.CurrentAppSettings; var filter = new TextFilter(filterText); foreach (var file in appSettings.SourceAndIncludeFiles) { if (hiddenExt.Contains(System.IO.Path.GetExtension(file).ToLower())) { continue; } if (filter.Match(System.IO.Path.GetFileName(file))) { if (numItems >= Constants.FileListMaxItems) { c_fileList.Items.Add(CreateFileListOverflowItem()); break; } c_fileList.Items.Add(CreateFileListItem(file)); numItems++; } } c_fileTree.Visibility = System.Windows.Visibility.Hidden; c_fileList.Visibility = System.Windows.Visibility.Visible; } }
public void FilenameMatch() { var config = ScriptableObject.CreateInstance <ProjectAuditorConfig>(); config.AnalyzeEditorCode = false; var projectAuditor = new Unity.ProjectAuditor.Editor.ProjectAuditor(config); var projectReport = projectAuditor.Audit(); var issues = projectReport.GetIssues(IssueCategory.Code); var stringFilter = new TextFilter { matchCase = false, searchDependencies = false, searchText = "FilterTests.cs" }; var filteredIssues = issues.Where(i => stringFilter.Match(i)); Assert.AreEqual(1, filteredIssues.Count()); }