Browse Source

fix bugs in unit tests

pull/275/merge
Siegfried Pammer 15 years ago
parent
commit
2f349f4781
  1. 3
      ILSpy.BamlDecompiler/CecilType.cs
  2. 2
      ILSpy.BamlDecompiler/CecilTypeResolver.cs
  3. 26
      ILSpy.BamlDecompiler/Tests/Cases/AvalonDockCommon.xaml
  4. 5
      ILSpy.BamlDecompiler/Tests/TestRunner.cs

3
ILSpy.BamlDecompiler/CecilType.cs

@ -38,6 +38,9 @@ namespace ILSpy.BamlDecompiler
var t = this.type; var t = this.type;
if (t == ct.type)
return false;
while (t != null) { while (t != null) {
if (t == ct.type) if (t == ct.type)
return true; return true;

2
ILSpy.BamlDecompiler/CecilTypeResolver.cs

@ -54,7 +54,7 @@ namespace ILSpy.BamlDecompiler
} }
if (type == null) { if (type == null) {
var otherAssembly = resolver.Resolve(assemblyName); var otherAssembly = resolver.Resolve(AssemblyNameReference.Parse(assemblyName));
if (otherAssembly == null) if (otherAssembly == null)
return new UnresolvableType(name); return new UnresolvableType(name);
type = otherAssembly.MainModule.GetType(fullName.Replace('+', '/')); type = otherAssembly.MainModule.GetType(fullName.Replace('+', '/'));

26
ILSpy.BamlDecompiler/Tests/Cases/AvalonDockCommon.xaml

@ -17,8 +17,8 @@
<MenuItem Command="ad:DocumentContentCommands.TabbedDocument" /> <MenuItem Command="ad:DocumentContentCommands.TabbedDocument" />
</ContextMenu> </ContextMenu>
<Style x:Key="{x:Type ad:Resizer}" TargetType="{x:Type ad:Resizer}"> <Style x:Key="{x:Type ad:Resizer}" TargetType="{x:Type ad:Resizer}">
<Setter Property="Background" Value="#00FFFFFF" /> <Setter Property="Control.Background" Value="#00FFFFFF" />
<Setter Property="Template"> <Setter Property="Control.Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type ad:Resizer}"> <ControlTemplate TargetType="{x:Type ad:Resizer}">
<Border Background="{TemplateBinding Control.Background}" /> <Border Background="{TemplateBinding Control.Background}" />
@ -27,17 +27,17 @@
</Setter> </Setter>
</Style> </Style>
<Style x:Key="PaneHeaderCommandStyle" TargetType="{x:Type Button}"> <Style x:Key="PaneHeaderCommandStyle" TargetType="{x:Type Button}">
<Setter Property="Template"> <Setter Property="Control.Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Button}"> <ControlTemplate TargetType="{x:Type Button}">
<Border Name="PaneHeaderCommandIntBorder" Background="#00FFFFFF" BorderThickness="1" Margin="0" Opacity="0.8"> <Border Name="PaneHeaderCommandIntBorder" Background="#00FFFFFF" BorderThickness="1" Margin="0" Opacity="0.8">
<ContentPresenter /> <ContentPresenter />
</Border> </Border>
<ControlTemplate.Triggers> <ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"> <Trigger Property="UIElement.IsMouseOver" Value="True">
<Setter TargetName="PaneHeaderCommandIntBorder" Value="{DynamicResource {ComponentResourceKey {x:Type ad:DockingManager}, {x:Static ad:AvalonDockBrushes.PaneHeaderCommandBorderBrush}}}" Property="BorderBrush" /> <Setter TargetName="PaneHeaderCommandIntBorder" Value="{DynamicResource {ComponentResourceKey {x:Type ad:DockingManager}, {x:Static ad:AvalonDockBrushes.PaneHeaderCommandBorderBrush}}}" Property="Border.BorderBrush" />
<Setter TargetName="PaneHeaderCommandIntBorder" Value="{DynamicResource {ComponentResourceKey {x:Type ad:DockingManager}, {x:Static ad:AvalonDockBrushes.PaneHeaderCommandBackground}}}" Property="Background" /> <Setter TargetName="PaneHeaderCommandIntBorder" Value="{DynamicResource {ComponentResourceKey {x:Type ad:DockingManager}, {x:Static ad:AvalonDockBrushes.PaneHeaderCommandBackground}}}" Property="Border.Background" />
<Setter TargetName="PaneHeaderCommandIntBorder" Property="Opacity" Value="1" /> <Setter TargetName="PaneHeaderCommandIntBorder" Property="UIElement.Opacity" Value="1" />
</Trigger> </Trigger>
</ControlTemplate.Triggers> </ControlTemplate.Triggers>
</ControlTemplate> </ControlTemplate>
@ -45,13 +45,13 @@
</Setter> </Setter>
</Style> </Style>
<Style x:Key="PaneHeaderContextMenuCommandStyle" TargetType="{x:Type Border}"> <Style x:Key="PaneHeaderContextMenuCommandStyle" TargetType="{x:Type Border}">
<Setter Property="Background" Value="#00FFFFFF" /> <Setter Property="Border.Background" Value="#00FFFFFF" />
<Setter Property="BorderThickness" Value="1" /> <Setter Property="Border.BorderThickness" Value="1" />
<Style.Triggers> <Style.Triggers>
<Trigger Property="IsMouseOver" Value="True"> <Trigger Property="UIElement.IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="{DynamicResource {ComponentResourceKey {x:Type ad:DockingManager}, {x:Static ad:AvalonDockBrushes.PaneHeaderCommandBorderBrush}}}" /> <Setter Property="Border.BorderBrush" Value="{DynamicResource {ComponentResourceKey {x:Type ad:DockingManager}, {x:Static ad:AvalonDockBrushes.PaneHeaderCommandBorderBrush}}}" />
<Setter Property="Background" Value="{DynamicResource {ComponentResourceKey {x:Type ad:DockingManager}, {x:Static ad:AvalonDockBrushes.PaneHeaderCommandBackground}}}" /> <Setter Property="Border.Background" Value="{DynamicResource {ComponentResourceKey {x:Type ad:DockingManager}, {x:Static ad:AvalonDockBrushes.PaneHeaderCommandBackground}}}" />
<Setter Property="Opacity" Value="1" /> <Setter Property="UIElement.Opacity" Value="1" />
</Trigger> </Trigger>
</Style.Triggers> </Style.Triggers>
</Style> </Style>

5
ILSpy.BamlDecompiler/Tests/TestRunner.cs

@ -75,11 +75,12 @@ namespace ILSpy.BamlDecompiler.Tests
void RunTest(string name, string asmPath, string sourcePath) void RunTest(string name, string asmPath, string sourcePath)
{ {
var assembly = AssemblyDefinition.ReadAssembly(asmPath); var resolver = new DefaultAssemblyResolver();
var assembly = AssemblyDefinition.ReadAssembly(asmPath, new ReaderParameters { AssemblyResolver = resolver });
Resource res = assembly.MainModule.Resources.First(); Resource res = assembly.MainModule.Resources.First();
Stream bamlStream = LoadBaml(res, name + ".baml"); Stream bamlStream = LoadBaml(res, name + ".baml");
Assert.IsNotNull(bamlStream); Assert.IsNotNull(bamlStream);
XDocument document = BamlResourceEntryNode.LoadIntoDocument(new DefaultAssemblyResolver(), assembly, bamlStream); XDocument document = BamlResourceEntryNode.LoadIntoDocument(resolver, assembly, bamlStream);
CodeAssert.AreEqual(File.ReadAllText(sourcePath), document.ToString()); CodeAssert.AreEqual(File.ReadAllText(sourcePath), document.ToString());
} }

Loading…
Cancel
Save