From 3a15584474c9865e23334e30b7cac640dc166a12 Mon Sep 17 00:00:00 2001 From: Marcelo Lira Date: Mon, 26 Oct 2009 11:04:22 -0300 Subject: readded tests for qtdoc generator that were left behind when forking from boostpythongenerator --- CMakeLists.txt | 1 + tests/CMakeLists.txt | 20 ++++ tests/sphinxtabletest.cpp | 269 ++++++++++++++++++++++++++++++++++++++++++++++ tests/sphinxtabletest.h | 48 +++++++++ 4 files changed, 338 insertions(+) create mode 100644 tests/CMakeLists.txt create mode 100644 tests/sphinxtabletest.cpp create mode 100644 tests/sphinxtabletest.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 58e376f7c..a068a2845 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,4 +76,5 @@ install(FILES ${manpages} DESTINATION share/man/man1) enable_testing() add_subdirectory(generators) +add_subdirectory(tests) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 000000000..0d28c4419 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,20 @@ +project(sphinxtabletest) + +# TODO +set(sphinxtabletest_SRC sphinxtabletest.cpp) +qt4_automoc(${sphinxtabletest_SRC}) + +include_directories(${QT_INCLUDE_DIR} + ${QT_QTCORE_INCLUDE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${qtdoc_generator_SOURCE_DIR}) + +add_executable(sphinxtabletest ${sphinxtabletest_SRC}) + +target_link_libraries(sphinxtabletest + ${QT_QTTEST_LIBRARY} + ${APIEXTRACTOR_LIBRARY} + qtdoc_generator + genrunner) + +add_test("sphinxtable" sphinxtabletest) diff --git a/tests/sphinxtabletest.cpp b/tests/sphinxtabletest.cpp new file mode 100644 index 000000000..a35d11926 --- /dev/null +++ b/tests/sphinxtabletest.cpp @@ -0,0 +1,269 @@ +/* +* This file is part of the Boost Python Generator project. +* +* Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +* +* Contact: PySide team +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* version 2 as published by the Free Software Foundation. +* +* 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, write to the Free Software +* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +* 02110-1301 USA +* +*/ + +#include "sphinxtabletest.h" +#include "qtdocgenerator.h" +#include +#include + +QString SphinxTableTest::transformXml(const char* xml) +{ + return QtXmlToSphinx(m_generator, xml).result(); +} + +void SphinxTableTest::setUp() +{ + m_generator = new QtDocGenerator; +} + +void SphinxTableTest::tearDown() +{ + delete m_generator; +} + +void SphinxTableTest::testEmptyString() +{ + const char* xml = ""; + QCOMPARE(transformXml(xml), QString()); +} + +void SphinxTableTest::testSimpleTable() +{ + const char* xml = "\ +\ +
\ + \ + Header 1\ + \ + \ + Header 2\ + \ +
\ + \ + \ + 1 1\ + \ + \ + 1 2\ + \ + \ + \ + \ + 2 1\ + \ + \ + 2 2\ + \ + \ +
"; + QCOMPARE(transformXml(xml), QString("\ + +--------+--------+\n\ + |Header 1|Header 2|\n\ + +--------+--------+\n\ + |1 1 |1 2 |\n\ + +--------+--------+\n\ + |2 1 |2 2 |\n\ + +--------+--------+\n\ +\n")); +} + +void SphinxTableTest::testColSpan() +{ + const char* xml = "\ +\ +
\ + \ + Header 1\ + \ + \ + Header 2\ + \ +
\ + \ + \ + I'm a big text!\ + \ + \ + \ + \ + 2 1\ + \ + \ + 2 2\ + \ + \ +
"; + QCOMPARE(transformXml(xml), QString("\ + +---------------+--------+\n\ + |Header 1 |Header 2|\n\ + +---------------+--------+\n\ + |I'm a big text! |\n\ + +---------------+--------+\n\ + |2 1 |2 2 |\n\ + +---------------+--------+\n\ +\n")); +} + + +void SphinxTableTest::testRowSpan() +{ + const char* xml = "\ +\ +
\ + \ + Header 1\ + \ + \ + Header 2\ + \ +
\ + \ + \ + 1.1\ + \ + \ + 1.2\ + \ + \ + \ + \ + 2 2\ + \ + \ +
"; + QCOMPARE(transformXml(xml), QString("\ + +--------+--------+\n\ + |Header 1|Header 2|\n\ + +--------+--------+\n\ + |1.1 |1.2 |\n\ + + +--------+\n\ + | |2 2 |\n\ + +--------+--------+\n\ +\n")); +} + + +void SphinxTableTest::testComplexTable() +{ + const char* xml = "\ +\ +
\ + \ + Header 1\ + \ + \ + Header 2\ + \ + \ + Header 3\ + \ +
\ + \ + \ + 1.1\ + \ + \ + 1.2\ + \ + \ + \ + \ + 2 2\ + \ + \ + 2 3\ + \ + \ +
"; + QCOMPARE(transformXml(xml), QString("\ + +--------+--------+--------+\n\ + |Header 1|Header 2|Header 3|\n\ + +--------+--------+--------+\n\ + |1.1 |1.2 |\n\ + + +--------+--------+\n\ + | |2 2 |2 3 |\n\ + +--------+--------+--------+\n\ +\n")); +} + +void SphinxTableTest::testRowSpan2() +{ + const char* xml = "\ +\ +
\ + h1\ + h2\ + h3\ + h4\ +
\ + \ + A\ + B\ + C\ + D\ + \ + \ + E\ + F\ + \ + \ + E\ + F\ + \ + \ + E\ + F\ + \ + \ + E\ + F\ + \ + \ + E\ + F\ + \ +
"; + QCOMPARE(transformXml(xml), QString("\ + +--+--+--+--+\n\ + |h1|h2|h3|h4|\n\ + +--+--+--+--+\n\ + |A |B |C |D |\n\ + + + +--+--+\n\ + | | |E |F |\n\ + + + +--+--+\n\ + | | |E |F |\n\ + + + +--+--+\n\ + | | |E |F |\n\ + + + +--+--+\n\ + | | |E |F |\n\ + + + +--+--+\n\ + | | |E |F |\n\ + +--+--+--+--+\n\ +\n")); +} + + + +QTEST_APPLESS_MAIN( SphinxTableTest ) + +#include "sphinxtabletest.moc" diff --git a/tests/sphinxtabletest.h b/tests/sphinxtabletest.h new file mode 100644 index 000000000..57d8937d0 --- /dev/null +++ b/tests/sphinxtabletest.h @@ -0,0 +1,48 @@ +/* +* This file is part of the Boost Python Generator project. +* +* Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +* +* Contact: PySide team +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* version 2 as published by the Free Software Foundation. +* +* 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, write to the Free Software +* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +* 02110-1301 USA +* +*/ + +#ifndef SPHINXTABLETEST_H +#define SPHINXTABLETEST_H + +#include + +class QtDocGenerator; +class SphinxTableTest : public QObject { + Q_OBJECT + +private slots: + void setUp(); + void tearDown(); + void testEmptyString(); + void testSimpleTable(); + void testRowSpan(); + void testColSpan(); + void testComplexTable(); + void testRowSpan2(); +private: + QtDocGenerator* m_generator; + + QString transformXml(const char* xml); +}; + +#endif -- cgit v1.2.3