コード例 #1
0
        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");
            }
        }
コード例 #2
0
        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);
        }