From 469ac1479dc4464d87516d1a83de0f1b2b957a6b Mon Sep 17 00:00:00 2001 From: Johannes Theiner Date: Thu, 5 Dec 2019 09:49:54 +0100 Subject: [PATCH] ~ test if text has been cleared ~ test for negative values for set pixel --- src/vkvm.cpp | 7 ++++++- test/area_test.cpp | 5 +++-- test/event_test.cpp | 22 +++++++++++----------- test/text_test.cpp | 6 +++++- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/vkvm.cpp b/src/vkvm.cpp index d48d36b..9e42e38 100644 --- a/src/vkvm.cpp +++ b/src/vkvm.cpp @@ -118,6 +118,9 @@ namespace vkvm { } auto getPixel(int x, int y) -> Color { + if(x < 0 || y < 0) { + return getBackgroundColor(); + } if (x > getWidth() || y > getHeight()) { return getBackgroundColor(); } @@ -180,7 +183,9 @@ namespace vkvm { } auto getText() -> std::string { - return std::string(getTextArea()); + std::string text = getTextArea(); + + return text.substr(0, getCharactersPerColumn() * getCharactersPerRow()); } auto clearText() -> bool { diff --git a/test/area_test.cpp b/test/area_test.cpp index a91ac75..3306598 100644 --- a/test/area_test.cpp +++ b/test/area_test.cpp @@ -3,7 +3,6 @@ TEST_CASE("AREA") { vkvm::initialize(0); - vkvm::setMode(vkvm::RGB); vkvm::setWidth(200); vkvm::setHeight(200); @@ -13,10 +12,12 @@ TEST_CASE("AREA") { } SECTION("Out of bounds") { - REQUIRE_FALSE(vkvm::setPixel(400, 400, vkvm::white)); REQUIRE(vkvm::getPixel(400, 400) == vkvm::black); + REQUIRE_FALSE(vkvm::setPixel(-5, -5, vkvm::white)); + REQUIRE(vkvm::getPixel(-5, -5) == vkvm::black); + vkvm::setBackgroundColor(vkvm::blue); REQUIRE(vkvm::getPixel(400, 400) == vkvm::blue); diff --git a/test/event_test.cpp b/test/event_test.cpp index eeb9c78..64275c1 100644 --- a/test/event_test.cpp +++ b/test/event_test.cpp @@ -7,26 +7,26 @@ TEST_CASE("Event") { SECTION("Register") { bool mouseMove = false; - bool timer = false; - bool timer2 = false; + bool keyup = false; + bool keyup2 = false; vkvm::registerEvent(vkvm::MouseMove, [&]() { mouseMove = true; }); - vkvm::registerEvent(vkvm::Timer, [&]() { - timer = true; + vkvm::registerEvent(vkvm::KeyUp, [&]() { + keyup = true; }); - vkvm::registerEvent(vkvm::Timer, [&]() { - timer2 = true; + vkvm::registerEvent(vkvm::KeyUp, [&]() { + keyup2 = true; }); REQUIRE_FALSE(mouseMove); vkvm::callEvent(vkvm::MouseMove); REQUIRE(mouseMove); - REQUIRE_FALSE(timer); - REQUIRE_FALSE(timer2); - vkvm::callEvent(vkvm::Timer); - REQUIRE(timer); - REQUIRE(timer2); + REQUIRE_FALSE(keyup); + REQUIRE_FALSE(keyup2); + vkvm::callEvent(vkvm::KeyUp); + REQUIRE(keyup); + REQUIRE(keyup2); } } diff --git a/test/text_test.cpp b/test/text_test.cpp index e26baf0..8996f16 100644 --- a/test/text_test.cpp +++ b/test/text_test.cpp @@ -20,5 +20,9 @@ TEST_CASE("Text") { REQUIRE(vkvm::getCharactersPerRow() == 1); REQUIRE(vkvm::setText("Hello World")); - REQUIRE(vkvm::getText() == "Hello World"); + REQUIRE(vkvm::getText() == "Hello"); + + REQUIRE(vkvm::clearText()); + + REQUIRE(vkvm::getText().empty()); } \ No newline at end of file