void TestPageTextInfo::testPageNumber() { KWPageManager manager; QCOMPARE(manager.pageCount(), 0); KWPage page1 = manager.appendPage(); KWPage page2 = manager.appendPage(); KWPage page3 = manager.appendPage(); KWPage page4 = manager.appendPage(); KWPage page5 = manager.appendPage(); KWPageStyle style2("foo"); manager.addPageStyle(style2); KWPage page40 = manager.appendPage(style2); QCOMPARE(page40.pageNumber(), 6); page40.setPageNumber(40); QCOMPARE(page5.pageNumber(), 5); QCOMPARE(page40.pageNumber(), 40); KWPage page41 = manager.appendPage(); QCOMPARE(page41.pageNumber(), 41); KWPageTextInfo info1(page1); QCOMPARE(info1.pageNumber(KoTextPage::CurrentPage, 0), 1); QCOMPARE(info1.pageNumber(KoTextPage::PreviousPage, 0), -1); QCOMPARE(info1.pageNumber(KoTextPage::NextPage, 0), 2); QCOMPARE(info1.pageNumber(KoTextPage::CurrentPage, 4), 5); QCOMPARE(info1.pageNumber(KoTextPage::CurrentPage, 5), -1); QCOMPARE(info1.pageNumber(KoTextPage::CurrentPage, 40), 41); QCOMPARE(info1.pageNumber(KoTextPage::PreviousPage, 1), -1); QCOMPARE(info1.pageNumber(KoTextPage::NextPage, 3), 5); QCOMPARE(info1.pageNumber(KoTextPage::NextPage, 4), -1); KWPageTextInfo info2(page2); QCOMPARE(info2.pageNumber(KoTextPage::CurrentPage, 0), 2); QCOMPARE(info2.pageNumber(KoTextPage::PreviousPage, 0), 1); QCOMPARE(info2.pageNumber(KoTextPage::NextPage, 0), 3); KWPageTextInfo info3(page5); QCOMPARE(info3.pageNumber(KoTextPage::CurrentPage, 0), 5); QCOMPARE(info3.pageNumber(KoTextPage::PreviousPage, 0), 4); QCOMPARE(info3.pageNumber(KoTextPage::NextPage, 0), 40); KWPageTextInfo info40(page40); QCOMPARE(info40.pageNumber(KoTextPage::CurrentPage, 0), 40); QCOMPARE(info40.pageNumber(KoTextPage::PreviousPage, 0), 5); QCOMPARE(info40.pageNumber(KoTextPage::NextPage, 0), 41); KWPageTextInfo info41(page41); QCOMPARE(info41.pageNumber(KoTextPage::CurrentPage, 0), 41); QCOMPARE(info41.pageNumber(KoTextPage::PreviousPage, 0), 40); QCOMPARE(info41.pageNumber(KoTextPage::NextPage, 0), -1); }
void TestPageCommands::testMakePageSpread() { KWDocument document; KWPageManager *manager = document.pageManager(); KWPageStyle style("pagestyle1"); const KoPageLayout oldLayout = style.pageLayout(); KoPageLayout layout = style.pageLayout(); manager->addPageStyle(style); KWPage page1 = manager->appendPage(style); QCOMPARE(page1.width(), layout.width); QCOMPARE(page1.pageNumber(), 1); QCOMPARE(page1.pageSide(), KWPage::Right); QCOMPARE(manager->pageCount(), 1); // make it a pagespread KWPageStyle pageSpread = style; pageSpread.detach("dummy"); layout.leftMargin = -1; layout.rightMargin = -1; layout.pageEdge = 7; layout.bindingSide = 13; pageSpread.setPageLayout(layout); KWPageStylePropertiesCommand cmd1(&document, style, pageSpread); cmd1.redo(); QCOMPARE(page1.pageNumber(), 1); QCOMPARE(page1.pageSide(), KWPage::Right); QCOMPARE(page1.width(), style.pageLayout().width); QCOMPARE(manager->pageCount(), 1); KoPageLayout newLayout = style.pageLayout(); QCOMPARE(newLayout.width, layout.width); QCOMPARE(newLayout.leftMargin, layout.leftMargin); QCOMPARE(newLayout.rightMargin, layout.rightMargin); QCOMPARE(newLayout.pageEdge, layout.pageEdge); QCOMPARE(newLayout.bindingSide, layout.bindingSide); cmd1.undo(); QCOMPARE(page1.width(), oldLayout.width); QCOMPARE(page1.pageNumber(), 1); QCOMPARE(page1.pageSide(), KWPage::Right); QCOMPARE(manager->pageCount(), 1); // create another page. So we have 2 single sided pages. (Right/Left) KWPage page2 = manager->appendPage(style); QCOMPARE(page2.width(), oldLayout.width); QCOMPARE(page2.pageNumber(), 2); QCOMPARE(page2.pageSide(), KWPage::Left); QCOMPARE(manager->pageCount(), 2); // avoid reusing cmd1 as that assumes the constructor doesn't do anything. Which is // not a restriction we put on the command. (i.e. that doesn't *have* to work) KWPageStylePropertiesCommand cmd2(&document, style, pageSpread); cmd2.redo(); QCOMPARE(page1.width(), style.pageLayout().width); QCOMPARE(page1.pageNumber(), 1); QCOMPARE(page1.pageSide(), KWPage::Right); QCOMPARE(page2.pageNumber(), 2); QEXPECT_FAIL("", "Not done yet", Abort); QCOMPARE(page2.pageSide(), KWPage::PageSpread); QCOMPARE(page2.width(), style.pageLayout().width * 2); QCOMPARE(manager->pageCount(), 3); cmd2.undo(); // test for page side etc. QCOMPARE(page1.width(), oldLayout.width); QCOMPARE(page1.pageNumber(), 1); QCOMPARE(page1.pageSide(), KWPage::Right); QCOMPARE(page2.pageNumber(), 2); QCOMPARE(page2.pageSide(), KWPage::Left); QCOMPARE(page2.width(), oldLayout.width); QCOMPARE(manager->pageCount(), 2); }