summaryrefslogtreecommitdiffstats
path: root/kword/tests/KWPageManagerTester.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-01-20 01:29:50 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-01-20 01:29:50 +0000
commit8362bf63dea22bbf6736609b0f49c152f975eb63 (patch)
tree0eea3928e39e50fae91d4e68b21b1e6cbae25604 /kword/tests/KWPageManagerTester.cpp
downloadkoffice-8362bf63dea22bbf6736609b0f49c152f975eb63.tar.gz
koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.zip
Added old abandoned KDE3 version of koffice
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kword/tests/KWPageManagerTester.cpp')
-rw-r--r--kword/tests/KWPageManagerTester.cpp320
1 files changed, 320 insertions, 0 deletions
diff --git a/kword/tests/KWPageManagerTester.cpp b/kword/tests/KWPageManagerTester.cpp
new file mode 100644
index 00000000..9b261d90
--- /dev/null
+++ b/kword/tests/KWPageManagerTester.cpp
@@ -0,0 +1,320 @@
+/* This file is part of the KOffice project
+ * Copyright (C) 2005 Thomas Zander <[email protected]>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; version 2.
+
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+#include <kunittest/runner.h>
+#include <kunittest/module.h>
+#include <kdebug.h>
+
+#include "KWPageManagerTester.h"
+
+#include <KWPageManager.h>
+#include <KWPage.h>
+
+using namespace KUnitTest;
+
+KUNITTEST_MODULE(kunittest_KWPageManagerTester, "PageManager Tester");
+KUNITTEST_MODULE_REGISTER_TESTER(KWPageManagerTester);
+
+void KWPageManagerTester::allTests() {
+ getAddPages();
+ getAddPages2();
+ createInsertPages();
+ removePages();
+ pageInfo();
+ testClipToDocument();
+}
+
+void KWPageManagerTester::getAddPages() {
+ KWPageManager *pageManager = new KWPageManager();
+ pageManager->setStartPage(1);
+ pageManager->appendPage();
+ KWPage *page = pageManager->page(0);
+ CHECK(page == 0, true);
+ page = pageManager->page(2);
+ CHECK(page == 0, true);
+
+ page = pageManager->page(1);
+ CHECK(page == 0, false);
+ CHECK(page->pageNumber(), 1);
+ CHECK(page->pageSide(), KWPage::Right);
+
+ page->setWidth(134.2);
+ page->setHeight(521.4);
+ CHECK(page->width(), 134.2);
+ CHECK(page->height(), 521.4);
+
+ // test setStartPage
+ pageManager->setStartPage(4);
+ page = pageManager->page(0);
+ CHECK(page == 0, true);
+ page = pageManager->page(3);
+ CHECK(page == 0, true);
+ page = pageManager->page(5);
+ CHECK(page == 0, true);
+ page = pageManager->page(4);
+ CHECK(page == 0, false);
+ CHECK(page->pageNumber(), 4);
+ CHECK(page->pageSide(), KWPage::Left);
+
+ pageManager->setStartPage(1);
+ page = pageManager->page(0);
+ CHECK(page == 0, true);
+ page = pageManager->page(3);
+ CHECK(page == 0, true);
+ page = pageManager->page(2);
+ CHECK(page == 0, true);
+ page = pageManager->page(1);
+ CHECK(page == 0, false);
+ CHECK(page->pageNumber(), 1);
+ CHECK(page->pageSide(), KWPage::Right);
+
+ // adding pages
+ CHECK(pageManager->pageCount(), 1);
+ CHECK(pageManager->lastPageNumber(), 1);
+ pageManager->setStartPage(40);
+ CHECK(pageManager->pageCount(), 1);
+ CHECK(pageManager->lastPageNumber(), 40);
+ page = pageManager->appendPage();
+ CHECK(pageManager->pageCount(), 2);
+ CHECK(pageManager->lastPageNumber(), 41);
+
+ CHECK(page == 0, false);
+ CHECK(page->pageNumber(), 41);
+ CHECK(page->pageSide(), KWPage::Right);
+}
+
+void KWPageManagerTester::getAddPages2() {
+ KWPageManager *pageManager = new KWPageManager();
+ pageManager->setStartPage(1);
+ KWPage *page = pageManager->appendPage();
+ page->setWidth(200);
+ page->setHeight(200);
+
+ CHECK(pageManager->pageNumber(KoRect(0,0,2,2)), 1);
+ CHECK(pageManager->pageNumber(KoRect(90,90,2,2)), 1);
+ CHECK(pageManager->pageNumber(KoRect(190,190,9,9)), 1);
+
+ page = pageManager->appendPage();
+ page->setWidth(600);
+ page->setHeight(600);
+ CHECK(pageManager->pageNumber(KoRect(0,0,2,2)), 1);
+ CHECK(pageManager->pageNumber(KoRect(90,90,2,2)), 1);
+ CHECK(pageManager->pageNumber(KoRect(190,190,9,9)), 1);
+
+ CHECK(pageManager->pageNumber(KoRect(201,201,2,2)), 2);
+#ifdef STRICT_PAGECHECKS // was true before KWPageManager.cpp -r511705:511706
+ CHECK(pageManager->pageNumber(KoRect(300,3,2,2)), -1); // right of page 1
+#else
+ CHECK(pageManager->pageNumber(KoRect(300,3,2,2)), 1); // right of page 1
+#endif
+ CHECK(pageManager->pageNumber(KoRect(2, 690,9,9)), 2);
+ CHECK(pageManager->pageNumber(KoRect(300,300,10,10)), 2);
+#ifdef STRICT_PAGECHECKS // was true before KWPageManager.cpp -r511705:511706
+ CHECK(pageManager->pageNumber(KoRect(600,700,10,10)), -1); // right of page 2
+#else
+ CHECK(pageManager->pageNumber(KoRect(600,700,10,10)), 2); // right of page 2
+#endif
+
+ // KoPoint based
+ CHECK(pageManager->pageNumber(KoPoint(201,201)), 2);
+ // Y based
+ CHECK(pageManager->pageNumber(201.0), 2);
+#ifdef STRICT_PAGECHECKS // was true before KWPageManager.cpp -r511705:511706
+ CHECK(pageManager->pageNumber(900.0), -1);
+#else
+ CHECK(pageManager->pageNumber(900.0), 2);
+#endif
+}
+
+void KWPageManagerTester::createInsertPages() {
+ KWPageManager *pageManager = new KWPageManager();
+ pageManager->setStartPage(1);
+ CHECK(pageManager->pageCount(), 0);
+ KWPage *page1 = pageManager->appendPage();
+ CHECK(pageManager->pageCount(), 1);
+ KWPage *page3 = pageManager->appendPage();
+ CHECK(pageManager->pageCount(), 2);
+ CHECK(page3->pageNumber(), 2);
+
+ KWPage *page2 = pageManager->insertPage(2);
+ CHECK(pageManager->pageCount(), 3);
+ CHECK(page1->pageNumber(), 1);
+ CHECK(page2->pageNumber(), 2);
+ CHECK(page3->pageNumber(), 3);
+
+ KWPage *page4 = pageManager->insertPage(100);
+ CHECK(pageManager->pageCount(), 4);
+ CHECK(page1->pageNumber(), 1);
+ CHECK(page2->pageNumber(), 2);
+ CHECK(page3->pageNumber(), 3);
+ CHECK(page4->pageNumber(), 4);
+
+ KWPage *page = pageManager->insertPage(0);
+ CHECK(pageManager->pageCount(), 5);
+ CHECK(page->pageNumber(), 1);
+ CHECK(page1->pageNumber(), 2);
+ CHECK(page2->pageNumber(), 3);
+ CHECK(page3->pageNumber(), 4);
+ CHECK(page4->pageNumber(), 5);
+
+ pageManager->setOnlyAllowAppend(true);
+ KWPage *page6 = pageManager->insertPage(0);
+ CHECK(pageManager->pageCount(), 6);
+ CHECK(page1->pageNumber(), 2);
+ CHECK(page6->pageNumber(), 6);
+}
+
+void KWPageManagerTester::removePages() {
+ KWPageManager *pageManager = new KWPageManager();
+ pageManager->setStartPage(1);
+ KWPage *page1 = pageManager->appendPage();
+ pageManager->appendPage();
+ KWPage *page2 = pageManager->appendPage();
+ /*KWPage *page3 =*/ pageManager->appendPage();
+ KWPage *page4 = pageManager->appendPage();
+
+ pageManager->removePage(2);
+ CHECK(page1->pageNumber(), 1);
+ CHECK(page2->pageNumber(), 2);
+ CHECK(page4->pageNumber(), 4);
+ pageManager->removePage(page2);
+ CHECK(page1->pageNumber(), 1);
+ CHECK(page4->pageNumber(), 3);
+
+ /* todo: bool tryRemovingPages(); */
+}
+
+void KWPageManagerTester::pageInfo() {
+ KWPageManager *pageManager = new KWPageManager();
+ KoPageLayout layout;
+ layout.ptWidth = 300;
+ layout.ptHeight = 600;
+ layout.format = PG_DIN_A4;
+ pageManager->setDefaultPage(layout);
+ pageManager->setStartPage(1);
+ KWPage *page1 = pageManager->appendPage();
+ page1->setWidth(100);
+ page1->setHeight(200);
+ KWPage *page2 = pageManager->appendPage();
+ page2->setWidth(50);
+ page2->setHeight(100);
+ KWPage *page3 = pageManager->appendPage();
+
+ CHECK(pageManager->topOfPage(3), 300.0);
+ CHECK(pageManager->bottomOfPage(3), 900.0);
+ layout.ptHeight = 500;
+ pageManager->setDefaultPage(layout);
+ CHECK(pageManager->bottomOfPage(3), 800.0);
+ page2->setHeight(-1);
+ CHECK(pageManager->bottomOfPage(3), 1200.0);
+
+ layout.ptTop = 5;
+ layout.ptLeft = 6;
+ layout.ptBottom = 7;
+ layout.ptRight = 8;
+ layout.ptBindingSide = -1;
+ layout.ptPageEdge = -1;
+ pageManager->setDefaultPage(layout);
+ page2->setTopMargin(9);
+ page2->setLeftMargin(10);
+ page2->setBottomMargin(11);
+ page2->setRightMargin(12);
+
+ KoPageLayout lay = pageManager->pageLayout(2);
+ CHECK(lay.ptHeight, 500.0);
+ CHECK(lay.ptWidth, 50.0);
+ CHECK(lay.ptTop, 9.0);
+ CHECK(lay.ptLeft, 10.0);
+ CHECK(lay.ptBottom, 11.0);
+ CHECK(lay.ptRight, 12.0);
+
+ lay = pageManager->pageLayout(3);
+ CHECK(lay.ptHeight, 500.0);
+ CHECK(lay.ptWidth, 300.0);
+ CHECK(lay.ptTop, 5.0);
+ CHECK(lay.ptLeft, 6.0);
+ CHECK(lay.ptBottom, 7.0);
+ CHECK(lay.ptRight, 8.0);
+
+ lay.ptRight = 90; // should have no effect, since its a copy
+ CHECK(page3->rightMargin(), 8.0);
+
+
+ // Page Edge / Page Margin
+ page1->setPageEdgeMargin(14.0);
+ CHECK(page1->pageSide(), KWPage::Right);
+ CHECK(page1->rightMargin(), 14.0);
+ page1->setMarginClosestBinding(15.0);
+ CHECK(page1->rightMargin(), 14.0);
+ CHECK(page1->leftMargin(), 15.0);
+
+ CHECK(page2->rightMargin(), 12.0); // unchanged due to changes in page1
+ CHECK(page2->leftMargin(), 10.0);
+ page2->setPageEdgeMargin(16.0);
+ CHECK(page2->pageSide(), KWPage::Left);
+ CHECK(page2->leftMargin(), 16.0);
+ page2->setMarginClosestBinding(17.0);
+ CHECK(page2->leftMargin(), 16.0);
+ CHECK(page2->rightMargin(), 17.0);
+
+ page2->setLeftMargin(18);
+ CHECK(page2->leftMargin(), 18.0);
+ page2->setRightMargin(19);
+ CHECK(page2->rightMargin(), 19.0);
+ CHECK(page2->leftMargin(), 18.0);
+}
+
+void KWPageManagerTester::testClipToDocument() {
+ KWPageManager *pageManager = new KWPageManager();
+ KoPageLayout lay;
+ lay.ptWidth = 300;
+ lay.ptHeight = 600;
+ lay.format = PG_DIN_A4;
+ pageManager->setDefaultPage(lay);
+ KWPage *page1 = pageManager->appendPage();
+ page1->setWidth(100);
+ page1->setHeight(200);
+ KWPage *page2 = pageManager->appendPage();
+ page2->setWidth(50);
+ page2->setHeight(100);
+ /*KWPage *page3 =*/ pageManager->appendPage();
+
+ KoPoint p(10,10);
+
+ KoPoint result = pageManager->clipToDocument(p);
+ CHECK(p == result, true);
+
+ p.setX(110);
+ result = pageManager->clipToDocument(p);
+ CHECK(p.y(), result.y());
+ CHECK(result.x(), 100.0);
+
+ p.setY(210);
+ result = pageManager->clipToDocument(p);
+ CHECK(p.y(), result.y());
+ CHECK(result.x(), 50.0);
+
+ p.setY(330);
+ result = pageManager->clipToDocument(p);
+ CHECK(p == result, true);
+
+ p.setY(910);
+ p.setX(310);
+ result = pageManager->clipToDocument(p);
+ CHECK(result.y(), 900.0);
+ CHECK(result.x(), 300.0);
+}