| // <copyright file="MiscTest.cs" company="Selenium Committers"> |
| // Licensed to the Software Freedom Conservancy (SFC) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The SFC licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // </copyright> |
| |
| using NUnit.Framework; |
| using OpenQA.Selenium.Environment; |
| using System.Collections.Generic; |
| |
| namespace OpenQA.Selenium; |
| |
| [TestFixture] |
| public class MiscTest : DriverTestFixture |
| { |
| [Test] |
| public void ShouldReturnTitleOfPageIfSet() |
| { |
| driver.Url = xhtmlTestPage; |
| Assert.That(driver.Title, Is.EqualTo("XHTML Test Page")); |
| |
| driver.Url = simpleTestPage; |
| Assert.That(driver.Title, Is.EqualTo("Hello WebDriver")); |
| } |
| |
| [Test] |
| public void ShouldReportTheCurrentUrlCorrectly() |
| { |
| driver.Url = macbethPage; |
| Assert.That(driver.Url, Is.EqualTo(macbethPage)); |
| |
| driver.Url = simpleTestPage; |
| Assert.That(driver.Url, Is.EqualTo(simpleTestPage)); |
| |
| driver.Url = javascriptPage; |
| Assert.That(driver.Url, Is.EqualTo(javascriptPage)); |
| } |
| |
| [Test] |
| public void ShouldReturnTagName() |
| { |
| driver.Url = formsPage; |
| IWebElement selectBox = driver.FindElement(By.Id("cheese")); |
| Assert.That(selectBox.TagName.ToLower(), Is.EqualTo("input")); |
| } |
| |
| [Test] |
| public void ShouldReturnTheSourceOfAPage() |
| { |
| string pageSource; |
| driver.Url = simpleTestPage; |
| pageSource = driver.PageSource.ToLower(); |
| |
| Assert.That(pageSource, Does.StartWith("<html")); |
| Assert.That(pageSource, Does.EndWith("</html>")); |
| Assert.That(pageSource, Does.Contain("an inline element")); |
| Assert.That(pageSource, Does.Contain("<p id=")); |
| Assert.That(pageSource, Does.Contain("lotsofspaces")); |
| Assert.That(pageSource, Does.Contain("with document.write and with document.write again")); |
| } |
| |
| [Test] |
| [IgnoreBrowser(Browser.Chrome, "returns XML content formatted for display as HTML document")] |
| [IgnoreBrowser(Browser.Edge, "returns XML content formatted for display as HTML document")] |
| [IgnoreBrowser(Browser.Safari, "returns XML content formatted for display as HTML document")] |
| [IgnoreBrowser(Browser.IE, "returns XML content formatted for display as HTML document")] |
| public void ShouldBeAbleToGetTheSourceOfAnXmlDocument() |
| { |
| driver.Url = simpleXmlDocument; |
| string source = driver.PageSource.ToLower(); |
| source = System.Text.RegularExpressions.Regex.Replace(source, "\\s", string.Empty); |
| Assert.That(source, Is.EqualTo("<xml><foo><bar>baz</bar></foo></xml>")); |
| } |
| |
| // Test is ignored for all browsers, but is kept here in the source code for |
| // ease of comparison to Java test suite. |
| //[Test] |
| //[IgnoreBrowser(Browser.All, "issue 2282")] |
| //public void StimulatesStrangeOnloadInteractionInFirefox() |
| //{ |
| // driver.Url = documentWrite; |
| |
| // // If this command succeeds, then all is well. |
| // driver.FindElement(By.XPath("//body")); |
| |
| // driver.Url = simpleTestPage; |
| // driver.FindElement(By.Id("links")); |
| //} |
| |
| [Test] |
| public void ClickingShouldNotTrampleWOrHInGlobalScope() |
| { |
| driver.Url = EnvironmentManager.Instance.UrlBuilder.WhereIs("globalscope.html"); |
| List<string> values = new List<string>() { "w", "h" }; |
| |
| foreach (string val in values) |
| { |
| Assert.That(GetGlobalVar(driver, val), Is.EqualTo(val)); |
| } |
| |
| driver.FindElement(By.Id("toclick")).Click(); |
| |
| foreach (string val in values) |
| { |
| Assert.That(GetGlobalVar(driver, val), Is.EqualTo(val)); |
| } |
| } |
| |
| private string GetGlobalVar(IWebDriver driver, string value) |
| { |
| object val = ((IJavaScriptExecutor)driver).ExecuteScript("return window." + value + ";"); |
| return val == null ? "null" : val.ToString(); |
| } |
| } |