SEBWIN-307: Implemented configuration to enable / disable the browser application.
This commit is contained in:
parent
5e131289b0
commit
61f369a9a3
7 changed files with 82 additions and 12 deletions
|
@ -888,6 +888,7 @@ namespace SafeExamBrowser.Client.UnitTests
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void Startup_MustAutoStartBrowser()
|
public void Startup_MustAutoStartBrowser()
|
||||||
{
|
{
|
||||||
|
settings.Browser.EnableBrowser = true;
|
||||||
browser.SetupGet(b => b.AutoStart).Returns(true);
|
browser.SetupGet(b => b.AutoStart).Returns(true);
|
||||||
|
|
||||||
sut.TryStart();
|
sut.TryStart();
|
||||||
|
@ -901,6 +902,17 @@ namespace SafeExamBrowser.Client.UnitTests
|
||||||
browser.Verify(b => b.Start(), Times.Never);
|
browser.Verify(b => b.Start(), Times.Never);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void Startup_MustNotAutoStartBrowserIfNotEnabled()
|
||||||
|
{
|
||||||
|
settings.Browser.EnableBrowser = false;
|
||||||
|
browser.SetupGet(b => b.AutoStart).Returns(true);
|
||||||
|
|
||||||
|
sut.TryStart();
|
||||||
|
|
||||||
|
browser.Verify(b => b.Start(), Times.Never);
|
||||||
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void TerminationActivator_MustCorrectlyInitiateShutdown()
|
public void TerminationActivator_MustCorrectlyInitiateShutdown()
|
||||||
{
|
{
|
||||||
|
|
|
@ -53,16 +53,34 @@ namespace SafeExamBrowser.Client.UnitTests.Operations
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void Perform_MustInitializeBrowserAndTaskview()
|
public void Perform_MustInitializeBrowserAndTaskview()
|
||||||
{
|
{
|
||||||
|
settings.Browser.EnableBrowser = true;
|
||||||
|
|
||||||
sut.Perform();
|
sut.Perform();
|
||||||
|
|
||||||
browser.Verify(c => c.Initialize(), Times.Once);
|
browser.Verify(c => c.Initialize(), Times.Once);
|
||||||
taskview.Verify(t => t.Add(It.Is<IApplication>(a => a == context.Browser)));
|
taskview.Verify(t => t.Add(It.Is<IApplication>(a => a == context.Browser)), Times.Once);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void Perform_MustNotInitializeBrowserIfNotEnabled()
|
||||||
|
{
|
||||||
|
settings.ActionCenter.EnableActionCenter = true;
|
||||||
|
settings.Browser.EnableBrowser = false;
|
||||||
|
settings.Taskbar.EnableTaskbar = true;
|
||||||
|
|
||||||
|
sut.Perform();
|
||||||
|
|
||||||
|
actionCenter.Verify(a => a.AddApplicationControl(It.IsAny<IApplicationControl>(), true), Times.Never);
|
||||||
|
browser.Verify(c => c.Initialize(), Times.Never);
|
||||||
|
taskbar.Verify(t => t.AddApplicationControl(It.IsAny<IApplicationControl>(), true), Times.Never);
|
||||||
|
taskview.Verify(t => t.Add(It.Is<IApplication>(a => a == context.Browser)), Times.Never);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void Perform_MustCorrectlyInitializeControls()
|
public void Perform_MustCorrectlyInitializeControls()
|
||||||
{
|
{
|
||||||
settings.ActionCenter.EnableActionCenter = false;
|
settings.ActionCenter.EnableActionCenter = false;
|
||||||
|
settings.Browser.EnableBrowser = true;
|
||||||
settings.Taskbar.EnableTaskbar = false;
|
settings.Taskbar.EnableTaskbar = false;
|
||||||
|
|
||||||
sut.Perform();
|
sut.Perform();
|
||||||
|
@ -82,8 +100,17 @@ namespace SafeExamBrowser.Client.UnitTests.Operations
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void Revert_MustTerminateBrowser()
|
public void Revert_MustTerminateBrowser()
|
||||||
{
|
{
|
||||||
|
settings.Browser.EnableBrowser = true;
|
||||||
sut.Revert();
|
sut.Revert();
|
||||||
browser.Verify(c => c.Terminate(), Times.Once);
|
browser.Verify(c => c.Terminate(), Times.Once);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void Revert_MustNotTerminateBrowserIfNotEnabled()
|
||||||
|
{
|
||||||
|
settings.Browser.EnableBrowser = false;
|
||||||
|
sut.Revert();
|
||||||
|
browser.Verify(c => c.Terminate(), Times.Never);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -242,7 +242,7 @@ namespace SafeExamBrowser.Client
|
||||||
|
|
||||||
private void AutoStartApplications()
|
private void AutoStartApplications()
|
||||||
{
|
{
|
||||||
if (Browser.AutoStart)
|
if (Settings.Browser.EnableBrowser && Browser.AutoStart)
|
||||||
{
|
{
|
||||||
logger.Info("Auto-starting browser...");
|
logger.Info("Auto-starting browser...");
|
||||||
Browser.Start();
|
Browser.Start();
|
||||||
|
|
|
@ -46,20 +46,27 @@ namespace SafeExamBrowser.Client.Operations
|
||||||
logger.Info("Initializing browser...");
|
logger.Info("Initializing browser...");
|
||||||
StatusChanged?.Invoke(TextKey.OperationStatus_InitializeBrowser);
|
StatusChanged?.Invoke(TextKey.OperationStatus_InitializeBrowser);
|
||||||
|
|
||||||
Context.Browser.Initialize();
|
if (Context.Settings.Browser.EnableBrowser)
|
||||||
|
|
||||||
if (Context.Settings.ActionCenter.EnableActionCenter)
|
|
||||||
{
|
{
|
||||||
actionCenter.AddApplicationControl(uiFactory.CreateApplicationControl(Context.Browser, Location.ActionCenter), true);
|
Context.Browser.Initialize();
|
||||||
}
|
|
||||||
|
|
||||||
if (Context.Settings.Taskbar.EnableTaskbar)
|
if (Context.Settings.ActionCenter.EnableActionCenter)
|
||||||
|
{
|
||||||
|
actionCenter.AddApplicationControl(uiFactory.CreateApplicationControl(Context.Browser, Location.ActionCenter), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Context.Settings.Taskbar.EnableTaskbar)
|
||||||
|
{
|
||||||
|
taskbar.AddApplicationControl(uiFactory.CreateApplicationControl(Context.Browser, Location.Taskbar), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
taskview.Add(Context.Browser);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
taskbar.AddApplicationControl(uiFactory.CreateApplicationControl(Context.Browser, Location.Taskbar), true);
|
logger.Info("Browser application is disabled for this session.");
|
||||||
}
|
}
|
||||||
|
|
||||||
taskview.Add(Context.Browser);
|
|
||||||
|
|
||||||
return OperationResult.Success;
|
return OperationResult.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,7 +75,14 @@ namespace SafeExamBrowser.Client.Operations
|
||||||
logger.Info("Terminating browser...");
|
logger.Info("Terminating browser...");
|
||||||
StatusChanged?.Invoke(TextKey.OperationStatus_TerminateBrowser);
|
StatusChanged?.Invoke(TextKey.OperationStatus_TerminateBrowser);
|
||||||
|
|
||||||
Context.Browser.Terminate();
|
if (Context.Settings.Browser.EnableBrowser)
|
||||||
|
{
|
||||||
|
Context.Browser.Terminate();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
logger.Info("Browser application was disabled for this session.");
|
||||||
|
}
|
||||||
|
|
||||||
return OperationResult.Success;
|
return OperationResult.Success;
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,6 +54,9 @@ namespace SafeExamBrowser.Configuration.ConfigurationData.DataMapping
|
||||||
case Keys.Browser.AdditionalWindow.WindowWidth:
|
case Keys.Browser.AdditionalWindow.WindowWidth:
|
||||||
MapWindowWidthAdditionalWindow(settings, value);
|
MapWindowWidthAdditionalWindow(settings, value);
|
||||||
break;
|
break;
|
||||||
|
case Keys.Browser.EnableBrowser:
|
||||||
|
MapEnableBrowser(settings, value);
|
||||||
|
break;
|
||||||
case Keys.Browser.Filter.FilterRules:
|
case Keys.Browser.Filter.FilterRules:
|
||||||
MapFilterRules(settings, value);
|
MapFilterRules(settings, value);
|
||||||
break;
|
break;
|
||||||
|
@ -195,6 +198,14 @@ namespace SafeExamBrowser.Configuration.ConfigurationData.DataMapping
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void MapEnableBrowser(AppSettings settings, object value)
|
||||||
|
{
|
||||||
|
if (value is bool enable)
|
||||||
|
{
|
||||||
|
settings.Browser.EnableBrowser = enable;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void MapMainWindowMode(AppSettings settings, object value)
|
private void MapMainWindowMode(AppSettings settings, object value)
|
||||||
{
|
{
|
||||||
const int FULLSCREEN = 1;
|
const int FULLSCREEN = 1;
|
||||||
|
|
|
@ -47,6 +47,7 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
|
||||||
internal const string AllowPageZoom = "enableZoomPage";
|
internal const string AllowPageZoom = "enableZoomPage";
|
||||||
internal const string CustomUserAgentDesktop = "browserUserAgentWinDesktopModeCustom";
|
internal const string CustomUserAgentDesktop = "browserUserAgentWinDesktopModeCustom";
|
||||||
internal const string CustomUserAgentMobile = "browserUserAgentWinTouchModeCustom";
|
internal const string CustomUserAgentMobile = "browserUserAgentWinTouchModeCustom";
|
||||||
|
internal const string EnableBrowser = "enableSebBrowser";
|
||||||
internal const string PopupPolicy = "newBrowserWindowByLinkPolicy";
|
internal const string PopupPolicy = "newBrowserWindowByLinkPolicy";
|
||||||
internal const string PopupBlockForeignHost = "newBrowserWindowByLinkBlockForeign";
|
internal const string PopupBlockForeignHost = "newBrowserWindowByLinkBlockForeign";
|
||||||
internal const string QuitUrl = "quitURL";
|
internal const string QuitUrl = "quitURL";
|
||||||
|
|
|
@ -46,6 +46,11 @@ namespace SafeExamBrowser.Settings.Browser
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string CustomUserAgent { get; set; }
|
public string CustomUserAgent { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Determines whether the user is allowed to use the integrated browser application.
|
||||||
|
/// </summary>
|
||||||
|
public bool EnableBrowser { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The settings to be used for the browser request filter.
|
/// The settings to be used for the browser request filter.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
Loading…
Reference in a new issue