summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2017-06-21 15:31:44 +0200
committerStephane Delcroix <stephane@delcroix.org>2017-06-21 15:31:44 +0200
commitded7d4e17b06a30e3e004f49f5bf2f3399a23548 (patch)
tree6c65ba35b71988bff434eb890a33927341edb193
parentc6f547b298f95a35e5fa16eca6fd7b8b6a0a0920 (diff)
downloadxamarin-forms-ded7d4e17b06a30e3e004f49f5bf2f3399a23548.tar.gz
xamarin-forms-ded7d4e17b06a30e3e004f49f5bf2f3399a23548.tar.bz2
xamarin-forms-ded7d4e17b06a30e3e004f49f5bf2f3399a23548.zip
[test] passing test for 32896
-rw-r--r--Xamarin.Forms.Core.UnitTests/TriggerTests.cs29
1 files changed, 29 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core.UnitTests/TriggerTests.cs b/Xamarin.Forms.Core.UnitTests/TriggerTests.cs
index 1fe16669..655310be 100644
--- a/Xamarin.Forms.Core.UnitTests/TriggerTests.cs
+++ b/Xamarin.Forms.Core.UnitTests/TriggerTests.cs
@@ -112,5 +112,34 @@ namespace Xamarin.Forms.Core.UnitTests
Assert.False (enteraction.Invoked);
Assert.True (exitaction.Invoked);
}
+
+ [Test]
+ // https://bugzilla.xamarin.com/show_bug.cgi?id=32896
+ public void SettersWithBindingsUnappliedIfConditionIsFalse()
+ {
+ var conditionbp = BindableProperty.Create("foo", typeof(string), typeof(BindableObject), null);
+ var setterbp = BindableProperty.Create("bar", typeof(string), typeof(BindableObject), null);
+ var element = new MockElement();
+ var trigger = new Trigger(typeof(VisualElement))
+ {
+ Property = conditionbp,
+ Value = "foobar",
+ Setters = {
+ new Setter { Property = setterbp, Value = new Binding(".", source: "Qux") },
+ }
+ };
+
+ element.SetValue(setterbp, "default");
+ element.Triggers.Add(trigger);
+ Assume.That(element.GetValue(setterbp), Is.EqualTo("default"));
+
+ //sets the condition to true
+ element.SetValue(conditionbp, "foobar");
+ Assume.That(element.GetValue(setterbp), Is.EqualTo("Qux"));
+
+ //unsets the condition
+ element.SetValue(conditionbp, "baz");
+ Assert.That(element.GetValue(setterbp), Is.EqualTo("default"));
+ }
}
} \ No newline at end of file