Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit 44e227e

Browse files
imcarolwangshmao
authored andcommitted
Add canonicalization test (#19693)
* One more test for canonicalization feature * Remove test code about System.IdentityModel.CanonicalizationDriver.
1 parent 2cbad51 commit 44e227e

21 files changed

+2870
-0
lines changed

src/System.Runtime.Serialization.Xml/tests/Canonicalization/Canonicalization.Tests.csproj

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
44
<PropertyGroup>
55
<ProjectGuid>{D3AD82FC-051D-4121-8E48-B13CE8024776}</ProjectGuid>
6+
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
67
</PropertyGroup>
78
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Debug|AnyCPU'" />
89
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Release|AnyCPU'" />
@@ -19,6 +20,15 @@
1920
<Compile Include="$(CommonTestPath)\System\IO\TempFile.cs">
2021
<Link>Common\System\IO\TempFile.cs</Link>
2122
</Compile>
23+
<Compile Include="CryptoCanonicalization\AncestralNamespaceContextProviderProxy.cs" />
24+
<Compile Include="CryptoCanonicalization\CanonicalEncoder.cs" />
25+
<Compile Include="CryptoCanonicalization\CanonicalWriter.cs" />
26+
<Compile Include="CryptoCanonicalization\Engine.cs" />
27+
<Compile Include="CryptoCanonicalization\ExclusiveCanonicalNamespaceManager.cs" />
28+
<Compile Include="CryptoCanonicalization\Pool.cs" />
29+
<Compile Include="CryptoCanonicalization\SimpleXmlNodeList.cs" />
30+
<Compile Include="CryptoCanonicalization\XmlBuffer.cs" />
31+
<Compile Include="CryptoCanonicalization\XPathHelper.cs" />
2232
</ItemGroup>
2333
<ItemGroup>
2434
<Content Include="$(TestSourceFolder)baselines\ReaderWriter_C14N_BaselineXML.xml">
@@ -39,6 +49,33 @@
3949
<Content Include="$(TestSourceFolder)TestsConfig.xml">
4050
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
4151
</Content>
52+
<Content Include="baselines\AttrNorm.xml">
53+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
54+
</Content>
55+
<Content Include="baselines\AttrSort.xml">
56+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
57+
</Content>
58+
<Content Include="baselines\Boundary.xml">
59+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
60+
</Content>
61+
<Content Include="baselines\CharEntities.xml">
62+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
63+
</Content>
64+
<Content Include="baselines\ExcC14nSpecExample1.xml">
65+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
66+
</Content>
67+
<Content Include="baselines\ExcC14nSpecExample2.xml">
68+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
69+
</Content>
70+
<Content Include="baselines\InclusiveImport.xml">
71+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
72+
</Content>
73+
<Content Include="baselines\LineFeedNorm.xml">
74+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
75+
</Content>
76+
<Content Include="baselines\SoapMessage1.xml">
77+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
78+
</Content>
4279
</ItemGroup>
4380
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
4481
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
5+
using System.Xml;
6+
7+
namespace System.Runtime.Serialization.Xml.Canonicalization.Tests
8+
{
9+
internal interface IAncestralNamespaceContextProvider
10+
{
11+
string CurrentNodeName { get; }
12+
13+
string LookupNamespace(string prefix);
14+
}
15+
16+
public static class AncestralNamespaceContextProviderProxy
17+
{
18+
public static object CreateContextProvider(XmlReader reader)
19+
{
20+
return new ReaderAncestralNamespaceContextProvider(reader);
21+
}
22+
23+
private sealed class ReaderAncestralNamespaceContextProvider : IAncestralNamespaceContextProvider
24+
{
25+
private XmlReader _reader;
26+
27+
public ReaderAncestralNamespaceContextProvider(XmlReader reader)
28+
{
29+
_reader = reader;
30+
}
31+
32+
public string CurrentNodeName
33+
{
34+
get { return _reader.Name; }
35+
}
36+
37+
public string LookupNamespace(string prefix)
38+
{
39+
return _reader.LookupNamespace(prefix);
40+
}
41+
}
42+
}
43+
}

0 commit comments

Comments
 (0)