Browse Source

Added failing test for #1898.

Plus a couple of other empty binding path tests.
pull/2341/head
Steven Kirk 7 years ago
parent
commit
d37615bea8
  1. 33
      tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs
  2. 9
      tests/Avalonia.Markup.UnitTests/Parsers/ExpressionNodeBuilderTests.cs
  3. 7
      tests/Avalonia.Markup.UnitTests/Parsers/ExpressionNodeBuilderTests_Errors.cs

33
tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs

@ -273,6 +273,39 @@ namespace Avalonia.Markup.UnitTests.Data
Assert.Equal(42, target.Value);
}
[Fact]
public void Null_Path_Should_Bind_To_DataContext()
{
var target = new TextBlock { DataContext = "foo" };
var binding = new Binding();
target.Bind(TextBlock.TextProperty, binding);
Assert.Equal("foo", target.Text);
}
[Fact]
public void Empty_Path_Should_Bind_To_DataContext()
{
var target = new TextBlock { DataContext = "foo" };
var binding = new Binding { Path = string.Empty };
target.Bind(TextBlock.TextProperty, binding);
Assert.Equal("foo", target.Text);
}
[Fact]
public void Dot_Path_Should_Bind_To_DataContext()
{
var target = new TextBlock { DataContext = "foo" };
var binding = new Binding { Path = "." };
target.Bind(TextBlock.TextProperty, binding);
Assert.Equal("foo", target.Text);
}
/// <summary>
/// Tests a problem discovered with ListBox with selection.
/// </summary>

9
tests/Avalonia.Markup.UnitTests/Parsers/ExpressionNodeBuilderTests.cs

@ -36,6 +36,15 @@ namespace Avalonia.Markup.UnitTests.Parsers
AssertIsProperty(result[0], "F0o");
}
[Fact]
public void Should_Build_Dot()
{
var result = ToList(ExpressionObserverBuilder.Parse("."));
Assert.Equal(1, result.Count);
Assert.IsType<EmptyExpressionNode>(result[0]);
}
[Fact]
public void Should_Build_Property_Chain()
{

7
tests/Avalonia.Markup.UnitTests/Parsers/ExpressionNodeBuilderTests_Errors.cs

@ -30,6 +30,13 @@ namespace Avalonia.Markup.UnitTests.Parsers
() => ExpressionObserverBuilder.Parse("Foo.Bar."));
}
[Fact]
public void Expression_Cannot_Start_With_Period_Then_Token()
{
Assert.Throws<ExpressionParseException>(
() => ExpressionObserverBuilder.Parse(".Bar"));
}
[Fact]
public void Expression_Cannot_Have_Empty_Indexer()
{

Loading…
Cancel
Save