Files
2023-04-16 20:11:40 +08:00

142 lines
4.6 KiB
C#

namespace Fluent.Tests.Controls
{
using System.Linq;
using Fluent.Tests.TestClasses;
using FluentTest.Commanding;
using NUnit.Framework;
[TestFixture]
public class SplitButtonTests
{
[Test]
public void Command_Should_Not_Disable_Control()
{
var splitButton = new SplitButton
{
Command = new RelayCommand(null, () => false)
};
using (new TestRibbonWindow(splitButton))
{
splitButton.ApplyTemplate();
Assert.That(splitButton.IsEnabled, Is.True);
var partButton = splitButton.Template.FindName("PART_Button", splitButton) as ToggleButton;
Assert.That(partButton, Is.Not.Null);
Assert.That(partButton.IsEnabled, Is.False);
splitButton.Command = new RelayCommand(null, () => true);
Assert.That(splitButton.IsEnabled, Is.True);
Assert.That(partButton.IsEnabled, Is.True);
}
}
[Test]
public void Disabling_Control_Should_Disable_Popup()
{
var splitButton = new SplitButton
{
Command = new RelayCommand(null, () => false)
};
using (new TestRibbonWindow(splitButton))
{
splitButton.ApplyTemplate();
Assert.That(splitButton.IsEnabled, Is.True);
var dummyButton = new Button();
splitButton.Items.Add(dummyButton);
Assert.That(dummyButton.IsEnabled, Is.True);
splitButton.IsDropDownOpen = true;
splitButton.IsEnabled = false;
Assert.That(splitButton.IsEnabled, Is.False);
Assert.That(dummyButton.IsEnabled, Is.False);
splitButton.IsDropDownOpen = false;
Assert.That(splitButton.IsEnabled, Is.False);
Assert.That(dummyButton.IsEnabled, Is.False);
}
}
[Test]
public void KeyTips_Should_Have_Postfix()
{
{
var splitButton = new SplitButton
{
KeyTip = "Z"
};
using (new TestRibbonWindow(splitButton))
{
var keyTipInformations = splitButton.GetKeyTipInformations(false).ToList();
Assert.That(keyTipInformations, Has.Count.EqualTo(2));
Assert.That(keyTipInformations[0].Keys, Is.EqualTo("ZA"));
Assert.That(keyTipInformations[1].Keys, Is.EqualTo("ZB"));
}
}
{
var splitButton = new SplitButton
{
KeyTip = "Z",
PrimaryActionKeyTipPostfix = "X",
SecondaryActionKeyTipPostfix = "Y"
};
using (new TestRibbonWindow(splitButton))
{
var keyTipInformations = splitButton.GetKeyTipInformations(false).ToList();
Assert.That(keyTipInformations, Has.Count.EqualTo(2));
Assert.That(keyTipInformations[0].Keys, Is.EqualTo("ZX"));
Assert.That(keyTipInformations[1].Keys, Is.EqualTo("ZY"));
}
}
}
[Test]
public void KeyTips_Should_Work_With_Secondary_KeyTip()
{
{
var splitButton = new SplitButton
{
SecondaryKeyTip = "Z"
};
using (new TestRibbonWindow(splitButton))
{
var keyTipInformations = splitButton.GetKeyTipInformations(false).ToList();
Assert.That(keyTipInformations, Has.Count.EqualTo(1));
Assert.That(keyTipInformations[0].Keys, Is.EqualTo("Z"));
}
}
{
var splitButton = new SplitButton
{
KeyTip = "X",
SecondaryKeyTip = "Z"
};
using (new TestRibbonWindow(splitButton))
{
var keyTipInformations = splitButton.GetKeyTipInformations(false).ToList();
Assert.That(keyTipInformations, Has.Count.EqualTo(2));
Assert.That(keyTipInformations[0].Keys, Is.EqualTo("X"));
Assert.That(keyTipInformations[1].Keys, Is.EqualTo("Z"));
}
}
}
}
}