diff --git a/src/Templating/test/Templates.Test/Helpers/WebDriverFactory.cs b/src/Templating/test/Templates.Test/Helpers/WebDriverFactory.cs index b3c27e859d..891da0e771 100644 --- a/src/Templating/test/Templates.Test/Helpers/WebDriverFactory.cs +++ b/src/Templating/test/Templates.Test/Helpers/WebDriverFactory.cs @@ -1,10 +1,6 @@ using System; -using System.IO; using System.Runtime.InteropServices; using System.Text.RegularExpressions; -using OpenQA.Selenium; -using OpenQA.Selenium.Edge; -using OpenQA.Selenium.Firefox; namespace Templates.Test.Helpers { @@ -14,41 +10,17 @@ namespace Templates.Test.Helpers // Any action will have to be completed in at most 10 seconds. // Providing a smaller value won't improve the speed of the tests in any // significant way and will make them more prone to fail on slower drivers. - private const int DefaultMaxWaitTimeInSeconds = 10; + internal const int DefaultMaxWaitTimeInSeconds = 10; public static bool HostSupportsBrowserAutomation => string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("ASPNETCORE_BROWSER_AUTOMATION_DISABLED")) && - (IsAppVeyor || OSSupportsEdge()); + (IsAppVeyor || (IsVSTS && RuntimeInformation.OSDescription.Contains("Microsoft Windows")) || OSSupportsEdge()); private static bool IsAppVeyor => Environment.GetEnvironmentVariables().Contains("APPVEYOR"); - public static IWebDriver CreateWebDriver() - { - // Where possible, it's preferable to use Edge because it's - // far faster to automate than Chrome/Firefox. But on AppVeyor - // only Firefox is available. - var result = (IsAppVeyor || UseFirefox()) ? CreateFirefoxDriver() : CreateEdgeDriver(); - result.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(DefaultMaxWaitTimeInSeconds); - return result; - - bool UseFirefox() => !string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("ASPNETCORE_BROWSER_AUTOMATION_FIREFOX")); - } - - private static IWebDriver CreateEdgeDriver() - => new EdgeDriver(EdgeDriverService.CreateDefaultService(BinDir)); - - private static IWebDriver CreateFirefoxDriver() - => new FirefoxDriver( - FirefoxDriverService.CreateDefaultService(BinDir), - new FirefoxOptions() - { - AcceptInsecureCertificates = true - }, - TimeSpan.FromSeconds(DefaultMaxWaitTimeInSeconds)); - - private static string BinDir - => Path.GetDirectoryName(typeof(WebDriverFactory).Assembly.Location); + private static bool IsVSTS + => Environment.GetEnvironmentVariables().Contains("TF_BUILD"); private static int GetWindowsVersion() { @@ -60,7 +32,7 @@ namespace Templates.Test.Helpers private static bool OSSupportsEdge() { var windowsVersion = GetWindowsVersion(); - return (windowsVersion >= DefaultMaxWaitTimeInSeconds && windowsVersion < 2000) + return (windowsVersion >= 10 && windowsVersion < 2000) || (windowsVersion >= 2016); } } diff --git a/src/Templating/test/Templates.Test/SpaTemplateTest/ReactReduxTemplateTest.cs b/src/Templating/test/Templates.Test/SpaTemplateTest/ReactReduxTemplateTest.cs index 919a76baf3..64ed4dda72 100644 --- a/src/Templating/test/Templates.Test/SpaTemplateTest/ReactReduxTemplateTest.cs +++ b/src/Templating/test/Templates.Test/SpaTemplateTest/ReactReduxTemplateTest.cs @@ -1,11 +1,16 @@ -using Xunit; +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using Templates.Test.Infrastructure; +using Xunit; using Xunit.Abstractions; +[assembly: AssemblyFixture(typeof(SeleniumServerFixture))] namespace Templates.Test.SpaTemplateTest { public class ReactReduxTemplateTest : SpaTemplateTestBase { - public ReactReduxTemplateTest(ITestOutputHelper output) : base(output) + public ReactReduxTemplateTest(BrowserFixture browserFixture, ITestOutputHelper output) : base(browserFixture, output) { } diff --git a/src/Templating/test/Templates.Test/SpaTemplateTest/ReactTemplateTest.cs b/src/Templating/test/Templates.Test/SpaTemplateTest/ReactTemplateTest.cs new file mode 100644 index 0000000000..b46aa382c5 --- /dev/null +++ b/src/Templating/test/Templates.Test/SpaTemplateTest/ReactTemplateTest.cs @@ -0,0 +1,21 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using Templates.Test.Infrastructure; +using Xunit; +using Xunit.Abstractions; + +[assembly: AssemblyFixture(typeof(SeleniumServerFixture))] +namespace Templates.Test.SpaTemplateTest +{ + public class ReactTemplateTest : SpaTemplateTestBase + { + public ReactTemplateTest(BrowserFixture browserFixture, ITestOutputHelper output) : base(browserFixture, output) + { + } + + [Fact] + public void ReactTemplate_Works_NetCore() + => SpaTemplateImpl(null, "react"); + } +}