public void TestIsValidFilename() { string[] validPaths = { @"C:\Test.txt", @"X:\Test\Folder\With\Many\Sub\Folders\test.txt", @"C:\Test,abc.txt" }; string[] invalidPaths = { @"C:\Test<.txt", @"C:\Test>.txt", @"C:\Test?.txt", @"C:\Test*.txt", @"C:\Test|.txt", @"C:\Test"".txt" }; foreach (var p in validPaths) { Assert.IsTrue(_validName.IsValidFilename(p), "Expected '" + p + "' to be a valid path"); } foreach (var p in invalidPaths) { Assert.IsFalse(_validName.IsValidFilename(p), "Expected '" + p + "' to be an invalid path"); } }
public ActionResult Check(ConversionProfile profile, Accounts accounts) { var actionResult = new ActionResult(); if (!profile.Scripting.Enabled) { return(actionResult); } var tokenReplacer = new TokenReplacer(); tokenReplacer.AddToken(new EnvironmentToken()); var validName = new ValidName(); var scriptFile = ComposeScriptPath(profile.Scripting.ScriptFile, tokenReplacer); if (string.IsNullOrEmpty(scriptFile)) { _logger.Error("Missing script file."); actionResult.Add(ErrorCode.Script_NoScriptFileSpecified); return(actionResult); } if (!validName.IsValidFilename(scriptFile)) { _logger.Error("The script file \"" + scriptFile + "\" contains illegal characters."); actionResult.Add(ErrorCode.Script_IllegalCharacters); return(actionResult); } //Skip check for network path if (!scriptFile.StartsWith(@"\\") && !_file.Exists(scriptFile)) { _logger.Error("The script file \"" + scriptFile + "\" does not exist."); actionResult.Add(ErrorCode.Script_FileDoesNotExist); return(actionResult); } return(actionResult); }