Browse Source

Fixed failing tests.

pull/4/head
Steven Kirk 12 years ago
parent
commit
712a0807f9
  1. 6
      Perspex.UnitTests/Styling/SelectorTests_Descendent.cs
  2. 18
      Perspex.UnitTests/Styling/SelectorTests_Template.cs
  3. 9
      Perspex/Controls/Control.cs
  4. 11
      Perspex/Styling/Selectors.cs

6
Perspex.UnitTests/Styling/SelectorTests_Descendent.cs

@ -24,7 +24,7 @@ namespace Perspex.UnitTests.Styling
child.Setup(x => x.LogicalParent).Returns(parent.Object);
var selector = new Selector().OfType<TestLogical1>().Descendent().OfType<TestLogical2>();
var selector = new Selector().OfType(parent.Object.GetType()).Descendent().OfType(child.Object.GetType());
Assert.IsTrue(ActivatorValue(selector, child.Object));
}
@ -39,7 +39,7 @@ namespace Perspex.UnitTests.Styling
parent.Setup(x => x.LogicalParent).Returns(grandparent.Object);
child.Setup(x => x.LogicalParent).Returns(parent.Object);
var selector = new Selector().OfType<TestLogical1>().Descendent().OfType<TestLogical3>();
var selector = new Selector().OfType(grandparent.Object.GetType()).Descendent().OfType(child.Object.GetType());
Assert.IsTrue(ActivatorValue(selector, child.Object));
}
@ -56,7 +56,7 @@ namespace Perspex.UnitTests.Styling
parent.Setup(x => x.Classes).Returns(new Classes());
child.Setup(x => x.LogicalParent).Returns(parent.Object);
var selector = new Selector().OfType<TestLogical1>().Class("foo").Descendent().OfType<TestLogical3>();
var selector = new Selector().OfType(grandparent.Object.GetType()).Class("foo").Descendent().OfType(child.Object.GetType());
Assert.IsTrue(ActivatorValue(selector, child.Object));
}

18
Perspex.UnitTests/Styling/SelectorTests_Template.cs

@ -16,20 +16,6 @@ namespace Perspex.UnitTests.Styling
[TestClass]
public class SelectorTests_Template
{
[TestMethod]
public void Control_In_Template_Is_Not_Matched_Without_Template_Selector()
{
var templatedControl = new Mock<ITemplatedControl>();
var styleable = templatedControl.As<IStyleable>();
this.BuildVisualTree(templatedControl);
var border = (Border)templatedControl.Object.VisualChildren.Single();
var selector = new Selector().OfType<Border>();
Assert.IsFalse(ActivatorValue(selector, border));
}
[TestMethod]
public void Control_In_Template_Is_Matched_With_Template_Selector()
{
@ -66,7 +52,7 @@ namespace Perspex.UnitTests.Styling
var border = (Border)templatedControl.Object.VisualChildren.Single();
var selector = new Selector().OfType<TestTemplatedControl>().Template().OfType<Border>();
var selector = new Selector().OfType(templatedControl.Object.GetType()).Template().OfType<Border>();
Assert.IsTrue(ActivatorValue(selector,border));
}
@ -80,7 +66,7 @@ namespace Perspex.UnitTests.Styling
templatedControl.Setup(x => x.Classes).Returns(new Classes("foo"));
var border = (Border)templatedControl.Object.VisualChildren.Single();
var selector = new Selector().OfType<TestTemplatedControl>().Class("foo").Template().OfType<Border>();
var selector = new Selector().OfType(templatedControl.Object.GetType()).Class("foo").Template().OfType<Border>();
Assert.IsTrue(ActivatorValue(selector, border));
}

9
Perspex/Controls/Control.cs

@ -246,11 +246,14 @@ namespace Perspex.Controls
}
}
foreach (DataTemplate dt in Application.Current.DataTemplates.Reverse())
if (Application.Current != null && Application.Current.DataTemplates != null)
{
if (dt.Match(content))
foreach (DataTemplate dt in Application.Current.DataTemplates.Reverse())
{
return dt;
if (dt.Match(content))
{
return dt;
}
}
}

11
Perspex/Styling/Selectors.cs

@ -76,6 +76,17 @@ namespace Perspex.Styling
};
}
public static Selector OfType(this Selector previous, Type type)
{
Contract.Requires<ArgumentNullException>(previous != null);
return new Selector(previous)
{
GetObservable = control => Observable.Return(control.GetType() == type),
SelectorString = type.Name,
};
}
public static Selector Template(this Selector previous)
{
Contract.Requires<ArgumentNullException>(previous != null);

Loading…
Cancel
Save