diff --git a/SafeExamBrowser.Browser.UnitTests/Handlers/DisplayHandlerTests.cs b/SafeExamBrowser.Browser.UnitTests/Handlers/DisplayHandlerTests.cs index cb724139..443d6d81 100644 --- a/SafeExamBrowser.Browser.UnitTests/Handlers/DisplayHandlerTests.cs +++ b/SafeExamBrowser.Browser.UnitTests/Handlers/DisplayHandlerTests.cs @@ -6,8 +6,10 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +using System; using System.Collections.Generic; using CefSharp; +using CefSharp.Enums; using CefSharp.Structs; using Microsoft.VisualStudio.TestTools.UnitTesting; using SafeExamBrowser.Browser.Handlers; @@ -32,6 +34,7 @@ namespace SafeExamBrowser.Browser.UnitTests.Handlers Assert.IsFalse(sut.OnAutoResize(default(IWebBrowser), default(IBrowser), default(Size))); Assert.IsFalse(sut.OnConsoleMessage(default(IWebBrowser), default(ConsoleMessageEventArgs))); + Assert.IsFalse(sut.OnCursorChange(default(IWebBrowser), default(IBrowser), default(IntPtr), default(CursorType), default(CursorInfo))); Assert.IsFalse(sut.OnTooltipChanged(default(IWebBrowser), ref text)); } diff --git a/SafeExamBrowser.Browser.UnitTests/Handlers/KeyboardHandlerTests.cs b/SafeExamBrowser.Browser.UnitTests/Handlers/KeyboardHandlerTests.cs index df4cfcc1..d0e2430d 100644 --- a/SafeExamBrowser.Browser.UnitTests/Handlers/KeyboardHandlerTests.cs +++ b/SafeExamBrowser.Browser.UnitTests/Handlers/KeyboardHandlerTests.cs @@ -25,14 +25,52 @@ namespace SafeExamBrowser.Browser.UnitTests.Handlers } [TestMethod] - public void MustDetectReload() + public void MustDetectFindCommand() + { + var findRequested = false; + + sut.FindRequested += () => findRequested = true; + + var handled = sut.OnKeyEvent(default(IWebBrowser), default(IBrowser), KeyType.KeyUp, (int) Keys.F, default(int), CefEventFlags.ControlDown, default(bool)); + + Assert.IsTrue(findRequested); + Assert.IsFalse(handled); + + findRequested = false; + handled = sut.OnKeyEvent(default(IWebBrowser), default(IBrowser), default(KeyType), default(int), default(int), CefEventFlags.ControlDown, default(bool)); + + Assert.IsFalse(findRequested); + Assert.IsFalse(handled); + } + + [TestMethod] + public void MustDetectHomeNavigationCommand() + { + var homeRequested = false; + + sut.HomeNavigationRequested += () => homeRequested = true; + + var handled = sut.OnKeyEvent(default(IWebBrowser), default(IBrowser), KeyType.KeyUp, (int) Keys.Home, default(int), default(CefEventFlags), default(bool)); + + Assert.IsTrue(homeRequested); + Assert.IsFalse(handled); + + homeRequested = false; + handled = sut.OnKeyEvent(default(IWebBrowser), default(IBrowser), default(KeyType), default(int), default(int), default(CefEventFlags), default(bool)); + + Assert.IsFalse(homeRequested); + Assert.IsFalse(handled); + } + + [TestMethod] + public void MustDetectReloadCommand() { var isShortcut = default(bool); var reloadRequested = false; sut.ReloadRequested += () => reloadRequested = true; - var handled = sut.OnPreKeyEvent(default(IWebBrowser), default(IBrowser), KeyType.KeyUp, (int)Keys.F5, default(int), default(CefEventFlags), default(bool), ref isShortcut); + var handled = sut.OnPreKeyEvent(default(IWebBrowser), default(IBrowser), KeyType.KeyUp, (int) Keys.F5, default(int), default(CefEventFlags), default(bool), ref isShortcut); Assert.IsTrue(reloadRequested); Assert.IsTrue(handled); diff --git a/SafeExamBrowser.Browser.UnitTests/Handlers/RequestHandlerTests.cs b/SafeExamBrowser.Browser.UnitTests/Handlers/RequestHandlerTests.cs index 45c9eae8..1b528c93 100644 --- a/SafeExamBrowser.Browser.UnitTests/Handlers/RequestHandlerTests.cs +++ b/SafeExamBrowser.Browser.UnitTests/Handlers/RequestHandlerTests.cs @@ -6,6 +6,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +using System; using CefSharp; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; @@ -49,6 +50,15 @@ namespace SafeExamBrowser.Browser.UnitTests.Handlers sut = new TestableRequestHandler(appConfig, filter.Object, logger.Object, resourceHandler, settings, windowSettings, text.Object); } + [TestMethod] + public void MustBlockSpecialWindowDispositions() + { + Assert.IsTrue(sut.OnOpenUrlFromTab(default(IWebBrowser), default(IBrowser), default(IFrame), default(string), WindowOpenDisposition.NewBackgroundTab, default(bool))); + Assert.IsTrue(sut.OnOpenUrlFromTab(default(IWebBrowser), default(IBrowser), default(IFrame), default(string), WindowOpenDisposition.NewPopup, default(bool))); + Assert.IsTrue(sut.OnOpenUrlFromTab(default(IWebBrowser), default(IBrowser), default(IFrame), default(string), WindowOpenDisposition.NewWindow, default(bool))); + Assert.IsTrue(sut.OnOpenUrlFromTab(default(IWebBrowser), default(IBrowser), default(IFrame), default(string), WindowOpenDisposition.SaveToDisk, default(bool))); + } + [TestMethod] public void MustDetectQuitUrl() { @@ -168,6 +178,44 @@ namespace SafeExamBrowser.Browser.UnitTests.Handlers Assert.IsFalse(eventFired); } + [TestMethod] + public void MustInitiateConfigurationFileDownload() + { + var browser = new Mock(); + var host = new Mock(); + var request = new Mock(); + + appConfig.ConfigurationFileExtension = ".xyz"; + appConfig.SebUriScheme = "abc"; + appConfig.SebUriSchemeSecure = "abcd"; + browser.Setup(b => b.GetHost()).Returns(host.Object); + request.SetupGet(r => r.Url).Returns($"{appConfig.SebUriScheme}://host.com/path/file{appConfig.ConfigurationFileExtension}"); + + var handled = sut.OnBeforeBrowse(Mock.Of(), browser.Object, Mock.Of