~aleteoryx/muditaos

41eced23b359f41eaa25a67ba83f3336bdc9ecf6 — Artur Śleszyński 5 years ago 46e0cd3
[EGD-6560] Do not clear "0" on Enter in calculator

Do not treat input string "0" as erroneous.
M module-apps/application-calculator/tests/CalculatorUtility_tests.cpp => module-apps/application-calculator/tests/CalculatorUtility_tests.cpp +18 -0
@@ 21,6 21,24 @@ TEST_CASE("Calculator utilities")
        REQUIRE(!result.isError);
    }

    SECTION("No operation")
    {
        auto result = calculator.calculate("0");
        REQUIRE(result.value == "0");
        REQUIRE(result.equation == "0");
        REQUIRE(!result.isError);

        result = calculator.calculate("1234");
        REQUIRE(result.value == "1234");
        REQUIRE(result.equation == "1234");
        REQUIRE(!result.isError);

        result = calculator.calculate("43211e6");
        REQUIRE(result.value == "4.321e10");
        REQUIRE(result.equation == "43211e6");
        REQUIRE(!result.isError);
    }

    SECTION("Addition")
    {
        auto result = calculator.calculate("5+4+8+6");

M module-apps/application-calculator/windows/CalculatorMainWindow.cpp => module-apps/application-calculator/windows/CalculatorMainWindow.cpp +2 -1
@@ 106,7 106,8 @@ namespace gui
                mathOperationInput->removeChar();
                return false;
            }
            if (!event.is(gui::KeyCode::KEY_0) && mathOperationInput->getText() == "0") {
            if (!event.is(gui::KeyCode::KEY_0) && !event.is(gui::KeyCode::KEY_ENTER) &&
                mathOperationInput->getText() == "0") {
                mathOperationInput->clear();
            }
            return false;