From 5261272e45c1542eab694fc262b0e836d6cbfeda Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Sat, 19 Jan 2013 15:05:39 +0100 Subject: [PATCH] test to make sure the toc reload feature works --- okular_part_export.h | 33 +++++++++++++++++++++++++++++ part.h | 6 +++++- tests/CMakeLists.txt | 3 +++ tests/data/tocreload.pdf | Bin 0 -> 17245 bytes tests/parttest.cpp | 44 +++++++++++++++++++++++++++++++++++++++ ui/toc.h | 7 ++++++- 6 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 okular_part_export.h create mode 100644 tests/data/tocreload.pdf create mode 100644 tests/parttest.cpp diff --git a/okular_part_export.h b/okular_part_export.h new file mode 100644 index 000000000..e478414bd --- /dev/null +++ b/okular_part_export.h @@ -0,0 +1,33 @@ +/*************************************************************************** + * Copyright (C) 2013 by Albert Astals Cid * + * * + * 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 * + * (at your option) any later version. * + ***************************************************************************/ + +#ifndef OKULAR_PART_EXPORT_H +#define OKULAR_PART_EXPORT_H + +/* needed for KDE_EXPORT macros */ +#include + + +#if defined _WIN32 || defined _WIN64 +#ifndef OKULAR_PART_EXPORT +# ifdef MAKE_OKULARPART_LIB +# define OKULAR_PART_EXPORT KDE_EXPORT +# else +# define OKULAR_PART_EXPORT KDE_IMPORT +# endif +#endif + +#else /* UNIX*/ + + +/* export statements for unix */ +#define OKULAR_PART_EXPORT KDE_EXPORT +#endif + +#endif diff --git a/part.h b/part.h index 0c575609a..e3a941821 100644 --- a/part.h +++ b/part.h @@ -27,6 +27,8 @@ #include "kdocumentviewer.h" #include "interfaces/viewerinterface.h" +#include "okular_part_export.h" + #include class QAction; @@ -90,12 +92,14 @@ enum EmbedMode * @author Wilco Greven * @version 0.2 */ -class Part : public KParts::ReadWritePart, public Okular::DocumentObserver, public KDocumentViewer, public Okular::ViewerInterface +class OKULAR_PART_EXPORT Part : public KParts::ReadWritePart, public Okular::DocumentObserver, public KDocumentViewer, public Okular::ViewerInterface { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.kde.okular") Q_INTERFACES(KDocumentViewer) Q_INTERFACES(Okular::ViewerInterface) + + friend class PartTest; public: // Default constructor diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 9f8c288a7..9a98aa1e2 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -2,3 +2,6 @@ set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} ) kde4_add_unit_test( shelltest shelltest.cpp ../shell/shellutils.cpp ) target_link_libraries( shelltest ${KDE4_KDECORE_LIBS} ${QT_QTTEST_LIBRARY} ) + +kde4_add_unit_test( parttest parttest.cpp ) +target_link_libraries( parttest ${KDE4_KDECORE_LIBS} ${QT_QTTEST_LIBRARY} okularpart ) diff --git a/tests/data/tocreload.pdf b/tests/data/tocreload.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9525ad86ce1f2facf3669b976fcc92d84973322f GIT binary patch literal 17245 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 DfxbAn literal 0 HcmV?d00001 diff --git a/tests/parttest.cpp b/tests/parttest.cpp new file mode 100644 index 000000000..cc9d9ef31 --- /dev/null +++ b/tests/parttest.cpp @@ -0,0 +1,44 @@ +/*************************************************************************** + * Copyright (C) 2013 by Albert Astals Cid * + * * + * 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 * + * (at your option) any later version. * + ***************************************************************************/ + +#include + +#include "../part.h" +#include "../ui/toc.h" + +#include + +namespace Okular +{ +class PartTest + : public QObject +{ + Q_OBJECT + + private slots: + void testTOCReload(); +}; + +void PartTest::testTOCReload() +{ + QVariantList dummyArgs; + Okular::Part part(NULL, NULL, dummyArgs, KGlobal::mainComponent()); + part.openDocument(KDESRCDIR "data/tocreload.pdf"); + QCOMPARE(part.m_toc->expandedNodes().count(), 0); + part.m_toc->m_treeView->expandAll(); + QCOMPARE(part.m_toc->expandedNodes().count(), 3); + part.reload(); + qApp->processEvents(); + QCOMPARE(part.m_toc->expandedNodes().count(), 3); +} +} + +QTEST_KDEMAIN( Okular::PartTest, GUI ) + +#include "parttest.moc" diff --git a/ui/toc.h b/ui/toc.h index d89889632..867964820 100644 --- a/ui/toc.h +++ b/ui/toc.h @@ -14,6 +14,8 @@ #include "core/observer.h" #include +#include "okular_part_export.h" + class QDomNode; class QModelIndex; class QTreeView; @@ -22,11 +24,14 @@ class TOCModel; namespace Okular { class Document; +class PartTest; } -class TOC : public QWidget, public Okular::DocumentObserver +class OKULAR_PART_EXPORT TOC : public QWidget, public Okular::DocumentObserver { Q_OBJECT + friend class Okular::PartTest; + public: TOC(QWidget *parent, Okular::Document *document); ~TOC();