/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Components/test/E2ETest/Tests/SvgTest.cs
154 строки
5 KB
github-actions[bot]
Update .NET SDK to 10.0.100-alpha.1.24609.2 (#59389)
13 дек 2024, 03:56
Не верифицирован
13 дек 2024, 03:56
3d6364b
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using BasicTestApp; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.E2ETesting; using Microsoft.AspNetCore.InternalTesting; using OpenQA.Selenium; using Xunit.Abstractions; namespace Microsoft.AspNetCore.Components.E2ETest.Tests; public class SvgTest : ServerTestBase<ToggleExecutionModeServerFixture<Program>> { public SvgTest( BrowserFixture browserFixture, ToggleExecutionModeServerFixture<Program> serverFixture, ITestOutputHelper output) : base(browserFixture, serverFixture, output) { } protected override void InitializeAsyncCore() { Navigate(ServerPathBase); } [Fact] public void CanRenderSvgWithCorrectNamespace() { var appElement = Browser.MountTestComponent<SvgComponent>(); var svgElement = appElement.FindElement(By.Id("svg-with-callback")); Assert.NotNull(svgElement); var svgCircleElement = svgElement.FindElement(By.XPath("//*[local-name()='circle' and namespace-uri()='http://www.w3.org/2000/svg']")); Assert.NotNull(svgCircleElement); Assert.Equal("10", svgCircleElement.GetDomAttribute("r")); appElement.FindElement(By.TagName("button")).Click(); Browser.Equal("20", () => svgCircleElement.GetDomAttribute("r")); } [Fact] public void CanRenderSvgWithAttributeRemoval() { var appElement = Browser.MountTestComponent<SvgComponent>(); var svgElement = appElement.FindElement(By.Id("svg-with-callback")); Assert.NotNull(svgElement); var svgCircleElement = svgElement.FindElement(By.XPath("//*[local-name()='circle' and namespace-uri()='http://www.w3.org/2000/svg']")); Assert.NotNull(svgCircleElement); Assert.Equal("stroke: red;", svgCircleElement.GetDomAttribute("style")); appElement.FindElement(By.TagName("button")).Click(); Browser.Equal(null, () => svgCircleElement.GetDomAttribute("style")); } [Fact] public void CanRenderSvgChildComponentWithCorrectNamespace() { var appElement = Browser.MountTestComponent<SvgComponent>(); var svgElement = appElement.FindElement(By.Id("svg-with-child-component")); Assert.NotNull(svgElement); var svgCircleElement = svgElement.FindElement(By.XPath("//*[local-name()='circle' and namespace-uri()='http://www.w3.org/2000/svg']")); Assert.NotNull(svgCircleElement); } [Fact] public void CanRenderVariablesInForeignObject() { var appElement = Browser.MountTestComponent<SvgComponent>(); var svgElement = appElement.FindElement(By.Id("svg-with-foreign-object")); Assert.NotNull(svgElement); Func<IEnumerable<IWebElement>> strongElement = () => svgElement.FindElements(By.TagName("strong")); Browser.Collection<IWebElement>(strongElement, e => Assert.Equal("thestringfoo", e.Text), e => Assert.Equal("thestringbar", e.Text)); } [Fact] public void CanRenderSvgWithLink() { var appElement = Browser.MountTestComponent<SvgComponent>(); var svgElement = appElement.FindElement(By.Id("svg-with-link")); Assert.NotNull(svgElement); var svgLinkElement = svgElement.FindElement(By.Id("navlink-in-svg")); Assert.NotNull(svgLinkElement); svgLinkElement.Click(); var currentScenario = Browser.FindElement(By.Id("test-selector-select")); // Should have navigated away from current page Browser.True(() => Browser.Url.EndsWith("/subdir/counter", StringComparison.Ordinal)); } [Fact] public void CanRenderSvgWithTwoWayBinding() { var appElement = Browser.MountTestComponent<SvgComponent>(); var svgElement = appElement.FindElement(By.Id("svg-with-two-way-binding")); Assert.NotNull(svgElement); var valueElement = appElement.FindElement(By.Id("svg-with-two-way-binding-value")); Assert.Equal("10", valueElement.Text); var svgInputElement = svgElement.FindElement(By.TagName("input")); Assert.NotNull(svgInputElement); svgInputElement.SendKeys(Keys.Backspace); svgInputElement.SendKeys(Keys.Backspace); svgInputElement.SendKeys("15"); Assert.Equal("15", valueElement.Text); } [Fact] public void CanRenderSvgRenderFragment() { var appElement = Browser.MountTestComponent<SvgComponent>(); var svgElement = appElement.FindElement(By.Id("svg-with-render-fragment")); Assert.NotNull(svgElement); var svgForeignObjectElement = svgElement.FindElement(By.TagName("foreignObject")); Assert.NotNull(svgForeignObjectElement); Assert.Contains("Hello", svgForeignObjectElement.Text); } [Fact] public void CanRenderSvgWithScopedCSS() { var appElement = Browser.MountTestComponent<SvgComponent>(); var svgElement = appElement.FindElement(By.Id("svg-with-css-scope")); Assert.NotNull(svgElement); var svgCircleElement = svgElement.FindElement(By.TagName("circle")); Assert.NotNull(svgCircleElement); Assert.Equal("rgb(0, 128, 0)", svgCircleElement.GetCssValue("fill")); } }