Wrote a test and made layer highlight more intentional

This commit is contained in:
LarsBrubaker 2020-08-29 20:05:35 -07:00
parent dc55ac655f
commit e49deacdec
7 changed files with 135 additions and 64 deletions

View file

@ -210,9 +210,9 @@ namespace MatterControl.Tests.MatterControl
var settingsByName = PrinterSettings.SettingsData;
var allSettings = settingsByName.Values;
foreach(var boundSetting in allSettings.Where(s => s.SetSettingsOnChange.Count > 0))
foreach (var boundSetting in allSettings.Where(s => s.SetSettingsOnChange.Count > 0))
{
foreach(var linkedSetting in boundSetting.SetSettingsOnChange)
foreach (var linkedSetting in boundSetting.SetSettingsOnChange)
{
// TargetSetting definition must exist
Assert.IsTrue(linkedSetting.TryGetValue("TargetSetting", out string targetSettingSource), "TargetSetting field should exist");
@ -241,10 +241,11 @@ namespace MatterControl.Tests.MatterControl
PrinterSettings GetProfile(string[] settings)
{
Dictionary<string, string> dictionary = new Dictionary<string, string>();
for(int i=0; i<settings.Length; i+=2)
for (int i = 0; i < settings.Length; i += 2)
{
dictionary.Add(settings[i], settings[i + 1]);
}
var profile = new PrinterSettings()
{
OemLayer = new PrinterSettingsLayer(dictionary)

View file

@ -281,6 +281,70 @@ namespace MatterControl.Tests.MatterControl
});
}
[Test]
public void CorrectStyleForSettingsRow()
{
var settings = new PrinterSettings();
var printer = new PrinterConfig(settings);
settings.OemLayer = new PrinterSettingsLayer();
settings.QualityLayer = new PrinterSettingsLayer();
settings.MaterialLayer = new PrinterSettingsLayer();
Assert.AreEqual(0, settings.UserLayer.Count);
var theme = new ThemeConfig();
var settingsContext = new SettingsContext(printer, null, NamedSettingsLayers.All);
var key = SettingsKey.layer_height;
void TestStyle(Color color, bool restoreButton)
{
var data = SliceSettingsRow.GetStyleData(printer, theme, settingsContext, key, true);
Assert.AreEqual(color, data.highlightColor);
Assert.AreEqual(restoreButton, data.showRestoreButton);
}
// make sure all the colors are different
Assert.AreNotEqual(Color.Transparent, theme.PresetColors.MaterialPreset);
Assert.AreNotEqual(Color.Transparent, theme.PresetColors.QualityPreset);
Assert.AreNotEqual(theme.PresetColors.MaterialPreset, theme.PresetColors.QualityPreset);
Assert.AreNotEqual(theme.PresetColors.MaterialPreset, theme.PresetColors.UserOverride);
Assert.AreNotEqual(theme.PresetColors.QualityPreset, theme.PresetColors.UserOverride);
// nothing set no override
TestStyle(Color.Transparent, false);
// user override
settings.UserLayer[key] = "123";
TestStyle(theme.PresetColors.UserOverride, true);
settings.UserLayer.Remove(key);
// Quality override
settings.QualityLayer[key] = "123";
TestStyle(theme.PresetColors.QualityPreset, false);
settings.QualityLayer.Remove(key);
// Material override
settings.MaterialLayer[key] = "123";
TestStyle(theme.PresetColors.MaterialPreset, false);
settings.MaterialLayer.Remove(key);
// user override that is the same as the default
settings.UserLayer[key] = settings.BaseLayer[key];
TestStyle(Color.Transparent, false);
settings.UserLayer.Remove(key);
// Quality override same as default
settings.QualityLayer[key] = settings.BaseLayer[key];
TestStyle(theme.PresetColors.QualityPreset, false);
settings.QualityLayer.Remove(key);
// Material override same as default
settings.MaterialLayer[key] = settings.BaseLayer[key];
TestStyle(theme.PresetColors.MaterialPreset, false);
settings.MaterialLayer.Remove(key);
}
[Test]
public void RightClickMenuWorksOnSliceSettings()
{