DelegateTo(Task task)
{
- await task;//.ConfigureAwait(false);
+ await task;
return null;
}
}
diff --git a/tests/bunit.testassets/SampleComponents/RenderOnClick.razor b/tests/bunit.testassets/SampleComponents/RenderOnClick.razor
index d5ed71b16..b42b04388 100644
--- a/tests/bunit.testassets/SampleComponents/RenderOnClick.razor
+++ b/tests/bunit.testassets/SampleComponents/RenderOnClick.razor
@@ -2,8 +2,11 @@
@code {
public int RenderCount { get; private set; }
-
- void IncreaseCount() { }
+
+ void IncreaseCount()
+ {
+ // Left empty on purpose
+ }
protected override void OnAfterRender(bool firstRender) => RenderCount++;
}
\ No newline at end of file
diff --git a/tests/bunit.testassets/SampleComponents/SimpleUsingLocalizer.razor b/tests/bunit.testassets/SampleComponents/SimpleUsingLocalizer.razor
index 9992ee117..d077d54b0 100644
--- a/tests/bunit.testassets/SampleComponents/SimpleUsingLocalizer.razor
+++ b/tests/bunit.testassets/SampleComponents/SimpleUsingLocalizer.razor
@@ -6,7 +6,7 @@
@code {
protected override void OnInitialized()
{
- var localizedString = StringLocalizer["StringName"];
+ _ = StringLocalizer["StringName"];
}
}
diff --git a/tests/bunit.testassets/SampleComponents/SimpleWithTemplate.razor b/tests/bunit.testassets/SampleComponents/SimpleWithTemplate.razor
index 0ba4abec3..700fcdc83 100644
--- a/tests/bunit.testassets/SampleComponents/SimpleWithTemplate.razor
+++ b/tests/bunit.testassets/SampleComponents/SimpleWithTemplate.razor
@@ -1,7 +1,7 @@
@typeparam T
@foreach (var d in Data)
{
- @Template?.Invoke(d);
+ @Template?.Invoke(d)
}
@code
{
diff --git a/tests/bunit.testassets/SampleComponents/ToggleableDetails.razor b/tests/bunit.testassets/SampleComponents/ToggleableDetails.razor
index 5dcb306e3..b1cf9da25 100644
--- a/tests/bunit.testassets/SampleComponents/ToggleableDetails.razor
+++ b/tests/bunit.testassets/SampleComponents/ToggleableDetails.razor
@@ -3,7 +3,7 @@
{
Read the details carefully!
}
-
+
Summary
Detailed content
diff --git a/tests/bunit.web.tests/Asserting/MarkupMatchesTests.razor b/tests/bunit.web.tests/Asserting/MarkupMatchesTests.razor
index d8723291f..d4b3bf5c4 100644
--- a/tests/bunit.web.tests/Asserting/MarkupMatchesTests.razor
+++ b/tests/bunit.web.tests/Asserting/MarkupMatchesTests.razor
@@ -1,13 +1,9 @@
-@using Bunit.TestAssets
@using Bunit.TestAssets.SampleComponents
@inherits TestContext
@code {
- private readonly ITestOutputHelper outputHelper;
-
- public MarkupMatchesTests(ITestOutputHelper outputHelper)
+ public MarkupMatchesTests()
{
- this.outputHelper = outputHelper;
- TestContext.DefaultWaitTimeout = TimeSpan.FromSeconds(30);
+ DefaultWaitTimeout = TimeSpan.FromSeconds(30);
}
[Fact]
diff --git a/tests/bunit.web.tests/Rendering/RenderedComponentTest.cs b/tests/bunit.web.tests/Rendering/RenderedComponentTest.cs
index 412779aad..1e9e2e806 100644
--- a/tests/bunit.web.tests/Rendering/RenderedComponentTest.cs
+++ b/tests/bunit.web.tests/Rendering/RenderedComponentTest.cs
@@ -1,3 +1,6 @@
+using AngleSharp;
+using AngleSharp.Css;
+using AngleSharp.Dom;
using Bunit.Rendering;
namespace Bunit;
@@ -66,5 +69,45 @@ public void Test021()
cut.Instance.JSRuntime.ShouldNotBeNull();
}
+
+ [Fact(DisplayName = "Searching first for derived component and then base component finds correct (#1691)")]
+ public void Test023()
+ {
+ var cut = RenderComponent(
+ ps => ps.AddChildContent()
+ .AddChildContent());
+
+ Should.NotThrow(() =>
+ {
+ cut.FindComponents();
+ cut.FindComponents();
+ });
+ }
+
+ private class BaseComponent : ComponentBase
+ {
+ protected override void BuildRenderTree(RenderTreeBuilder builder)
+ {
+ builder.AddContent(0, "base");
+ }
+ }
+
+ private sealed class DerivedComponent : BaseComponent
+ {
+ protected override void BuildRenderTree(RenderTreeBuilder builder)
+ {
+ builder.AddContent(0, "derived");
+ }
+ }
#endif
+
+ [Fact(DisplayName = "Using relative units in style attribute can be retrieved")]
+ public void Test022()
+ {
+ var cut = RenderComponent();
+
+ var text = cut.Find(".my-component").GetInnerText();
+
+ text.ShouldNotBeNull();
+ }
}
diff --git a/tests/bunit.web.tests/TestDoubles/NavigationManager/FakeNavigationManagerTest.cs b/tests/bunit.web.tests/TestDoubles/NavigationManager/FakeNavigationManagerTest.cs
index ca09b9423..1578dfe28 100644
--- a/tests/bunit.web.tests/TestDoubles/NavigationManager/FakeNavigationManagerTest.cs
+++ b/tests/bunit.web.tests/TestDoubles/NavigationManager/FakeNavigationManagerTest.cs
@@ -1,5 +1,6 @@
using System.Text.Json;
using Microsoft.AspNetCore.Components.WebAssembly.Authentication;
+using Shouldly.ShouldlyExtensionMethods;
namespace Bunit.TestDoubles;
@@ -106,18 +107,18 @@ public void Test007()
}
#if !NET6_0_OR_GREATER
- [Theory(DisplayName = "NavigateTo(uri, forceLoad) is saved in history")]
- [InlineData("/uri", false)]
- [InlineData("/anotherUri", true)]
- public void Test100(string uri, bool forceLoad)
- {
- var sut = CreateFakeNavigationManager();
+ [Theory(DisplayName = "NavigateTo(uri, forceLoad) is saved in history")]
+ [InlineData("/uri", false)]
+ [InlineData("/anotherUri", true)]
+ public void Test100(string uri, bool forceLoad)
+ {
+ var sut = CreateFakeNavigationManager();
- sut.NavigateTo(uri, forceLoad);
+ sut.NavigateTo(uri, forceLoad);
- sut.History.ShouldHaveSingleItem()
- .ShouldBeEquivalentTo(new NavigationHistory(uri, new NavigationOptions(forceLoad)));
- }
+ sut.History.ShouldHaveSingleItem()
+ .ShouldBeEquivalentTo(new NavigationHistory(uri, new NavigationOptions(forceLoad)));
+ }
#endif
#if NET6_0_OR_GREATER
[Theory(DisplayName = "NavigateTo(uri, forceLoad, replaceHistoryEntry) is saved in history")]
@@ -135,8 +136,12 @@ public void Test200(string uri, bool forceLoad, bool replaceHistoryEntry)
.ShouldBeEquivalentTo(new NavigationHistory(uri,
new NavigationOptions { ForceLoad = forceLoad, ReplaceHistoryEntry = replaceHistoryEntry }));
#elif NET7_0_OR_GREATER
- var navigationOptions = new NavigationOptions { ForceLoad = forceLoad, ReplaceHistoryEntry =
- replaceHistoryEntry };
+ var navigationOptions = new NavigationOptions
+ {
+ ForceLoad = forceLoad,
+ ReplaceHistoryEntry =
+ replaceHistoryEntry
+ };
sut.History.ShouldHaveSingleItem()
.ShouldBeEquivalentTo(new NavigationHistory(uri, navigationOptions, NavigationState.Succeeded));
#endif
@@ -156,8 +161,11 @@ public void Test201()
new NavigationOptions { ReplaceHistoryEntry = true }));
#elif NET7_0_OR_GREATER
sut.History.ShouldHaveSingleItem()
- .ShouldBeEquivalentTo(new NavigationHistory("/secondUrl", new NavigationOptions { ReplaceHistoryEntry =
- true }, NavigationState.Succeeded));
+ .ShouldBeEquivalentTo(new NavigationHistory("/secondUrl", new NavigationOptions
+ {
+ ReplaceHistoryEntry =
+ true
+ }, NavigationState.Succeeded));
#endif
}
#endif
@@ -230,7 +238,8 @@ public void Test013()
var fakeNavigationManager = CreateFakeNavigationManager();
var requestOptions = new InteractiveRequestOptions
{
- ReturnUrl = "return", Interaction = InteractionType.SignIn,
+ ReturnUrl = "return",
+ Interaction = InteractionType.SignIn,
};
requestOptions.TryAddAdditionalParameter("library", "bunit");
@@ -264,7 +273,7 @@ public void Test015()
Should.Throw(
() => fakeNavigationManager.History.Last().StateFromJson());
}
-
+
[Fact(DisplayName = "Navigate to url with state should set that state on the NavigationManager")]
public void Test016()
{
@@ -275,7 +284,7 @@ public void Test016()
sut.HistoryEntryState.ShouldBe(State);
}
-
+
[Fact(DisplayName = "Navigate to url with force reload resets state")]
public void Test017()
{
@@ -283,11 +292,32 @@ public void Test017()
var sut = CreateFakeNavigationManager();
sut.NavigateTo("/internal", new NavigationOptions { HistoryEntryState = State });
- sut.NavigateTo("/internal", new NavigationOptions { HistoryEntryState = State, ForceLoad = true});
+ sut.NavigateTo("/internal", new NavigationOptions { HistoryEntryState = State, ForceLoad = true });
sut.HistoryEntryState.ShouldBe(null);
}
+ [Theory(DisplayName = "Preventing Navigation does not change Uri or BaseUri")]
+ [InlineData("/prevented-path")]
+ [InlineData("https://bunit.dev/uri")]
+ public void Test018(string navToUri)
+ {
+ var sut = CreateFakeNavigationManager();
+ using var handler = sut.RegisterLocationChangingHandler(LocationChangingHandler);
+
+ sut.NavigateTo(navToUri);
+
+ sut.History.First().State.ShouldBe(NavigationState.Prevented);
+ sut.BaseUri.ShouldBe("http://localhost/");
+ sut.Uri.ShouldBe("http://localhost/");
+
+ ValueTask LocationChangingHandler(LocationChangingContext arg)
+ {
+ arg.PreventNavigation();
+ return ValueTask.CompletedTask;
+ }
+ }
+
private sealed class InterceptNavigateToCounterComponent : ComponentBase
{
protected override void BuildRenderTree(RenderTreeBuilder builder)
diff --git a/version.json b/version.json
index 9def60208..6bec143ea 100644
--- a/version.json
+++ b/version.json
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/main/src/NerdBank.GitVersioning/version.schema.json",
- "version": "1.38",
+ "version": "1.39",
"assemblyVersion": {
"precision": "revision"
},