A game about forced loneliness, made by TACStudios
1using System;
2using System.Collections;
3using UnityEngine;
4
5namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks
6{
7 internal class PerformUndoTask : TestTaskBase
8 {
9 private const double warningThreshold = 1000;
10
11 internal Action<int> RevertAllDownToGroup = Undo.RevertAllDownToGroup;
12 internal Action<string> LogWarning = Debug.LogWarning;
13 internal Action<string, string, float> DisplayProgressBar = EditorUtility.DisplayProgressBar;
14 internal Action ClearProgressBar = EditorUtility.ClearProgressBar;
15 internal Func<DateTime> TimeNow = () => DateTime.Now;
16
17 public override IEnumerator Execute(TestJobData testJobData)
18 {
19 if (testJobData.undoGroup < 0)
20 {
21 yield break;
22 }
23
24 DisplayProgressBar("Undo", "Reverting changes to the scene", 0);
25
26 var undoStartTime = TimeNow();
27
28 RevertAllDownToGroup(testJobData.undoGroup);
29
30 var timeDelta = TimeNow() - undoStartTime;
31 if (timeDelta.TotalMilliseconds >= warningThreshold)
32 {
33 LogWarning($"Undo after editor test run took {timeDelta.Seconds} second{(timeDelta.Seconds == 1 ? "" : "s")}.");
34 }
35
36 ClearProgressBar();
37 }
38 }
39}