summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Makefile.am5
-rw-r--r--src/animatedsprite_unittest.cc200
2 files changed, 100 insertions, 105 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 2c706b0d1..11e9edc4d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1514,9 +1514,8 @@ TESTS = manaplustests
check_PROGRAMS = manaplustests
manaplustests_CXXFLAGS = ${manaplus_CXXFLAGS} \
-DUNITTESTS
-manaplustests_SOURCES = ${manaplus_SOURCES}
-#manaplustests_SOURCES = ${manaplus_SOURCES} \
-# animatedsprite_unittest.cc \
+manaplustests_SOURCES = ${manaplus_SOURCES} \
+ animatedsprite_unittest.cc
# gui/fonts/font_unittest.cc \
# gui/widgets/browserbox_unittest.cc \
# utils/files_unittest.cc \
diff --git a/src/animatedsprite_unittest.cc b/src/animatedsprite_unittest.cc
index c8c1e7d80..6555bf907 100644
--- a/src/animatedsprite_unittest.cc
+++ b/src/animatedsprite_unittest.cc
@@ -20,6 +20,7 @@
#include "animatedsprite.h"
+#include "catch.hpp"
#include "client.h"
#include "gui/theme.h"
@@ -29,14 +30,13 @@
#include "resources/sdlimagehelper.h"
#include "resources/spriteaction.h"
-#include "gtest/gtest.h"
-
#include "utils/physfstools.h"
#include "debug.h"
-static void init()
+TEST_CASE("AnimatedSprite tests", "animatedsprite")
{
+ client = new Client;
PHYSFS_init("manaplus");
dirSeparator = "/";
XML::initXML();
@@ -48,106 +48,102 @@ static void init()
imageHelper = new SDLImageHelper();
SDL_SetVideoMode(640, 480, 0, SDL_ANYFORMAT | SDL_SWSURFACE);
-}
-
-TEST(AnimatedSprite, basic)
-{
- client = new Client;
-
- init();
- AnimatedSprite *sprite = AnimatedSprite::load(
- "graphics/sprites/error.xml", 0);
- sprite->play(SpriteAction::DEFAULT);
-
- EXPECT_NE(nullptr, sprite);
- EXPECT_NE(nullptr, sprite->getSprite());
- EXPECT_NE(nullptr, sprite->getAnimation());
- EXPECT_NE(nullptr, sprite->getFrame());
- EXPECT_EQ(0, sprite->getFrameIndex());
- EXPECT_EQ(0, sprite->getFrameTime());
- EXPECT_EQ(false, sprite->update(1));
- EXPECT_EQ(0, sprite->getFrameTime());
- EXPECT_EQ(false, sprite->update(11));
- EXPECT_EQ(10, sprite->getFrameTime());
- EXPECT_EQ(0, sprite->getFrameIndex());
- delete client;
- client = nullptr;
-}
-
-TEST(AnimatedSprite, basic2)
-{
- client = new Client;
- init();
- AnimatedSprite *sprite = AnimatedSprite::load(
- "graphics/sprites/test.xml", 0);
- sprite->play(SpriteAction::STAND);
-
- EXPECT_EQ(10, const_cast<Animation*>(sprite->getAnimation())
- ->getFrames().size());
-
- EXPECT_NE(nullptr, sprite);
-
- EXPECT_EQ(false, sprite->update(1));
- EXPECT_EQ(0, sprite->getFrameTime());
- EXPECT_EQ(10, sprite->getFrame()->delay);
-
- EXPECT_EQ(false, sprite->update(1 + 10));
- EXPECT_EQ(0, sprite->getFrameIndex());
- EXPECT_EQ(10, sprite->getFrameTime());
-
- EXPECT_EQ(true, sprite->update(1 + 10 + 5));
- EXPECT_EQ(1, sprite->getFrameIndex());
- EXPECT_EQ(5, sprite->getFrameTime());
-
- EXPECT_EQ(false, sprite->update(1 + 10 + 5));
- EXPECT_EQ(1, sprite->getFrameIndex());
- EXPECT_EQ(5, sprite->getFrameTime());
-
- EXPECT_EQ(false, sprite->update(1 + 10 + 20));
- EXPECT_EQ(1, sprite->getFrameIndex());
- EXPECT_EQ(20, sprite->getFrameTime());
-
- EXPECT_EQ(true, sprite->update(1 + 10 + 20 + 1));
- EXPECT_EQ(2, sprite->getFrameIndex());
- EXPECT_EQ(1, sprite->getFrameTime());
-
- EXPECT_EQ(false, sprite->update(1 + 10 + 20 + 10));
- EXPECT_EQ(2, sprite->getFrameIndex());
- EXPECT_EQ(10, sprite->getFrameTime());
-
- EXPECT_EQ(true, sprite->update(1 + 10 + 20 + 10 + 1));
- EXPECT_EQ(4, sprite->getFrameIndex());
- EXPECT_EQ(1, sprite->getFrameTime());
-
- EXPECT_EQ(false, sprite->update(1 + 10 + 20 + 10 + 25));
- EXPECT_EQ(4, sprite->getFrameIndex());
- EXPECT_EQ(25, sprite->getFrameTime());
-
- EXPECT_EQ(true, sprite->update(1 + 10 + 20 + 10 + 25 + 1));
- EXPECT_EQ(6, sprite->getFrameIndex());
- EXPECT_EQ(1, sprite->getFrameTime());
-
- EXPECT_EQ(true, sprite->update(1 + 10 + 20 + 10 + 25 + 10 + 1));
- EXPECT_EQ(8, sprite->getFrameIndex());
- EXPECT_EQ(1, sprite->getFrameTime());
-
- EXPECT_EQ(true, sprite->update(1 + 10 + 20 + 10 + 25 + 10 + 10 + 1));
- EXPECT_EQ(4, sprite->getFrameIndex());
- EXPECT_EQ(1, sprite->getFrameTime());
-
- AnimatedSprite *sprite2 = AnimatedSprite::load(
- "graphics/sprites/test.xml", 0);
- sprite2->play(SpriteAction::SIT);
-
- EXPECT_EQ(false, sprite2->update(1));
- EXPECT_EQ(2, const_cast<Animation*>(sprite2->getAnimation())
- ->getFrames().size());
- EXPECT_EQ(0, sprite2->getFrameTime());
- EXPECT_EQ(85, sprite2->getFrame()->delay);
- EXPECT_EQ(true, sprite2->update(1 + 10 + 20 + 10 + 25 + 10 + 10 + 1));
- EXPECT_EQ(1, sprite2->getFrameIndex());
- EXPECT_EQ(1, sprite2->getFrameTime());
+ SECTION("basic test 1")
+ {
+ AnimatedSprite *sprite = AnimatedSprite::load(
+ "graphics/sprites/error.xml", 0);
+ sprite->play(SpriteAction::DEFAULT);
+
+ REQUIRE_FALSE(sprite == nullptr);
+ REQUIRE_FALSE(sprite->getSprite() == nullptr);
+ REQUIRE_FALSE(sprite->getAnimation() == nullptr);
+ REQUIRE_FALSE(sprite->getFrame() == nullptr);
+ REQUIRE(0 == sprite->getFrameIndex());
+ REQUIRE(0 == sprite->getFrameTime());
+ REQUIRE(false == sprite->update(1));
+ REQUIRE(0 == sprite->getFrameTime());
+ REQUIRE(false == sprite->update(11));
+ REQUIRE(10 == sprite->getFrameTime());
+ REQUIRE(0 == sprite->getFrameIndex());
+ }
+
+ SECTION("basic test 2")
+ {
+ AnimatedSprite *sprite = AnimatedSprite::load(
+ "graphics/sprites/test.xml", 0);
+ sprite->play(SpriteAction::STAND);
+
+ REQUIRE(10 == const_cast<Animation*>(sprite->getAnimation())
+ ->getFrames().size());
+
+ REQUIRE_FALSE(nullptr == sprite);
+
+ REQUIRE(false == sprite->update(1));
+ REQUIRE(0 == sprite->getFrameTime());
+ REQUIRE(10 == sprite->getFrame()->delay);
+
+ REQUIRE(false == sprite->update(1 + 10));
+ REQUIRE(0 == sprite->getFrameIndex());
+ REQUIRE(10 == sprite->getFrameTime());
+
+ REQUIRE(true == sprite->update(1 + 10 + 5));
+ REQUIRE(1 == sprite->getFrameIndex());
+ REQUIRE(5 == sprite->getFrameTime());
+
+ REQUIRE(false == sprite->update(1 + 10 + 5));
+ REQUIRE(1 == sprite->getFrameIndex());
+ REQUIRE(5 == sprite->getFrameTime());
+
+ REQUIRE(false == sprite->update(1 + 10 + 20));
+ REQUIRE(1 == sprite->getFrameIndex());
+ REQUIRE(20 == sprite->getFrameTime());
+
+ REQUIRE(true == sprite->update(1 + 10 + 20 + 1));
+ REQUIRE(2 == sprite->getFrameIndex());
+ REQUIRE(1 == sprite->getFrameTime());
+
+ REQUIRE(false == sprite->update(1 + 10 + 20 + 10));
+ REQUIRE(2 == sprite->getFrameIndex());
+ REQUIRE(10 == sprite->getFrameTime());
+
+ REQUIRE(true == sprite->update(1 + 10 + 20 + 10 + 1));
+ REQUIRE(4 == sprite->getFrameIndex());
+ REQUIRE(1 == sprite->getFrameTime());
+
+ REQUIRE(false == sprite->update(1 + 10 + 20 + 10 + 25));
+ REQUIRE(4 == sprite->getFrameIndex());
+ REQUIRE(25 == sprite->getFrameTime());
+
+ REQUIRE(true == sprite->update(1 + 10 + 20 + 10 + 25 + 1));
+ REQUIRE(6 == sprite->getFrameIndex());
+ REQUIRE(1 == sprite->getFrameTime());
+
+ REQUIRE(true == sprite->update(1 + 10 + 20 + 10 + 25 + 10 + 1));
+ REQUIRE(8 == sprite->getFrameIndex());
+ REQUIRE(1 == sprite->getFrameTime());
+
+ REQUIRE(true == sprite->update(1 + 10 + 20 + 10 + 25 + 10 + 10 + 1));
+ REQUIRE(4 == sprite->getFrameIndex());
+ REQUIRE(1 == sprite->getFrameTime());
+ }
+
+ SECTION("basic test 3")
+ {
+ AnimatedSprite *sprite2 = AnimatedSprite::load(
+ "graphics/sprites/test.xml", 0);
+ sprite2->play(SpriteAction::SIT);
+
+ REQUIRE(false == sprite2->update(1));
+ REQUIRE(2 == const_cast<Animation*>(sprite2->getAnimation())
+ ->getFrames().size());
+ REQUIRE(0 == sprite2->getFrameTime());
+ REQUIRE(85 == sprite2->getFrame()->delay);
+
+ REQUIRE(true == sprite2->update(1 + 10 + 20 + 10 + 25 + 10 + 10 + 1));
+ REQUIRE(1 == sprite2->getFrameIndex());
+ REQUIRE(1 == sprite2->getFrameTime());
+ }
delete client;
client = nullptr;