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(""); streamWriter.WriteLine(""); 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, "", ""); streamWriter.WriteLine(" "); streamWriter.WriteLine(string.Format(" {0}", url)); streamWriter.WriteLine(string.Format(" {0}", signIn)); streamWriter.WriteLine(string.Format(" {0}", pageTitle)); streamWriter.WriteLine(" "); } streamWriter.WriteLine(""); } 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
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, "", ""); 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); } } }