Files
Garry Newman d95169d8fa Unit Test Cleanup (#5064)
* Move all unit tests to Engine/Tests
* Fix Margin.EdgeSubtract
* Fix Capsule.Contains
* EnvironmentVariables.Remove if it's null
* Fixed ray trace never returning startedsolid
* Fix HistoryList.Navigate on empty list
* Fix GameObject.WorldPosition accepting NaNs
* Fix flex: initial expanding to the wrong grow/shrink
* Translation.TryConvert shouldn't throw on invalid enum strings
* Skip sound file tests on machines with no audio device
2026-06-12 13:23:50 +01:00

70 lines
1.4 KiB
C#

using Sandbox;
using Sandbox.UI;
namespace SceneTests.UI;
[TestClass]
public class ScenePanelTest
{
[TestMethod]
public void Delete_DestroysOwnedScene()
{
var panel = new ScenePanel();
var ownedScene = panel.RenderScene;
Assert.IsTrue( ownedScene.IsValid() );
panel.Delete();
Assert.IsFalse( ownedScene.IsValid() );
}
[TestMethod]
public void Delete_DoesNotDestroyExternalScene()
{
var panel = new ScenePanel();
var externalScene = new Scene();
panel.RenderScene = externalScene;
panel.Delete();
Assert.IsTrue( externalScene.IsValid() );
externalScene.Destroy();
}
[TestMethod]
public void SetRenderScene_DestroysOwnedSceneWhenReplaced()
{
var panel = new ScenePanel();
var ownedScene = panel.RenderScene;
Assert.IsTrue( ownedScene.IsValid() );
var externalScene = new Scene();
panel.RenderScene = externalScene;
Assert.IsFalse( ownedScene.IsValid() );
Assert.IsTrue( externalScene.IsValid() );
Assert.AreSame( externalScene, panel.RenderScene );
panel.Delete();
externalScene.Destroy();
}
[TestMethod]
public void SetRenderScene_SameInstancePreservesOwnership()
{
var panel = new ScenePanel();
var ownedScene = panel.RenderScene;
// Re-assign the same scene (usually happens on hotload)
panel.RenderScene = ownedScene;
// Ownership should be preserved (so Delete() should destroy it here)
panel.Delete();
Assert.IsFalse( ownedScene.IsValid() );
}
}