Skip to content

Commit

Permalink
Add Public API tests (#175)
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewlock authored Sep 5, 2024
1 parent 05b87f6 commit b2686a0
Show file tree
Hide file tree
Showing 6 changed files with 1,001 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="PublicApiGenerator" Version="11.1.0" />
<PackageReference Include="Verify.Xunit" Version="18.4.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
<PackageReference Include="Moq" Version="4.10.0" />
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/andrewlock/NetEscapades.AspNetCore.SecurityHeaders")]
[assembly: System.Resources.NeutralResourcesLanguage("en-GB")]
namespace NetEscapades.AspNetCore.SecurityHeaders.TagHelpers
{
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("*", Attributes="asp-add-csp-for-*")]
public class AttributeHashTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper
{
public AttributeHashTagHelper() { }
[Microsoft.AspNetCore.Mvc.ViewFeatures.ViewContext]
public Microsoft.AspNetCore.Mvc.Rendering.ViewContext? ViewContext { get; set; }
public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) { }
}
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("script", Attributes="asp-add-content-to-csp")]
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("style", Attributes="asp-add-content-to-csp")]
public class HashTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper
{
public HashTagHelper() { }
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeName("csp-hash-type")]
public NetEscapades.AspNetCore.SecurityHeaders.Infrastructure.CSPHashType CSPHashType { get; set; }
[Microsoft.AspNetCore.Mvc.ViewFeatures.ViewContext]
public Microsoft.AspNetCore.Mvc.Rendering.ViewContext? ViewContext { get; set; }
public override System.Threading.Tasks.Task ProcessAsync(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) { }
}
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("applet", Attributes="asp-add-nonce")]
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("audio", Attributes="asp-add-nonce")]
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("base", Attributes="asp-add-nonce")]
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("embed", Attributes="asp-add-nonce")]
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("frame", Attributes="asp-add-nonce")]
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("iframe", Attributes="asp-add-nonce")]
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("img", Attributes="asp-add-nonce")]
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("link", Attributes="asp-add-nonce")]
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("object", Attributes="asp-add-nonce")]
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("script", Attributes="asp-add-nonce")]
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("style", Attributes="asp-add-nonce")]
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlTargetElement("video", Attributes="asp-add-nonce")]
public class NonceTagHelper : Microsoft.AspNetCore.Razor.TagHelpers.TagHelper
{
public NonceTagHelper() { }
[Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeName("asp-add-nonce")]
public bool AddNonce { get; set; }
[Microsoft.AspNetCore.Mvc.ViewFeatures.ViewContext]
public Microsoft.AspNetCore.Mvc.Rendering.ViewContext? ViewContext { get; set; }
public override void Process(Microsoft.AspNetCore.Razor.TagHelpers.TagHelperContext context, Microsoft.AspNetCore.Razor.TagHelpers.TagHelperOutput output) { }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Threading.Tasks;
using PublicApiGenerator;
using VerifyXunit;
using Xunit;

namespace NetEscapades.AspNetCore.SecurityHeaders.TagHelpers.Test;

[UsesVerify]
public class PublicApiTest
{
[Fact]
public Task PublicApiHasNotChanged()
{
var assembly = typeof(HashTagHelper).Assembly;
var options = new ApiGeneratorOptions
{
ExcludeAttributes =
[
typeof(InternalsVisibleToAttribute).FullName,
"System.Runtime.CompilerServices.IsByRefLike",
typeof(TargetFrameworkAttribute).FullName,
],
DenyNamespacePrefixes = []
};

var publicApi = assembly.GeneratePublicApi(options);

return Verifier.Verify(publicApi);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<Authors>Andrew Lock</Authors>
<TargetFrameworks>net461;netcoreapp2.0;netcoreapp3.0</TargetFrameworks>
<TargetFrameworks>net462;netcoreapp2.0;netcoreapp3.0</TargetFrameworks>
<TargetFrameworks Condition="'$(OS)' != 'Windows_NT'">netcoreapp2.0;netcoreapp3.0</TargetFrameworks>
<AssemblyName>NetEscapades.AspNetCore.SecurityHeaders.Test</AssemblyName>
<PackageId>NetEscapades.AspNetCore.SecurityHeaders.Test</PackageId>
Expand All @@ -15,9 +15,11 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="PublicApiGenerator" Version="11.1.0" />
<PackageReference Include="Verify.Xunit" Version="18.4.0" />
<PackageReference Include="FluentAssertions" Version="4.19.4" />
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
<PackageReference Include="System.Diagnostics.Process" Version="4.3.0" />
<PackageReference Include="System.Diagnostics.TraceSource" Version="4.3.0" />
Expand Down
Loading

0 comments on commit b2686a0

Please sign in to comment.