155 lines
5.9 KiB
C#
155 lines
5.9 KiB
C#
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using System;
|
|
using System.Collections;
|
|
using System.IO;
|
|
using System.Text;
|
|
|
|
namespace Prevu
|
|
{
|
|
[TestClass]
|
|
public class Pages : BaseTest
|
|
{
|
|
#region Initialization & CleanUp
|
|
|
|
[ClassInitialize]
|
|
public static void ClassInitialize(TestContext TestContext)
|
|
{
|
|
BaseTest.ClassInitialize(TestContext);
|
|
}
|
|
[ClassCleanup]
|
|
public static void ClassCleanup()
|
|
{
|
|
BaseTest.ClassCleanup();
|
|
}
|
|
|
|
#endregion Initialization & CleanUp
|
|
|
|
#region Helpers
|
|
|
|
private string GetPageTitle(string pageSource, string startAfter, string finishBefore)
|
|
{
|
|
string title = "";
|
|
int indexT = pageSource.IndexOf(startAfter);
|
|
if (indexT > -1)
|
|
{
|
|
indexT += startAfter.Length;
|
|
title = pageSource.Substring(indexT, pageSource.IndexOf(finishBefore, indexT) - indexT);
|
|
}
|
|
return title;
|
|
}
|
|
|
|
/*[TestMethod, TestCategory("Pages"), Timeout(testTimeout * 600)]
|
|
[TestProperty("Generate Input Data File", "Site pages URL list generation")]
|
|
public void GeneratePageURLList()
|
|
{
|
|
const bool loggedIn = true;
|
|
string signIn = "";
|
|
Hashtable aURLs = new Hashtable();
|
|
StringBuilder verificationErrors = new StringBuilder();
|
|
if (loggedIn)
|
|
{
|
|
signIn = "True";
|
|
loginPage.SignInAdmin();
|
|
} else
|
|
{
|
|
loginPage.OpenLogin();
|
|
}
|
|
|
|
ArrayList urlList = new ArrayList();
|
|
string pageSource = driver.Driver.PageSource;
|
|
int index = 0;
|
|
while (pageSource.IndexOf("href=\"", index) > -1)
|
|
{
|
|
int start = pageSource.IndexOf("href=\"", index) + 6;
|
|
int finish = pageSource.IndexOf("\"", start);
|
|
string url = pageSource.Substring(start, finish - start);
|
|
if ((url.IndexOf(".axd") < 0) && (url.IndexOf(".css") < 0)
|
|
&& (url.IndexOf(".com") < 0) && (url.IndexOf(".ico") < 0)
|
|
&& (url.IndexOf(".png") < 0) && (url.IndexOf("javascript") < 0))
|
|
{
|
|
string aURL = url;
|
|
if (aURL[0] == '/')
|
|
{
|
|
aURL = aURL.Substring(1, aURL.Length - 1);
|
|
}
|
|
if ((!aURLs.Contains(aURL)) && (aURL != "Home/ExportToPDF"))
|
|
{
|
|
aURLs.Add(aURL, aURL);
|
|
urlList.Add(aURL);
|
|
}
|
|
}
|
|
index = finish;
|
|
}
|
|
StreamWriter streamWriter = new StreamWriter(@"..\..\PageList.txt", false, Encoding.Unicode);
|
|
try
|
|
{
|
|
streamWriter.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
|
|
streamWriter.WriteLine("<Rows>");
|
|
for (int i = 0; i < urlList.Count; i++)
|
|
{
|
|
string url = urlList[i].ToString();
|
|
string address = driver.Domain;
|
|
if (!string.IsNullOrEmpty(url))
|
|
{
|
|
address = string.Format("{0}{1}", address, url);
|
|
}
|
|
driver.Driver.Navigate().GoToUrl(address);
|
|
driver.WaitAjax();
|
|
string pageTitle = GetPageTitle(driver.Driver.PageSource, "<title>", "</title>");
|
|
streamWriter.WriteLine(" <Page>");
|
|
streamWriter.WriteLine(string.Format(" <URL>{0}</URL>", url));
|
|
streamWriter.WriteLine(string.Format(" <SignIn>{0}</SignIn>", signIn));
|
|
streamWriter.WriteLine(string.Format(" <Title>{0}</Title>", pageTitle));
|
|
streamWriter.WriteLine(" </Page>");
|
|
}
|
|
streamWriter.WriteLine("</Rows>");
|
|
}
|
|
finally
|
|
{
|
|
streamWriter.Close();
|
|
streamWriter.Dispose();
|
|
}
|
|
|
|
Assert.AreEqual(0, verificationErrors.Length, verificationErrors.ToString());
|
|
}*/
|
|
|
|
#endregion Helpers
|
|
|
|
|
|
[TestMethod, TestCategory("Pages"), Timeout(testTimeout * 600)]
|
|
[TestProperty("Validate Page", "1. Open the page<br>2. Check the page opening")]
|
|
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", @"|DataDirectory|\Files\Pages.xml", "Page", DataAccessMethod.Sequential)]
|
|
public void ValidatePage()
|
|
{
|
|
string resultMessage = "";
|
|
string inURL = Convert.ToString(TestContext.DataRow["URL"]);
|
|
string inTitle = Convert.ToString(TestContext.DataRow["Title"]);
|
|
string inSignIn = Convert.ToString(TestContext.DataRow["SignIn"]);
|
|
if (!string.IsNullOrEmpty(inSignIn))
|
|
{
|
|
Assert.IsTrue(loginPage.SignInAdmin());
|
|
} else {
|
|
Assert.IsTrue(loginPage.OpenLogin());
|
|
}
|
|
|
|
bool testPassed = false;
|
|
string address = driver.Domain;
|
|
if (!string.IsNullOrEmpty(inURL))
|
|
{
|
|
address = string.Format("{0}{1}", address, inURL);
|
|
}
|
|
driver.Driver.Navigate().GoToUrl(address);
|
|
driver.WaitAjax(100, 1000);
|
|
driver.WaitAjax(100, 1500);
|
|
string pageTitle = GetPageTitle(driver.Driver.PageSource, "<title>", "</title>");
|
|
testPassed = ((!string.IsNullOrEmpty(pageTitle)) && (pageTitle.IndexOf(inTitle) > -1));
|
|
if (!testPassed)
|
|
{
|
|
resultMessage = string.Format("The '{0}' page does not contain the TITLE tag, or it is not equal to etalon value '{1}', real value: {2}", inURL, inTitle, pageTitle);
|
|
}
|
|
Assert.IsTrue(testPassed, resultMessage);
|
|
}
|
|
|
|
}
|
|
}
|