diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs
index 3d1a5cb566..34bb071aef 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Reactive.Subjects;
using System.Text;
using System.Threading.Tasks;
using Avalonia.Controls;
@@ -41,7 +42,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
}
[Fact]
- public void ResolvesStreamBindingCorrectly()
+ public void ResolvesStreamTaskBindingCorrectly()
{
using (UnitTestApplication.Start(TestServices.StyledWindow))
{
@@ -68,6 +69,38 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
Assert.Equal(dataContext.TaskProperty.Result, textBlock.Text);
}
}
+
+ [Fact]
+ public void ResolvesStreamObservableBindingCorrectly()
+ {
+ using (UnitTestApplication.Start(TestServices.StyledWindow))
+ {
+ var xaml = @"
+
+
+";
+ var loader = new AvaloniaXamlLoader();
+ var window = (Window)loader.Load(xaml);
+ var textBlock = window.FindControl("textBlock");
+
+ DelayedBinding.ApplyBindings(textBlock);
+
+ var subject = new Subject();
+ var dataContext = new TestDataContext
+ {
+ ObservableProperty = subject
+ };
+
+ window.DataContext = dataContext;
+
+ subject.OnNext("foobar");
+
+ Assert.Equal("foobar", textBlock.Text);
+ }
+ }
}
public class TestDataContext
@@ -75,5 +108,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
public string StringProperty { get; set; }
public Task TaskProperty { get; set; }
+
+ public IObservable ObservableProperty { get; set; }
}
}