mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-12-16 11:37:58 +02:00
new add series page automation
PageBase helper class.
This commit is contained in:
parent
ff0785b8d1
commit
b29b560b14
@ -7,6 +7,7 @@
|
|||||||
using NLog.Config;
|
using NLog.Config;
|
||||||
using NLog.Targets;
|
using NLog.Targets;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using NzbDrone.Automation.Test.PageModel;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
using NzbDrone.Test.Common;
|
using NzbDrone.Test.Common;
|
||||||
using OpenQA.Selenium;
|
using OpenQA.Selenium;
|
||||||
@ -46,9 +47,8 @@ public void SmokeTestSetup()
|
|||||||
|
|
||||||
driver.Url = "http://localhost:8989";
|
driver.Url = "http://localhost:8989";
|
||||||
|
|
||||||
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
|
var page = new PageBase(driver);
|
||||||
|
page.WaitForNoSpinner();
|
||||||
wait.Until(d => d.FindElement(By.Id("x-toolbar")));
|
|
||||||
|
|
||||||
GetPageErrors().Should().BeEmpty();
|
GetPageErrors().Should().BeEmpty();
|
||||||
|
|
||||||
@ -70,7 +70,6 @@ public void SmokeTestTearDown()
|
|||||||
[TearDown]
|
[TearDown]
|
||||||
public void AutomationTearDown()
|
public void AutomationTearDown()
|
||||||
{
|
{
|
||||||
Thread.Sleep(2000);
|
|
||||||
GetPageErrors().Should().BeEmpty();
|
GetPageErrors().Should().BeEmpty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,44 +1,79 @@
|
|||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using NzbDrone.Automation.Test.PageModel;
|
||||||
|
using OpenQA.Selenium;
|
||||||
|
|
||||||
namespace NzbDrone.Automation.Test
|
namespace NzbDrone.Automation.Test
|
||||||
{
|
{
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
public class MainPagesTest : AutomationTest
|
public class MainPagesTest : AutomationTest
|
||||||
{
|
{
|
||||||
|
private PageBase page;
|
||||||
|
|
||||||
|
|
||||||
|
[SetUp]
|
||||||
|
public void Setup()
|
||||||
|
{
|
||||||
|
page = new PageBase(driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void series_page()
|
public void series_page()
|
||||||
{
|
{
|
||||||
driver.FindElementByLinkText("Series").Click();
|
page.SeriesNavIcon.Click();
|
||||||
driver.FindElementByClassName("iv-series-index-seriesindexlayout").Should().NotBeNull();
|
page.WaitForNoSpinner();
|
||||||
|
page.FindByClass("iv-series-index-seriesindexlayout").Should().NotBeNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void calendar_page()
|
public void calendar_page()
|
||||||
{
|
{
|
||||||
driver.FindElementByLinkText("Calendar").Click();
|
page.CalendarNavIcon.Click();
|
||||||
driver.FindElementByClassName("iv-calendar-calendarlayout").Should().NotBeNull();
|
page.WaitForNoSpinner();
|
||||||
|
|
||||||
|
page.FindByClass("iv-calendar-calendarlayout").Should().NotBeNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void history_page()
|
public void history_page()
|
||||||
{
|
{
|
||||||
driver.FindElementByLinkText("History").Click();
|
page.HistoryNavIcon.Click();
|
||||||
driver.FindElementByClassName("iv-history-historylayout").Should().NotBeNull();
|
page.WaitForNoSpinner();
|
||||||
|
|
||||||
|
page.FindByClass("iv-history-historylayout").Should().NotBeNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void missing_page()
|
public void missing_page()
|
||||||
{
|
{
|
||||||
driver.FindElementByLinkText("Settings").Click();
|
page.MissingNavIcon.Click();
|
||||||
|
page.WaitForNoSpinner();
|
||||||
|
|
||||||
|
page.FindByClass("iv-missing-missinglayout").Should().NotBeNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void system_page()
|
public void system_page()
|
||||||
{
|
{
|
||||||
driver.FindElementByLinkText("System").Click();
|
page.SystemNavIcon.Click();
|
||||||
driver.FindElementByClassName("iv-system-systemlayout").Should().NotBeNull();
|
page.WaitForNoSpinner();
|
||||||
|
|
||||||
|
page.FindByClass("iv-system-systemlayout").Should().NotBeNull();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void add_series_page()
|
||||||
|
{
|
||||||
|
page.SeriesNavIcon.Click();
|
||||||
|
page.WaitForNoSpinner();
|
||||||
|
|
||||||
|
page.Find(By.LinkText("Add Series")).Click();
|
||||||
|
|
||||||
|
page.WaitForNoSpinner();
|
||||||
|
|
||||||
|
page.FindByClass("iv-addseries-addserieslayout").Should().NotBeNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
@ -62,6 +62,7 @@
|
|||||||
<Compile Include="AutomationTestAttribute.cs" />
|
<Compile Include="AutomationTestAttribute.cs" />
|
||||||
<Compile Include="AutomationTest.cs" />
|
<Compile Include="AutomationTest.cs" />
|
||||||
<Compile Include="MainPagesTest.cs" />
|
<Compile Include="MainPagesTest.cs" />
|
||||||
|
<Compile Include="PageModel\PageBase.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
100
src/NzbDrone.Automation.Test/PageModel/PageBase.cs
Normal file
100
src/NzbDrone.Automation.Test/PageModel/PageBase.cs
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
using System;
|
||||||
|
using System.Threading;
|
||||||
|
using OpenQA.Selenium;
|
||||||
|
using OpenQA.Selenium.Remote;
|
||||||
|
using OpenQA.Selenium.Support.UI;
|
||||||
|
|
||||||
|
namespace NzbDrone.Automation.Test.PageModel
|
||||||
|
{
|
||||||
|
public class PageBase
|
||||||
|
{
|
||||||
|
private readonly RemoteWebDriver _driver;
|
||||||
|
|
||||||
|
public PageBase(RemoteWebDriver driver)
|
||||||
|
{
|
||||||
|
_driver = driver;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IWebElement FindByClass(string className, int timeout = 5)
|
||||||
|
{
|
||||||
|
return Find(By.ClassName(className), timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IWebElement Find(By by, int timeout = 5)
|
||||||
|
{
|
||||||
|
var wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(timeout));
|
||||||
|
return wait.Until(d => d.FindElement(by));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void WaitForNoSpinner(int timeout = 20)
|
||||||
|
{
|
||||||
|
//give the spinner some time to show up.
|
||||||
|
Thread.Sleep(100);
|
||||||
|
|
||||||
|
var wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(timeout));
|
||||||
|
wait.Until(d =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
IWebElement element = d.FindElement(By.Id("followingBalls"));
|
||||||
|
return !element.Displayed;
|
||||||
|
}
|
||||||
|
catch (NoSuchElementException)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public IWebElement SeriesNavIcon
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Find(By.LinkText("Series"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IWebElement CalendarNavIcon
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Find(By.LinkText("Calendar"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IWebElement HistoryNavIcon
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Find(By.LinkText("History"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IWebElement MissingNavIcon
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Find(By.LinkText("Missing"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IWebElement SettingNavIcon
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Find(By.LinkText("Settings"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IWebElement SystemNavIcon
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Find(By.LinkText("System"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user