summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-07-17 13:56:17 +0300
committerAndrei Karas <akaras@inbox.ru>2015-07-17 13:56:17 +0300
commit3154e878e1f4c937807dfc94d1308049e94f9e65 (patch)
tree109f87651eb71fddc60687cb081d83688167e9ed
parent89dd7d47dabcc52a56a89d9ac5246582fa1b138c (diff)
downloadmanaplus-3154e878e1f4c937807dfc94d1308049e94f9e65.tar.gz
manaplus-3154e878e1f4c937807dfc94d1308049e94f9e65.tar.bz2
manaplus-3154e878e1f4c937807dfc94d1308049e94f9e65.tar.xz
manaplus-3154e878e1f4c937807dfc94d1308049e94f9e65.zip
Add test with creating windows.
-rw-r--r--src/Makefile.am1
-rw-r--r--src/gui/windowmanager_unittest.cc175
2 files changed, 176 insertions, 0 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index d1881a254..c877c37f5 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1546,6 +1546,7 @@ manaplustests_CXXFLAGS = ${manaplus_CXXFLAGS} \
-DUNITTESTS
manaplustests_SOURCES = ${manaplus_SOURCES} \
animatedsprite_unittest.cc \
+ gui/windowmanager_unittest.cc \
gui/fonts/textchunklist_unittest.cc \
gui/widgets/browserbox_unittest.cc \
utils/files_unittest.cc \
diff --git a/src/gui/windowmanager_unittest.cc b/src/gui/windowmanager_unittest.cc
new file mode 100644
index 000000000..87f6bf47c
--- /dev/null
+++ b/src/gui/windowmanager_unittest.cc
@@ -0,0 +1,175 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2013 The ManaPlus Developers
+ *
+ * This file is part of The ManaPlus Client.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "animatedsprite.h"
+
+#include "catch.hpp"
+#include "client.h"
+#include "settings.h"
+
+#include "gui/gui.h"
+#include "gui/theme.h"
+#include "gui/userpalette.h"
+
+#include "gui/fonts/font.h"
+
+#include "gui/popups/beingpopup.h"
+#include "gui/popups/itempopup.h"
+#include "gui/popups/popupmenu.h"
+#include "gui/popups/spellpopup.h"
+#include "gui/popups/textboxpopup.h"
+#include "gui/popups/textpopup.h"
+
+#include "gui/widgets/desktop.h"
+#include "gui/widgets/createwidget.h"
+#include "gui/widgets/windowcontainer.h"
+
+#include "gui/windows/connectiondialog.h"
+#include "gui/windows/didyouknowwindow.h"
+#include "gui/windows/connectiondialog.h"
+#include "gui/windows/helpwindow.h"
+#include "gui/windows/logindialog.h"
+#include "gui/windows/setupwindow.h"
+#include "gui/windows/serverdialog.h"
+
+#include "render/sdlgraphics.h"
+
+#include "resources/resourcemanager.h"
+#include "resources/sdlimagehelper.h"
+
+#include "utils/delete2.h"
+#include "utils/env.h"
+#include "utils/gettext.h"
+#include "utils/physfstools.h"
+
+#include "net/logindata.h"
+
+#include "debug.h"
+
+TEST_CASE("Windows tests", "windowmanager")
+{
+ setEnv("SDL_VIDEODRIVER", "dummy");
+
+ client = new Client;
+ PHYSFS_init("manaplus");
+ dirSeparator = "/";
+ XML::initXML();
+ SDL_Init(SDL_INIT_VIDEO);
+ logger = new Logger();
+ ResourceManager *resman = ResourceManager::getInstance();
+ resman->addToSearchPath("data", false);
+ resman->addToSearchPath("../data", false);
+ mainGraphics = new SDLGraphics;
+ imageHelper = new SDLImageHelper;
+ userPalette = new UserPalette;
+ theme = new Theme;
+ gui = new Gui();
+ gui->postInit(mainGraphics);
+
+ SDL_SetVideoMode(640, 480, 0, SDL_ANYFORMAT | SDL_SWSURFACE);
+
+ SECTION("setupWindow")
+ {
+ CREATEWIDGETV0(setupWindow, SetupWindow);
+ delete2(setupWindow);
+ }
+ SECTION("helpWindow")
+ {
+ CREATEWIDGETV0(helpWindow, HelpWindow);
+ delete2(helpWindow);
+ }
+ SECTION("didYouKnowWindow")
+ {
+ CREATEWIDGETV0(didYouKnowWindow, DidYouKnowWindow);
+ delete2(didYouKnowWindow);
+ }
+ SECTION("popupMenu")
+ {
+ CREATEWIDGETV0(popupMenu, PopupMenu);
+ delete2(popupMenu);
+ }
+ SECTION("beingPopup")
+ {
+ CREATEWIDGETV0(beingPopup, BeingPopup);
+ delete2(beingPopup);
+ }
+ SECTION("textPopup")
+ {
+ CREATEWIDGETV0(textPopup, TextPopup);
+ delete2(textPopup);
+ }
+ SECTION("textBoxPopup")
+ {
+ CREATEWIDGETV0(textBoxPopup, TextBoxPopup);
+ delete2(textBoxPopup);
+ }
+ SECTION("itemPopup")
+ {
+ CREATEWIDGETV0(itemPopup, ItemPopup);
+ delete2(itemPopup);
+ }
+ SECTION("spellPopup")
+ {
+ CREATEWIDGETV0(spellPopup, SpellPopup);
+ delete2(spellPopup);
+ }
+ SECTION("desktop")
+ {
+ CREATEWIDGETV(desktop, Desktop, nullptr);
+ delete2(desktop);
+ }
+ SECTION("serversDialog")
+ {
+ ServerInfo mCurrentServer;
+ ServerDialog *serverDialog = CREATEWIDGETR(ServerDialog,
+ &mCurrentServer,
+ settings.configDir);
+ delete2(serverDialog);
+ }
+ SECTION("connectionDialog")
+ {
+ ConnectionDialog *connectionDialog = CREATEWIDGETR(ConnectionDialog,
+ // TRANSLATORS: connection dialog header
+ _("Connecting to server"),
+ STATE_SWITCH_SERVER);
+ delete2(connectionDialog);
+ }
+ SECTION("loginDialog")
+ {
+ ServerInfo mCurrentServer;
+ LoginDialog *loginDialog = CREATEWIDGETR(LoginDialog,
+ loginData,
+ mCurrentServer.hostname,
+ &settings.options.updateHost);
+ delete2(loginDialog);
+ }
+ SECTION("connectionDialog")
+ {
+ ConnectionDialog *connectionDialog = CREATEWIDGETR(ConnectionDialog,
+ // TRANSLATORS: connection dialog header
+ _("Logging in"),
+ STATE_SWITCH_SERVER);
+ delete2(connectionDialog);
+ }
+
+ delete2(userPalette);
+ delete2(client);
+ windowContainer = nullptr;
+}