SEBWIN-373: Turns out that it isn't necessary to terminate the Windows shell for kiosk mode Create New Desktop, at least with version 1909. Version 1803 did not allow SEB to set its own working area, now it appears to work even while the Windows shell is running. Amazing.
This commit is contained in:
parent
1dedefaea4
commit
09b7da5eae
2 changed files with 104 additions and 123 deletions
|
@ -63,16 +63,12 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
var getCurrrent = 0;
|
var getCurrrent = 0;
|
||||||
var createNew = 0;
|
var createNew = 0;
|
||||||
var activate = 0;
|
var activate = 0;
|
||||||
var hide = 0;
|
|
||||||
var setStartup = 0;
|
var setStartup = 0;
|
||||||
var terminate = 0;
|
|
||||||
|
|
||||||
nextSettings.Security.KioskMode = KioskMode.CreateNewDesktop;
|
nextSettings.Security.KioskMode = KioskMode.CreateNewDesktop;
|
||||||
|
|
||||||
desktopFactory.Setup(f => f.GetCurrent()).Callback(() => getCurrrent = ++order).Returns(originalDesktop.Object);
|
desktopFactory.Setup(f => f.GetCurrent()).Callback(() => getCurrrent = ++order).Returns(originalDesktop.Object);
|
||||||
desktopFactory.Setup(f => f.CreateNew(It.IsAny<string>())).Callback(() => createNew = ++order).Returns(newDesktop.Object);
|
desktopFactory.Setup(f => f.CreateNew(It.IsAny<string>())).Callback(() => createNew = ++order).Returns(newDesktop.Object);
|
||||||
explorerShell.Setup(s => s.HideAllWindows()).Callback(() => hide = ++order);
|
|
||||||
explorerShell.Setup(s => s.Terminate()).Callback(() => terminate = ++order);
|
|
||||||
newDesktop.Setup(d => d.Activate()).Callback(() => activate = ++order);
|
newDesktop.Setup(d => d.Activate()).Callback(() => activate = ++order);
|
||||||
processFactory.SetupSet(f => f.StartupDesktop = It.IsAny<IDesktop>()).Callback(() => setStartup = ++order);
|
processFactory.SetupSet(f => f.StartupDesktop = It.IsAny<IDesktop>()).Callback(() => setStartup = ++order);
|
||||||
|
|
||||||
|
@ -80,21 +76,16 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
|
|
||||||
desktopFactory.Verify(f => f.GetCurrent(), Times.Once);
|
desktopFactory.Verify(f => f.GetCurrent(), Times.Once);
|
||||||
desktopFactory.Verify(f => f.CreateNew(It.IsAny<string>()), Times.Once);
|
desktopFactory.Verify(f => f.CreateNew(It.IsAny<string>()), Times.Once);
|
||||||
explorerShell.Verify(s => s.Start(), Times.Never);
|
explorerShell.VerifyNoOtherCalls();
|
||||||
explorerShell.Verify(s => s.Terminate(), Times.Once);
|
|
||||||
explorerShell.Verify(s => s.HideAllWindows(), Times.Once);
|
|
||||||
explorerShell.Verify(s => s.RestoreAllWindows(), Times.Never);
|
|
||||||
newDesktop.Verify(d => d.Activate(), Times.Once);
|
newDesktop.Verify(d => d.Activate(), Times.Once);
|
||||||
processFactory.VerifySet(f => f.StartupDesktop = newDesktop.Object, Times.Once);
|
processFactory.VerifySet(f => f.StartupDesktop = newDesktop.Object, Times.Once);
|
||||||
|
|
||||||
Assert.AreEqual(OperationResult.Success, result);
|
Assert.AreEqual(OperationResult.Success, result);
|
||||||
|
|
||||||
Assert.AreEqual(1, hide);
|
Assert.AreEqual(1, getCurrrent);
|
||||||
Assert.AreEqual(2, terminate);
|
Assert.AreEqual(2, createNew);
|
||||||
Assert.AreEqual(3, getCurrrent);
|
Assert.AreEqual(3, activate);
|
||||||
Assert.AreEqual(4, createNew);
|
Assert.AreEqual(4, setStartup);
|
||||||
Assert.AreEqual(5, activate);
|
|
||||||
Assert.AreEqual(6, setStartup);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
|
@ -110,6 +101,7 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
|
|
||||||
explorerShell.Verify(s => s.HideAllWindows(), Times.Once);
|
explorerShell.Verify(s => s.HideAllWindows(), Times.Once);
|
||||||
explorerShell.Verify(s => s.Terminate(), Times.Once);
|
explorerShell.Verify(s => s.Terminate(), Times.Once);
|
||||||
|
explorerShell.VerifyNoOtherCalls();
|
||||||
|
|
||||||
Assert.AreEqual(OperationResult.Success, result);
|
Assert.AreEqual(OperationResult.Success, result);
|
||||||
}
|
}
|
||||||
|
@ -122,7 +114,9 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
var order = 0;
|
var order = 0;
|
||||||
var activate = 0;
|
var activate = 0;
|
||||||
var close = 0;
|
var close = 0;
|
||||||
var startup = 0;
|
var hide = 0;
|
||||||
|
var startupDesktop = 0;
|
||||||
|
var terminate = 0;
|
||||||
|
|
||||||
desktopFactory.Setup(f => f.GetCurrent()).Returns(originalDesktop.Object);
|
desktopFactory.Setup(f => f.GetCurrent()).Returns(originalDesktop.Object);
|
||||||
desktopFactory.Setup(f => f.CreateNew(It.IsAny<string>())).Returns(newDesktop.Object);
|
desktopFactory.Setup(f => f.CreateNew(It.IsAny<string>())).Returns(newDesktop.Object);
|
||||||
|
@ -132,17 +126,21 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
|
|
||||||
desktopFactory.Reset();
|
desktopFactory.Reset();
|
||||||
explorerShell.Reset();
|
explorerShell.Reset();
|
||||||
|
explorerShell.Setup(s => s.HideAllWindows()).Callback(() => hide = ++order);
|
||||||
|
explorerShell.Setup(s => s.Terminate()).Callback(() => terminate = ++order);
|
||||||
newDesktop.Reset();
|
newDesktop.Reset();
|
||||||
newDesktop.Setup(d => d.Close()).Callback(() => close = ++order);
|
newDesktop.Setup(d => d.Close()).Callback(() => close = ++order);
|
||||||
originalDesktop.Reset();
|
originalDesktop.Reset();
|
||||||
originalDesktop.Setup(d => d.Activate()).Callback(() => activate = ++order);
|
originalDesktop.Setup(d => d.Activate()).Callback(() => activate = ++order);
|
||||||
processFactory.Reset();
|
processFactory.Reset();
|
||||||
processFactory.SetupSet(f => f.StartupDesktop = It.Is<IDesktop>(d => d == originalDesktop.Object)).Callback(() => startup = ++order);
|
processFactory.SetupSet(f => f.StartupDesktop = It.Is<IDesktop>(d => d == originalDesktop.Object)).Callback(() => startupDesktop = ++order);
|
||||||
nextSettings.Security.KioskMode = KioskMode.DisableExplorerShell;
|
nextSettings.Security.KioskMode = KioskMode.DisableExplorerShell;
|
||||||
|
|
||||||
var result = sut.Repeat();
|
var result = sut.Repeat();
|
||||||
|
|
||||||
desktopFactory.VerifyNoOtherCalls();
|
desktopFactory.VerifyNoOtherCalls();
|
||||||
|
explorerShell.Verify(s => s.HideAllWindows(), Times.Once);
|
||||||
|
explorerShell.Verify(s => s.Terminate(), Times.Once);
|
||||||
explorerShell.VerifyNoOtherCalls();
|
explorerShell.VerifyNoOtherCalls();
|
||||||
newDesktop.Verify(d => d.Close(), Times.Once);
|
newDesktop.Verify(d => d.Close(), Times.Once);
|
||||||
originalDesktop.Verify(d => d.Activate(), Times.Once);
|
originalDesktop.Verify(d => d.Activate(), Times.Once);
|
||||||
|
@ -150,8 +148,10 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
|
|
||||||
Assert.AreEqual(OperationResult.Success, result);
|
Assert.AreEqual(OperationResult.Success, result);
|
||||||
Assert.AreEqual(1, activate);
|
Assert.AreEqual(1, activate);
|
||||||
Assert.AreEqual(2, startup);
|
Assert.AreEqual(2, startupDesktop);
|
||||||
Assert.AreEqual(3, close);
|
Assert.AreEqual(3, close);
|
||||||
|
Assert.AreEqual(4, hide);
|
||||||
|
Assert.AreEqual(5, terminate);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
|
@ -162,8 +162,6 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
var order = 0;
|
var order = 0;
|
||||||
var activate = 0;
|
var activate = 0;
|
||||||
var close = 0;
|
var close = 0;
|
||||||
var restore = 0;
|
|
||||||
var start = 0;
|
|
||||||
var startupDesktop = 0;
|
var startupDesktop = 0;
|
||||||
|
|
||||||
desktopFactory.Setup(f => f.GetCurrent()).Returns(originalDesktop.Object);
|
desktopFactory.Setup(f => f.GetCurrent()).Returns(originalDesktop.Object);
|
||||||
|
@ -174,8 +172,6 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
|
|
||||||
desktopFactory.Reset();
|
desktopFactory.Reset();
|
||||||
explorerShell.Reset();
|
explorerShell.Reset();
|
||||||
explorerShell.Setup(s => s.RestoreAllWindows()).Callback(() => restore = ++order);
|
|
||||||
explorerShell.Setup(s => s.Start()).Callback(() => start = ++order);
|
|
||||||
newDesktop.Reset();
|
newDesktop.Reset();
|
||||||
newDesktop.Setup(d => d.Close()).Callback(() => close = ++order);
|
newDesktop.Setup(d => d.Close()).Callback(() => close = ++order);
|
||||||
originalDesktop.Reset();
|
originalDesktop.Reset();
|
||||||
|
@ -187,8 +183,7 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
var result = sut.Repeat();
|
var result = sut.Repeat();
|
||||||
|
|
||||||
desktopFactory.VerifyNoOtherCalls();
|
desktopFactory.VerifyNoOtherCalls();
|
||||||
explorerShell.Verify(s => s.RestoreAllWindows(), Times.Once);
|
explorerShell.VerifyNoOtherCalls();
|
||||||
explorerShell.Verify(s => s.Start(), Times.Once);
|
|
||||||
newDesktop.Verify(d => d.Close(), Times.Once);
|
newDesktop.Verify(d => d.Close(), Times.Once);
|
||||||
originalDesktop.Verify(d => d.Activate(), Times.Once);
|
originalDesktop.Verify(d => d.Activate(), Times.Once);
|
||||||
processFactory.VerifySet(f => f.StartupDesktop = It.Is<IDesktop>(d => d == originalDesktop.Object), Times.Once);
|
processFactory.VerifySet(f => f.StartupDesktop = It.Is<IDesktop>(d => d == originalDesktop.Object), Times.Once);
|
||||||
|
@ -197,8 +192,6 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
Assert.AreEqual(1, activate);
|
Assert.AreEqual(1, activate);
|
||||||
Assert.AreEqual(2, startupDesktop);
|
Assert.AreEqual(2, startupDesktop);
|
||||||
Assert.AreEqual(3, close);
|
Assert.AreEqual(3, close);
|
||||||
Assert.AreEqual(4, start);
|
|
||||||
Assert.AreEqual(5, restore);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
|
@ -209,12 +202,90 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
var order = 0;
|
var order = 0;
|
||||||
var activate = 0;
|
var activate = 0;
|
||||||
var current = 0;
|
var current = 0;
|
||||||
var startup = 0;
|
var restore = 0;
|
||||||
|
var start = 0;
|
||||||
|
var startupDesktop = 0;
|
||||||
|
|
||||||
nextSettings.Security.KioskMode = KioskMode.DisableExplorerShell;
|
nextSettings.Security.KioskMode = KioskMode.DisableExplorerShell;
|
||||||
|
|
||||||
sut.Perform();
|
sut.Perform();
|
||||||
|
|
||||||
|
desktopFactory.Reset();
|
||||||
|
desktopFactory.Setup(f => f.GetCurrent()).Returns(originalDesktop.Object).Callback(() => current = ++order);
|
||||||
|
desktopFactory.Setup(f => f.CreateNew(It.IsAny<string>())).Returns(newDesktop.Object);
|
||||||
|
explorerShell.Reset();
|
||||||
|
explorerShell.Setup(s => s.RestoreAllWindows()).Callback(() => restore = ++order);
|
||||||
|
explorerShell.Setup(s => s.Start()).Callback(() => start = ++order);
|
||||||
|
newDesktop.Reset();
|
||||||
|
newDesktop.Setup(d => d.Activate()).Callback(() => activate = ++order);
|
||||||
|
originalDesktop.Reset();
|
||||||
|
processFactory.Reset();
|
||||||
|
processFactory.SetupSet(f => f.StartupDesktop = It.Is<IDesktop>(d => d == newDesktop.Object)).Callback(() => startupDesktop = ++order);
|
||||||
|
nextSettings.Security.KioskMode = KioskMode.CreateNewDesktop;
|
||||||
|
|
||||||
|
var result = sut.Repeat();
|
||||||
|
|
||||||
|
desktopFactory.Verify(f => f.GetCurrent(), Times.Once);
|
||||||
|
desktopFactory.Verify(f => f.CreateNew(It.IsAny<string>()), Times.Once);
|
||||||
|
explorerShell.Verify(s => s.RestoreAllWindows(), Times.Once);
|
||||||
|
explorerShell.Verify(s => s.Start(), Times.Once);
|
||||||
|
explorerShell.VerifyNoOtherCalls();
|
||||||
|
newDesktop.Verify(d => d.Activate(), Times.Once);
|
||||||
|
originalDesktop.VerifyNoOtherCalls();
|
||||||
|
processFactory.VerifySet(f => f.StartupDesktop = It.Is<IDesktop>(d => d == newDesktop.Object), Times.Once);
|
||||||
|
|
||||||
|
Assert.AreEqual(OperationResult.Success, result);
|
||||||
|
Assert.AreEqual(1, start);
|
||||||
|
Assert.AreEqual(2, restore);
|
||||||
|
Assert.AreEqual(3, current);
|
||||||
|
Assert.AreEqual(4, activate);
|
||||||
|
Assert.AreEqual(5, startupDesktop);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void Repeat_MustCorrectlySwitchFromDisableExplorerShellToNone()
|
||||||
|
{
|
||||||
|
var order = 0;
|
||||||
|
var restore = 0;
|
||||||
|
var start = 0;
|
||||||
|
|
||||||
|
nextSettings.Security.KioskMode = KioskMode.DisableExplorerShell;
|
||||||
|
|
||||||
|
sut.Perform();
|
||||||
|
|
||||||
|
explorerShell.Reset();
|
||||||
|
explorerShell.Setup(s => s.RestoreAllWindows()).Callback(() => restore = ++order);
|
||||||
|
explorerShell.Setup(s => s.Start()).Callback(() => start = ++order);
|
||||||
|
processFactory.Reset();
|
||||||
|
nextSettings.Security.KioskMode = KioskMode.None;
|
||||||
|
|
||||||
|
var result = sut.Repeat();
|
||||||
|
|
||||||
|
desktopFactory.VerifyNoOtherCalls();
|
||||||
|
explorerShell.Verify(s => s.RestoreAllWindows(), Times.Once);
|
||||||
|
explorerShell.Verify(s => s.Start(), Times.Once);
|
||||||
|
explorerShell.VerifyNoOtherCalls();
|
||||||
|
processFactory.VerifySet(f => f.StartupDesktop = It.IsAny<IDesktop>(), Times.Never);
|
||||||
|
|
||||||
|
Assert.AreEqual(OperationResult.Success, result);
|
||||||
|
Assert.AreEqual(1, start);
|
||||||
|
Assert.AreEqual(2, restore);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void Repeat_MustCorrectlySwitchFromNoneToCreateNewDesktop()
|
||||||
|
{
|
||||||
|
var newDesktop = new Mock<IDesktop>();
|
||||||
|
var originalDesktop = new Mock<IDesktop>();
|
||||||
|
var order = 0;
|
||||||
|
var activate = 0;
|
||||||
|
var current = 0;
|
||||||
|
var startup = 0;
|
||||||
|
|
||||||
|
nextSettings.Security.KioskMode = KioskMode.None;
|
||||||
|
|
||||||
|
sut.Perform();
|
||||||
|
|
||||||
desktopFactory.Reset();
|
desktopFactory.Reset();
|
||||||
desktopFactory.Setup(f => f.GetCurrent()).Returns(originalDesktop.Object).Callback(() => current = ++order);
|
desktopFactory.Setup(f => f.GetCurrent()).Returns(originalDesktop.Object).Callback(() => current = ++order);
|
||||||
desktopFactory.Setup(f => f.CreateNew(It.IsAny<string>())).Returns(newDesktop.Object);
|
desktopFactory.Setup(f => f.CreateNew(It.IsAny<string>())).Returns(newDesktop.Object);
|
||||||
|
@ -241,82 +312,6 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
Assert.AreEqual(3, startup);
|
Assert.AreEqual(3, startup);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
|
||||||
public void Repeat_MustCorrectlySwitchFromDisableExplorerShellToNone()
|
|
||||||
{
|
|
||||||
var order = 0;
|
|
||||||
var restore = 0;
|
|
||||||
var start = 0;
|
|
||||||
|
|
||||||
nextSettings.Security.KioskMode = KioskMode.DisableExplorerShell;
|
|
||||||
|
|
||||||
sut.Perform();
|
|
||||||
|
|
||||||
explorerShell.Reset();
|
|
||||||
explorerShell.Setup(s => s.RestoreAllWindows()).Callback(() => restore = ++order);
|
|
||||||
explorerShell.Setup(s => s.Start()).Callback(() => start = ++order);
|
|
||||||
processFactory.Reset();
|
|
||||||
nextSettings.Security.KioskMode = KioskMode.None;
|
|
||||||
|
|
||||||
var result = sut.Repeat();
|
|
||||||
|
|
||||||
desktopFactory.VerifyNoOtherCalls();
|
|
||||||
explorerShell.Verify(s => s.RestoreAllWindows(), Times.Once);
|
|
||||||
explorerShell.Verify(s => s.Start(), Times.Once);
|
|
||||||
processFactory.VerifySet(f => f.StartupDesktop = It.IsAny<IDesktop>(), Times.Never);
|
|
||||||
|
|
||||||
Assert.AreEqual(OperationResult.Success, result);
|
|
||||||
Assert.AreEqual(1, start);
|
|
||||||
Assert.AreEqual(2, restore);
|
|
||||||
}
|
|
||||||
|
|
||||||
[TestMethod]
|
|
||||||
public void Repeat_MustCorrectlySwitchFromNoneToCreateNewDesktop()
|
|
||||||
{
|
|
||||||
var newDesktop = new Mock<IDesktop>();
|
|
||||||
var originalDesktop = new Mock<IDesktop>();
|
|
||||||
var order = 0;
|
|
||||||
var activate = 0;
|
|
||||||
var current = 0;
|
|
||||||
var hide = 0;
|
|
||||||
var startup = 0;
|
|
||||||
var terminate = 0;
|
|
||||||
|
|
||||||
nextSettings.Security.KioskMode = KioskMode.None;
|
|
||||||
|
|
||||||
sut.Perform();
|
|
||||||
|
|
||||||
desktopFactory.Reset();
|
|
||||||
desktopFactory.Setup(f => f.GetCurrent()).Returns(originalDesktop.Object).Callback(() => current = ++order);
|
|
||||||
desktopFactory.Setup(f => f.CreateNew(It.IsAny<string>())).Returns(newDesktop.Object);
|
|
||||||
explorerShell.Reset();
|
|
||||||
explorerShell.Setup(s => s.HideAllWindows()).Callback(() => hide = ++order);
|
|
||||||
explorerShell.Setup(s => s.Terminate()).Callback(() => terminate = ++order);
|
|
||||||
newDesktop.Reset();
|
|
||||||
newDesktop.Setup(d => d.Activate()).Callback(() => activate = ++order);
|
|
||||||
originalDesktop.Reset();
|
|
||||||
processFactory.Reset();
|
|
||||||
processFactory.SetupSet(f => f.StartupDesktop = It.Is<IDesktop>(d => d == newDesktop.Object)).Callback(() => startup = ++order);
|
|
||||||
nextSettings.Security.KioskMode = KioskMode.CreateNewDesktop;
|
|
||||||
|
|
||||||
var result = sut.Repeat();
|
|
||||||
|
|
||||||
desktopFactory.Verify(f => f.GetCurrent(), Times.Once);
|
|
||||||
desktopFactory.Verify(f => f.CreateNew(It.IsAny<string>()), Times.Once);
|
|
||||||
explorerShell.Verify(s => s.HideAllWindows(), Times.Once);
|
|
||||||
explorerShell.Verify(s => s.Terminate(), Times.Once);
|
|
||||||
newDesktop.Verify(d => d.Activate(), Times.Once);
|
|
||||||
originalDesktop.VerifyNoOtherCalls();
|
|
||||||
processFactory.VerifySet(f => f.StartupDesktop = It.Is<IDesktop>(d => d == newDesktop.Object), Times.Once);
|
|
||||||
|
|
||||||
Assert.AreEqual(OperationResult.Success, result);
|
|
||||||
Assert.AreEqual(1, hide);
|
|
||||||
Assert.AreEqual(2, terminate);
|
|
||||||
Assert.AreEqual(3, current);
|
|
||||||
Assert.AreEqual(4, activate);
|
|
||||||
Assert.AreEqual(5, startup);
|
|
||||||
}
|
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void Repeat_MustCorrectlySwitchFromNoneToDisableExplorerShell()
|
public void Repeat_MustCorrectlySwitchFromNoneToDisableExplorerShell()
|
||||||
{
|
{
|
||||||
|
@ -371,13 +366,10 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
|
|
||||||
desktopFactory.Verify(f => f.GetCurrent(), Times.Once);
|
desktopFactory.Verify(f => f.GetCurrent(), Times.Once);
|
||||||
desktopFactory.Verify(f => f.CreateNew(It.IsAny<string>()), Times.Once);
|
desktopFactory.Verify(f => f.CreateNew(It.IsAny<string>()), Times.Once);
|
||||||
|
explorerShell.VerifyNoOtherCalls();
|
||||||
newDesktop.Verify(d => d.Activate(), Times.Once);
|
newDesktop.Verify(d => d.Activate(), Times.Once);
|
||||||
newDesktop.Verify(d => d.Close(), Times.Never);
|
newDesktop.Verify(d => d.Close(), Times.Never);
|
||||||
processFactory.VerifySet(f => f.StartupDesktop = newDesktop.Object, Times.Once);
|
processFactory.VerifySet(f => f.StartupDesktop = newDesktop.Object, Times.Once);
|
||||||
explorerShell.Verify(s => s.Start(), Times.Never);
|
|
||||||
explorerShell.Verify(s => s.Terminate(), Times.Once);
|
|
||||||
explorerShell.Verify(s => s.HideAllWindows(), Times.Once);
|
|
||||||
explorerShell.Verify(s => s.RestoreAllWindows(), Times.Never);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
|
@ -410,10 +402,8 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
var originalDesktop = new Mock<IDesktop>();
|
var originalDesktop = new Mock<IDesktop>();
|
||||||
var order = 0;
|
var order = 0;
|
||||||
var activate = 0;
|
var activate = 0;
|
||||||
var restore = 0;
|
|
||||||
var setStartup = 0;
|
var setStartup = 0;
|
||||||
var close = 0;
|
var close = 0;
|
||||||
var start = 0;
|
|
||||||
|
|
||||||
currentSettings.Security.KioskMode = KioskMode.CreateNewDesktop;
|
currentSettings.Security.KioskMode = KioskMode.CreateNewDesktop;
|
||||||
nextSettings.Security.KioskMode = KioskMode.CreateNewDesktop;
|
nextSettings.Security.KioskMode = KioskMode.CreateNewDesktop;
|
||||||
|
@ -425,33 +415,26 @@ namespace SafeExamBrowser.Runtime.UnitTests.Operations
|
||||||
Assert.AreEqual(OperationResult.Success, performResult);
|
Assert.AreEqual(OperationResult.Success, performResult);
|
||||||
|
|
||||||
desktopFactory.Reset();
|
desktopFactory.Reset();
|
||||||
|
explorerShell.Reset();
|
||||||
originalDesktop.Reset();
|
originalDesktop.Reset();
|
||||||
originalDesktop.Setup(d => d.Activate()).Callback(() => activate = ++order);
|
originalDesktop.Setup(d => d.Activate()).Callback(() => activate = ++order);
|
||||||
processFactory.SetupSet(f => f.StartupDesktop = It.Is<IDesktop>(d => d == originalDesktop.Object)).Callback(() => setStartup = ++order);
|
processFactory.SetupSet(f => f.StartupDesktop = It.Is<IDesktop>(d => d == originalDesktop.Object)).Callback(() => setStartup = ++order);
|
||||||
newDesktop.Reset();
|
newDesktop.Reset();
|
||||||
newDesktop.Setup(d => d.Close()).Callback(() => close = ++order);
|
newDesktop.Setup(d => d.Close()).Callback(() => close = ++order);
|
||||||
explorerShell.Reset();
|
|
||||||
explorerShell.Setup(s => s.Start()).Callback(() => start = ++order);
|
|
||||||
explorerShell.Setup(s => s.RestoreAllWindows()).Callback(() => restore = ++order);
|
|
||||||
|
|
||||||
var revertResult = sut.Revert();
|
var revertResult = sut.Revert();
|
||||||
|
|
||||||
desktopFactory.VerifyNoOtherCalls();
|
desktopFactory.VerifyNoOtherCalls();
|
||||||
|
explorerShell.VerifyNoOtherCalls();
|
||||||
originalDesktop.Verify(d => d.Activate(), Times.Once);
|
originalDesktop.Verify(d => d.Activate(), Times.Once);
|
||||||
processFactory.VerifySet(f => f.StartupDesktop = originalDesktop.Object, Times.Once);
|
processFactory.VerifySet(f => f.StartupDesktop = originalDesktop.Object, Times.Once);
|
||||||
newDesktop.Verify(d => d.Close(), Times.Once);
|
newDesktop.Verify(d => d.Close(), Times.Once);
|
||||||
explorerShell.Verify(s => s.Start(), Times.Once);
|
|
||||||
explorerShell.Verify(s => s.Terminate(), Times.Never);
|
|
||||||
explorerShell.Verify(s => s.HideAllWindows(), Times.Never);
|
|
||||||
explorerShell.Verify(s => s.RestoreAllWindows(), Times.Once);
|
|
||||||
|
|
||||||
Assert.AreEqual(OperationResult.Success, performResult);
|
Assert.AreEqual(OperationResult.Success, performResult);
|
||||||
Assert.AreEqual(OperationResult.Success, revertResult);
|
Assert.AreEqual(OperationResult.Success, revertResult);
|
||||||
Assert.AreEqual(1, activate);
|
Assert.AreEqual(1, activate);
|
||||||
Assert.AreEqual(2, setStartup);
|
Assert.AreEqual(2, setStartup);
|
||||||
Assert.AreEqual(3, close);
|
Assert.AreEqual(3, close);
|
||||||
Assert.AreEqual(4, start);
|
|
||||||
Assert.AreEqual(5, restore);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
|
|
|
@ -51,7 +51,6 @@ namespace SafeExamBrowser.Runtime.Operations
|
||||||
switch (Context.Next.Settings.Security.KioskMode)
|
switch (Context.Next.Settings.Security.KioskMode)
|
||||||
{
|
{
|
||||||
case KioskMode.CreateNewDesktop:
|
case KioskMode.CreateNewDesktop:
|
||||||
TerminateExplorerShell();
|
|
||||||
CreateNewDesktop();
|
CreateNewDesktop();
|
||||||
break;
|
break;
|
||||||
case KioskMode.DisableExplorerShell:
|
case KioskMode.DisableExplorerShell:
|
||||||
|
@ -80,8 +79,8 @@ namespace SafeExamBrowser.Runtime.Operations
|
||||||
case KioskMode.CreateNewDesktop:
|
case KioskMode.CreateNewDesktop:
|
||||||
CloseNewDesktop();
|
CloseNewDesktop();
|
||||||
break;
|
break;
|
||||||
case KioskMode.None:
|
case KioskMode.DisableExplorerShell:
|
||||||
TerminateExplorerShell();
|
RestartExplorerShell();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,8 +91,8 @@ namespace SafeExamBrowser.Runtime.Operations
|
||||||
case KioskMode.CreateNewDesktop:
|
case KioskMode.CreateNewDesktop:
|
||||||
CreateNewDesktop();
|
CreateNewDesktop();
|
||||||
break;
|
break;
|
||||||
case KioskMode.None:
|
case KioskMode.DisableExplorerShell:
|
||||||
RestartExplorerShell();
|
TerminateExplorerShell();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,7 +109,6 @@ namespace SafeExamBrowser.Runtime.Operations
|
||||||
{
|
{
|
||||||
case KioskMode.CreateNewDesktop:
|
case KioskMode.CreateNewDesktop:
|
||||||
CloseNewDesktop();
|
CloseNewDesktop();
|
||||||
RestartExplorerShell();
|
|
||||||
break;
|
break;
|
||||||
case KioskMode.DisableExplorerShell:
|
case KioskMode.DisableExplorerShell:
|
||||||
RestartExplorerShell();
|
RestartExplorerShell();
|
||||||
|
|
Loading…
Reference in a new issue