mirror of
https://github.com/Microsoft/calculator.git
synced 2025-08-20 13:23:13 -07:00
Add functional tests for currency fraction digit format
This commit is contained in:
parent
24f3fb2ad6
commit
bd8aab3384
3 changed files with 80 additions and 0 deletions
|
@ -13,5 +13,7 @@ namespace CalculatorUITestFramework
|
||||||
public NumberPad NumberPad = new NumberPad();
|
public NumberPad NumberPad = new NumberPad();
|
||||||
public WindowsElement ClearButton => this.session.TryFindElementByAccessibilityId("ClearEntryButtonPos0");
|
public WindowsElement ClearButton => this.session.TryFindElementByAccessibilityId("ClearEntryButtonPos0");
|
||||||
public WindowsElement BackSpaceButton => this.session.TryFindElementByAccessibilityId("BackSpaceButtonSmall");
|
public WindowsElement BackSpaceButton => this.session.TryFindElementByAccessibilityId("BackSpaceButtonSmall");
|
||||||
|
public WindowsElement Units1 => this.session.TryFindElementByAccessibilityId("Units1");
|
||||||
|
public WindowsElement Units2 => this.session.TryFindElementByAccessibilityId("Units2");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,5 +64,35 @@ namespace CalculatorUITestFramework
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ensure Units1 and Units2 are the same
|
||||||
|
/// </summary>
|
||||||
|
public void EnsureSameUnitsAreSelected()
|
||||||
|
{
|
||||||
|
SelectUnits1("United States - Dollar");
|
||||||
|
SelectUnits2("United States - Dollar");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Select value in Units1 ComboBox
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="value">Value in ComboBox Units1</param>
|
||||||
|
public void SelectUnits1(string value)
|
||||||
|
{
|
||||||
|
UnitConverterOperators.Units1.SendKeys(OpenQA.Selenium.Keys.Home);
|
||||||
|
UnitConverterOperators.Units1.SendKeys(value);
|
||||||
|
UnitConverterOperators.Units1.SendKeys(OpenQA.Selenium.Keys.Enter);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Select value in Units2 ComboBox
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="value">Value in ComboBox Units2</param>
|
||||||
|
public void SelectUnits2(string value)
|
||||||
|
{
|
||||||
|
UnitConverterOperators.Units2.SendKeys(OpenQA.Selenium.Keys.Home);
|
||||||
|
UnitConverterOperators.Units2.SendKeys(value);
|
||||||
|
UnitConverterOperators.Units2.SendKeys(OpenQA.Selenium.Keys.Enter);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,6 +42,7 @@ namespace CalculatorUITests
|
||||||
CalculatorApp.EnsureCalculatorHasFocus();
|
CalculatorApp.EnsureCalculatorHasFocus();
|
||||||
page.EnsureCalculatorIsCurrencyMode();
|
page.EnsureCalculatorIsCurrencyMode();
|
||||||
page.EnsureCalculatorResultTextIsZero();
|
page.EnsureCalculatorResultTextIsZero();
|
||||||
|
page.EnsureSameUnitsAreSelected();
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCleanup]
|
[TestCleanup]
|
||||||
|
@ -50,6 +51,23 @@ namespace CalculatorUITests
|
||||||
page.ClearAll();
|
page.ClearAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string NormalizeCurrencyText(string realValue, int fractionDigits)
|
||||||
|
{
|
||||||
|
if (!realValue.Contains('.')) return realValue;
|
||||||
|
|
||||||
|
var parts = realValue.Split('.');
|
||||||
|
if (parts[1].Length < fractionDigits)
|
||||||
|
{
|
||||||
|
parts[1] += new string('0', fractionDigits - parts[1].Length);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
parts[1] = parts[1].Substring(0, fractionDigits);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $"{parts[0]}.{parts[1]}".TrimEnd('.');
|
||||||
|
}
|
||||||
|
|
||||||
#region Basic UI Functionality via Mouse Input Tests
|
#region Basic UI Functionality via Mouse Input Tests
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// These automated tests verify clicking each of the buttons in the Calculator UI and getting an expected result
|
/// These automated tests verify clicking each of the buttons in the Calculator UI and getting an expected result
|
||||||
|
@ -129,6 +147,36 @@ namespace CalculatorUITests
|
||||||
Assert.AreEqual("0", page.UnitConverterResults.GetCalculationResult2Text()); //verifies Backspace button clicks
|
Assert.AreEqual("0", page.UnitConverterResults.GetCalculationResult2Text()); //verifies Backspace button clicks
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// These automated tests verify different currencies use different formatter that the display value should have expected fraction digits
|
||||||
|
/// Via mouse input, all basic UI functionality is checked
|
||||||
|
/// </summary>
|
||||||
|
[TestMethod]
|
||||||
|
[DataRow("Japan - Yen", 0)]
|
||||||
|
[DataRow("Korea - Won", 0)]
|
||||||
|
[DataRow("Tunisia - Dinar", 3)]
|
||||||
|
[DataRow("Jordan - Dinar", 3)]
|
||||||
|
[DataRow("China - Yuan", 2)]
|
||||||
|
[Priority(0)]
|
||||||
|
public void MouseInput_SelectCurrencyEnterInputWithDecimalAndCheckTheFractionDigits(string currency, int fractionDigits)
|
||||||
|
{
|
||||||
|
//Verifies fraction digits in given currency
|
||||||
|
page.SelectUnits1(currency);
|
||||||
|
Assert.AreEqual(currency.Replace(" - ", " "), page.UnitConverterOperators.Units1.Text); // Text is the AccessibleName of Unit
|
||||||
|
page.UnitConverterOperators.NumberPad.Num2Button.Click();
|
||||||
|
Assert.AreEqual(NormalizeCurrencyText("2", fractionDigits), page.UnitConverterResults.GetCalculationResult1Text()); //verifies 2 button
|
||||||
|
page.UnitConverterOperators.NumberPad.DecimalButton.Click();
|
||||||
|
Assert.AreEqual(NormalizeCurrencyText("2.", fractionDigits), page.UnitConverterResults.GetCalculationResult1Text()); //verifies decimal button
|
||||||
|
page.UnitConverterOperators.NumberPad.Num4Button.Click();
|
||||||
|
Assert.AreEqual(NormalizeCurrencyText("2.4", fractionDigits), page.UnitConverterResults.GetCalculationResult1Text()); //verifies 4 button
|
||||||
|
page.UnitConverterOperators.NumberPad.Num3Button.Click();
|
||||||
|
Assert.AreEqual(NormalizeCurrencyText("2.43", fractionDigits), page.UnitConverterResults.GetCalculationResult1Text()); //verifies 3 button
|
||||||
|
page.UnitConverterOperators.NumberPad.Num5Button.Click();
|
||||||
|
Assert.AreEqual(NormalizeCurrencyText("2.435", fractionDigits), page.UnitConverterResults.GetCalculationResult1Text()); //verifies 5 button
|
||||||
|
page.UnitConverterOperators.NumberPad.Num6Button.Click();
|
||||||
|
Assert.AreEqual(NormalizeCurrencyText("2.4356", fractionDigits), page.UnitConverterResults.GetCalculationResult1Text()); //verifies 6 button
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue