fix: disable dialogs before opening automation drawings

This commit is contained in:
codex
2026-08-04 14:40:23 +03:00
parent ea961f2455
commit b3b30b7993
2 changed files with 4 additions and 2 deletions
+3 -2
View File
@@ -23,13 +23,14 @@ public sealed class StartupScriptBuilder : IStartupScriptBuilder
if (!File.Exists(fixture)) throw new InvalidOperationException("AUTOMATION_FIXTURE_NOT_FOUND");
if (!File.Exists(model)) throw new InvalidOperationException("AUTOMATION_SOURCE_MODEL_NOT_FOUND");
var quote = (string value) => "\"" + value.Replace("\"", "\\\"") + "\"";
var dialogFreeOpen = "_.FILEDIA\n0\n_.CMDDIA\n0\n";
var diagnostic = paths.Diagnostic
? "_.FILEDIA\n0\n_.CMDDIA\n0\n_.CMDECHO\n1\n_.NOMUTT\n0\n_.LOGFILEMODE\n1\n"
? "_.CMDECHO\n1\n_.NOMUTT\n0\n_.LOGFILEMODE\n1\n"
: string.Empty;
var commands = paths.Diagnostic
? "PHP_REC_AUTOMATION_BEFORE_PXP_1\nPXP-OA\nPHP_REC_AUTOMATION_AFTER_PXP_1\nPHP_REC_AUTOMATION_BEFORE_PXP_2\nPXP-OA\nPHP_REC_AUTOMATION_AFTER_PXP_2\n"
: "PXP-OA\nPXP-OA\n";
return "_.OPEN\n" + quote(model) + "\n_.OPEN\n" + quote(fixture) + "\n" + diagnostic + BuildNetloadScript(paths.ValidatedPackageRoot, paths.EntryAssembly) +
return dialogFreeOpen + "_.OPEN\n" + quote(model) + "\n_.OPEN\n" + quote(fixture) + "\n" + diagnostic + BuildNetloadScript(paths.ValidatedPackageRoot, paths.EntryAssembly) +
"PHP_REC_AUTOMATION_PREPARE\n" + commands + "PHP_REC_AUTOMATION_FINALIZE\n";
}
}
@@ -68,6 +68,7 @@ public sealed class PathAndLaunchTests
var paths = new ResolvedAutomationScriptPaths(root, entry, fixture, model, Path.Combine(root, "preview.scr"), false);
var first = new StartupScriptBuilder().BuildAutomationScript(paths); var second = new StartupScriptBuilder().BuildAutomationScript(paths);
Assert.Equal(first, second); Assert.EndsWith("\n", first); Assert.Equal(2, System.Text.RegularExpressions.Regex.Matches(first, "PXP-OA").Count);
Assert.True(first.IndexOf("_.FILEDIA\n0", StringComparison.Ordinal) < first.IndexOf("_.OPEN", StringComparison.Ordinal));
Assert.True(first.IndexOf(model, StringComparison.Ordinal) < first.IndexOf(fixture, StringComparison.Ordinal));
Assert.True(first.IndexOf("PHP_REC_AUTOMATION_PREPARE", StringComparison.Ordinal) < first.IndexOf("PXP-OA", StringComparison.Ordinal));
Assert.True(first.LastIndexOf("PXP-OA", StringComparison.Ordinal) < first.IndexOf("PHP_REC_AUTOMATION_FINALIZE", StringComparison.Ordinal));