mirror of
https://github.com/Facepunch/sbox-public.git
synced 2026-08-01 00:08:05 -04:00
* 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
70 lines
1.4 KiB
C#
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() );
|
|
}
|
|
}
|