From 3154e878e1f4c937807dfc94d1308049e94f9e65 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 17 Jul 2015 13:56:17 +0300 Subject: Add test with creating windows. --- src/Makefile.am | 1 + src/gui/windowmanager_unittest.cc | 175 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 176 insertions(+) create mode 100644 src/gui/windowmanager_unittest.cc (limited to 'src') 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 . + */ + +#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; +} -- cgit v1.2.3-70-g09d2