~ubuntu-branches/ubuntu/precise/koffice/precise

« back to all changes in this revision

Viewing changes to kword/part/tests/TestBasicLayout.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2010-09-21 15:36:35 UTC
  • mfrom: (1.4.1 upstream) (60.2.11 maverick)
  • Revision ID: james.westby@ubuntu.com-20100921153635-6tejqkiro2u21ydi
Tags: 1:2.2.2-0ubuntu3
Add kubuntu_03_fix-crash-on-closing-sqlite-connection-2.2.2.diff and
kubuntu_04_support-large-memo-values-for-msaccess-2.2.2.diff as
recommended by upstream http://kexi-
project.org/wiki/wikiview/index.php@Kexi2.2_Patches.html#sqlite_stab
ility

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "TestBasicLayout.h"
 
2
#include "TestDocumentLayout.h"
 
3
 
 
4
#include "../KWPageManager.h"
 
5
#include "../KWPage.h"
 
6
#include "../KWPageStyle.h"
 
7
#include "../frames/KWFrameLayout.h"
 
8
#include "../frames/KWTextFrameSet.h"
 
9
#include "../frames/KWTextFrame.h"
 
10
#include "../KWDocument.h"
 
11
#include "../KWord.h"
 
12
 
 
13
#include <KoTextDocumentLayout.h>
 
14
#include <QTextCursor>
 
15
 
 
16
#include <kcomponentdata.h>
 
17
 
 
18
class Helper
 
19
{
 
20
public:
 
21
    Helper() {
 
22
        pageManager = new KWPageManager();
 
23
        KWPage page = pageManager->appendPage();
 
24
        KoPageLayout pageLayout = page.pageStyle().pageLayout();
 
25
        pageLayout.width = 200;
 
26
        pageLayout.height = 200;
 
27
        page.pageStyle().setPageLayout(pageLayout);
 
28
        pageStyle = page.pageStyle();
 
29
    }
 
30
    ~Helper() {
 
31
        delete pageManager;
 
32
    }
 
33
 
 
34
    KWPageManager *pageManager;
 
35
    KWPageStyle pageStyle;
 
36
};
 
37
 
 
38
TestBasicLayout::TestBasicLayout()
 
39
{
 
40
    new KComponentData("TestBasicLayout");
 
41
}
 
42
 
 
43
void TestBasicLayout::testGetOrCreateFrameSet()
 
44
{
 
45
    Helper helper;
 
46
    m_frames.clear();
 
47
    KWPage page = helper.pageManager->page(1);
 
48
    KWFrameLayout bfl(helper.pageManager, m_frames);
 
49
    connect(&bfl, SIGNAL(newFrameSet(KWFrameSet*)), this, SLOT(addFS(KWFrameSet*)));
 
50
 
 
51
    KWTextFrameSet *fs = bfl.getOrCreate(KWord::OddPagesHeaderTextFrameSet, page);
 
52
    QVERIFY(fs);
 
53
    QCOMPARE(fs->textFrameSetType(), KWord::OddPagesHeaderTextFrameSet);
 
54
 
 
55
    KWTextFrameSet *fs2 = bfl.getOrCreate(KWord::OddPagesHeaderTextFrameSet, page);
 
56
    QVERIFY(fs2);
 
57
    QCOMPARE(fs, fs2);
 
58
    QVERIFY(m_frames.contains(fs2));
 
59
 
 
60
    KWTextFrameSet *main = new KWTextFrameSet(0, KWord::MainTextFrameSet);
 
61
    m_frames.append(main);
 
62
    bfl.m_setup = false;
 
63
    KWTextFrameSet *main2 = bfl.getOrCreate(KWord::MainTextFrameSet, page);
 
64
    QVERIFY(main2);
 
65
    QCOMPARE(main, main2);
 
66
    QCOMPARE(main->textFrameSetType(), KWord::MainTextFrameSet);
 
67
}
 
68
 
 
69
void TestBasicLayout::testCreateNewFramesForPage()
 
70
{
 
71
    Helper helper;
 
72
    m_frames.clear();
 
73
    QVERIFY(m_frames.count() == 0);
 
74
    KWFrameLayout bfl(helper.pageManager, m_frames);
 
75
    KWPage page = helper.pageManager->page(1);
 
76
    connect(&bfl, SIGNAL(newFrameSet(KWFrameSet*)), this, SLOT(addFS(KWFrameSet*)));
 
77
 
 
78
    KWTextFrameSet *main = bfl.getOrCreate(KWord::MainTextFrameSet, page);
 
79
    QVERIFY(main);
 
80
    QCOMPARE(bfl.hasFrameOn(main, 1), false);
 
81
 
 
82
    KoShape *shape = new MockTextShape();
 
83
    new KWTextFrame(shape, main);
 
84
    QCOMPARE(main->frameCount(), 1);
 
85
 
 
86
    QCOMPARE(bfl.hasFrameOn(main, 1), true);
 
87
 
 
88
    bfl.createNewFramesForPage(1);
 
89
    QCOMPARE(main->frameCount(), 1);
 
90
}
 
91
 
 
92
void TestBasicLayout::testShouldHaveHeaderOrFooter()
 
93
{
 
94
    Helper helper;
 
95
    m_frames.clear();
 
96
    KWFrameLayout bfl(helper.pageManager, m_frames);
 
97
    connect(&bfl, SIGNAL(newFrameSet(KWFrameSet*)), this, SLOT(addFS(KWFrameSet*)));
 
98
 
 
99
    // test the first page
 
100
    helper.pageStyle.setHeaderPolicy(KWord::HFTypeNone);
 
101
    helper.pageStyle.setFooterPolicy(KWord::HFTypeNone);
 
102
    KWord::TextFrameSetType origin;
 
103
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(1, true, &origin), false);  // header
 
104
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(1, false, &origin), false); // footer
 
105
 
 
106
    helper.pageStyle.setHeaderPolicy(KWord::HFTypeEvenOdd);
 
107
    helper.pageStyle.setFooterPolicy(KWord::HFTypeUniform);
 
108
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(1, true, &origin), true);
 
109
    QCOMPARE(origin, KWord::OddPagesHeaderTextFrameSet);
 
110
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(1, false, &origin), true);
 
111
    QCOMPARE(origin, KWord::OddPagesFooterTextFrameSet);
 
112
 
 
113
    helper.pageStyle.setHeaderPolicy(KWord::HFTypeUniform);
 
114
    helper.pageStyle.setFooterPolicy(KWord::HFTypeEvenOdd);
 
115
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(1, true, &origin), true);
 
116
    QCOMPARE(origin, KWord::OddPagesHeaderTextFrameSet);
 
117
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(1, false, &origin), true);
 
118
    QCOMPARE(origin, KWord::OddPagesFooterTextFrameSet);
 
119
 
 
120
    // append the second page, same pageStyle like the first
 
121
    helper.pageManager->appendPage();
 
122
    QVERIFY(helper.pageManager->page(1).pageStyle() == helper.pageManager->page(2).pageStyle());
 
123
 
 
124
    // append the theird page with another pagesettings
 
125
    KWPageStyle pagesettings3("Page3PageStyle");
 
126
    helper.pageManager->addPageStyle(pagesettings3);
 
127
    helper.pageManager->appendPage(pagesettings3);
 
128
    QVERIFY(helper.pageManager->page(3).pageStyle() == pagesettings3);
 
129
 
 
130
    // test the second page
 
131
    helper.pageStyle.setHeaderPolicy(KWord::HFTypeNone);
 
132
    helper.pageStyle.setFooterPolicy(KWord::HFTypeNone);
 
133
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(2, true, &origin), false);
 
134
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(2, false, &origin), false);
 
135
 
 
136
    helper.pageStyle.setHeaderPolicy(KWord::HFTypeEvenOdd);
 
137
    helper.pageStyle.setFooterPolicy(KWord::HFTypeUniform);
 
138
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(2, true, &origin), true);
 
139
    QCOMPARE(origin, KWord::EvenPagesHeaderTextFrameSet);
 
140
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(2, false, &origin), true);
 
141
    QCOMPARE(origin, KWord::OddPagesFooterTextFrameSet);
 
142
 
 
143
    // test the 3rd page
 
144
    pagesettings3.setHeaderPolicy(KWord::HFTypeEvenOdd);
 
145
    pagesettings3.setFooterPolicy(KWord::HFTypeUniform);
 
146
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(3, true, &origin), true);
 
147
    QCOMPARE(origin, KWord::OddPagesHeaderTextFrameSet);
 
148
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(3, false, &origin), true);
 
149
    QCOMPARE(origin, KWord::OddPagesFooterTextFrameSet);
 
150
 
 
151
    pagesettings3.setHeaderPolicy(KWord::HFTypeNone);
 
152
    pagesettings3.setFooterPolicy(KWord::HFTypeNone);
 
153
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(3, true, &origin), false);
 
154
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(3, false, &origin), false);
 
155
 
 
156
    // test the first and the second pages again to be sure they still have there prev values
 
157
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(1, true, &origin), true);
 
158
    QCOMPARE(bfl.shouldHaveHeaderOrFooter(2, true, &origin), true);
 
159
}
 
160
 
 
161
void TestBasicLayout::headerPerPage()
 
162
{
 
163
    Helper helper;
 
164
    m_frames.clear();
 
165
    KWPage page = helper.pageManager->begin();
 
166
    KWFrameLayout bfl(helper.pageManager, m_frames);
 
167
    connect(&bfl, SIGNAL(newFrameSet(KWFrameSet*)), this, SLOT(addFS(KWFrameSet*)));
 
168
 
 
169
    KWPageStyle myStyle("myStyle");
 
170
    myStyle.setHeaderPolicy(KWord::HFTypeUniform);
 
171
    helper.pageManager->addPageStyle(myStyle);
 
172
    KWPage page2 = helper.pageManager->appendPage(myStyle);
 
173
    QVERIFY(page.pageStyle() != page2.pageStyle());
 
174
    QCOMPARE(bfl.m_pageStyles.count(), 0);
 
175
 
 
176
    KWTextFrameSet *fs = bfl.getOrCreate(KWord::OddPagesHeaderTextFrameSet, page);
 
177
    QVERIFY(fs);
 
178
    QCOMPARE(fs->textFrameSetType(), KWord::OddPagesHeaderTextFrameSet);
 
179
 
 
180
    QCOMPARE(bfl.m_pageStyles.count(), 1);
 
181
    QVERIFY(bfl.m_pageStyles.contains(page.pageStyle()));
 
182
    KWFrameLayout::FrameSets fsets = bfl.m_pageStyles[page.pageStyle()];
 
183
    QCOMPARE(fsets.oddHeaders, fs);
 
184
    QCOMPARE(fsets.evenHeaders, (void*) 0);
 
185
    QCOMPARE(fsets.oddFooters, (void*) 0);
 
186
    QCOMPARE(fsets.evenFooters, (void*) 0);
 
187
 
 
188
    KWTextFrameSet *fs2 = bfl.getOrCreate(KWord::OddPagesHeaderTextFrameSet, page2);
 
189
    QVERIFY(fs2);
 
190
    QCOMPARE(fs2->textFrameSetType(), KWord::OddPagesHeaderTextFrameSet);
 
191
 
 
192
    QVERIFY(fs != fs2);
 
193
    QCOMPARE(bfl.getOrCreate(KWord::OddPagesHeaderTextFrameSet, page2), fs2);
 
194
    QCOMPARE(bfl.getOrCreate(KWord::OddPagesHeaderTextFrameSet, page), fs);
 
195
 
 
196
    QCOMPARE(bfl.m_pageStyles.count(), 2);
 
197
    QVERIFY(bfl.m_pageStyles.contains(page.pageStyle()));
 
198
    QVERIFY(bfl.m_pageStyles.contains(page2.pageStyle()));
 
199
    fsets = bfl.m_pageStyles[page.pageStyle()];
 
200
    QCOMPARE(fsets.oddHeaders, fs);
 
201
    QCOMPARE(fsets.evenHeaders, (void*) 0);
 
202
    QCOMPARE(fsets.oddFooters, (void*) 0);
 
203
    QCOMPARE(fsets.evenFooters, (void*) 0);
 
204
    KWFrameLayout::FrameSets fsets2 = bfl.m_pageStyles[page2.pageStyle()];
 
205
    QCOMPARE(fsets2.oddHeaders, fs2);
 
206
    QCOMPARE(fsets2.evenHeaders, (void*) 0);
 
207
    QCOMPARE(fsets2.oddFooters, (void*) 0);
 
208
    QCOMPARE(fsets2.evenFooters, (void*) 0);
 
209
}
 
210
 
 
211
void TestBasicLayout::testFrameCreation()
 
212
{
 
213
    Helper helper;
 
214
    m_frames.clear();
 
215
    KWFrameLayout bfl(helper.pageManager, m_frames);
 
216
    connect(&bfl, SIGNAL(newFrameSet(KWFrameSet*)), this, SLOT(addFS(KWFrameSet*)));
 
217
 
 
218
    KWPageStyle style = helper.pageManager->defaultPageStyle();
 
219
    style.setHeaderPolicy(KWord::HFTypeUniform);
 
220
    style.setHasMainTextFrame(true);
 
221
 
 
222
    bfl.createNewFramesForPage(1);
 
223
    QVERIFY(bfl.m_maintext != 0);
 
224
    QCOMPARE(bfl.m_maintext->frameCount(), 1);
 
225
 
 
226
    KWFrameLayout::FrameSets frameSets = bfl.m_pageStyles.value(style);
 
227
    QVERIFY(frameSets.oddHeaders != 0);
 
228
    QCOMPARE(frameSets.oddHeaders->frameCount(), 1);
 
229
    QVERIFY(frameSets.evenHeaders == 0);
 
230
    QVERIFY(frameSets.oddFooters == 0);
 
231
    QVERIFY(frameSets.evenFooters == 0);
 
232
 
 
233
    KoColumns columns = style.columns();
 
234
    columns.columns = 2;
 
235
    style.setColumns(columns);
 
236
 
 
237
    removeAllFrames();
 
238
    bfl.createNewFramesForPage(1);
 
239
    QCOMPARE(bfl.m_maintext->frameCount(), 2);
 
240
 
 
241
    frameSets = bfl.m_pageStyles.value(style);
 
242
    QVERIFY(frameSets.oddHeaders != 0);
 
243
    QCOMPARE(frameSets.oddHeaders->frameCount(), 1);
 
244
    QVERIFY(frameSets.evenHeaders == 0);
 
245
    QVERIFY(frameSets.oddFooters == 0);
 
246
    QVERIFY(frameSets.evenFooters == 0);
 
247
}
 
248
 
 
249
void TestBasicLayout::testCreateNewFrameForPage_data()
 
250
{
 
251
    // tests void KWFrameLayout::createNewFrameForPage(KWTextFrameSet *fs, int pageNumber)
 
252
    QTest::addColumn<QStringList>("pages");
 
253
    QTest::addColumn<int>("frameSetType");
 
254
    QTest::addColumn<int>("pageNumber");
 
255
    QTest::addColumn<int>("expectedFrameCount");
 
256
 
 
257
    QTest::newRow("noFooter1") << (QStringList() << QString("style1") << QString("style2")) <<
 
258
        (int) KWord::OddPagesFooterTextFrameSet << 1 << 0;
 
259
    QTest::newRow("noFooter2") << (QStringList() << QString("style1") << QString("style2")) <<
 
260
        (int) KWord::EvenPagesFooterTextFrameSet << 1 << 0;
 
261
    QTest::newRow("noFooter3") << (QStringList() << QString("style1") << QString("style2")) <<
 
262
        (int) KWord::EvenPagesFooterTextFrameSet << 2 << 0;
 
263
 
 
264
    QTest::newRow("noHeader1") << (QStringList() << QString("style1") << QString("style2")) <<
 
265
        (int) KWord::OddPagesHeaderTextFrameSet << 1 << 0;
 
266
    QTest::newRow("noHeader2") << (QStringList() << QString("style1") << QString("style2")) <<
 
267
        (int) KWord::OddPagesHeaderTextFrameSet << 2 << 0;
 
268
    QTest::newRow("noHeader3") << (QStringList() << QString("style1") << QString("style2")) <<
 
269
        (int) KWord::EvenPagesHeaderTextFrameSet << 1 << 0;
 
270
 
 
271
    QTest::newRow("oddHeader1") << (QStringList() << QString("style2") << QString("style2")) <<
 
272
        (int) KWord::OddPagesHeaderTextFrameSet << 1 << 1;
 
273
    QTest::newRow("oddHeader2") << (QStringList() << QString("style2") << QString("style2")) <<
 
274
        (int) KWord::OddPagesHeaderTextFrameSet << 2 << 0;
 
275
    QTest::newRow("evenHeader1") << (QStringList() << QString("style2") << QString("style2")) <<
 
276
        (int) KWord::EvenPagesHeaderTextFrameSet << 1 << 0;
 
277
    QTest::newRow("evenHeader2") << (QStringList() << QString("style2") << QString("style2")) <<
 
278
        (int) KWord::EvenPagesHeaderTextFrameSet << 2 << 1;
 
279
 
 
280
    QTest::newRow("main1") << (QStringList() << QString("style1") << QString("style3") << QString("style4")) <<
 
281
        (int) KWord::MainTextFrameSet << 1 << 1;
 
282
    QTest::newRow("main2") << (QStringList() << QString("style1") << QString("style3") << QString("style4")) <<
 
283
        (int) KWord::MainTextFrameSet << 2 << 0;
 
284
    QTest::newRow("main3") << (QStringList() << QString("style1") << QString("style3") << QString("style4")) <<
 
285
        (int) KWord::MainTextFrameSet << 3 << 2;
 
286
    QTest::newRow("main4") << (QStringList() << QString("style5")) <<
 
287
        (int) KWord::MainTextFrameSet << 1 << 0;
 
288
 
 
289
    QTest::newRow("footer1") << (QStringList() << QString("style3") << QString("style5") << QString("style2")) <<
 
290
        (int) KWord::EvenPagesFooterTextFrameSet << 1 << 0; // uniform goes to the odd
 
291
    QTest::newRow("footer2") << (QStringList() << QString("style3") << QString("style5") << QString("style2")) <<
 
292
        (int) KWord::EvenPagesFooterTextFrameSet << 2 << 0;
 
293
    QTest::newRow("footer3") << (QStringList() << QString("style3") << QString("style5") << QString("style2")) <<
 
294
        (int) KWord::EvenPagesFooterTextFrameSet << 3 << 0; // uniform goes to the odd
 
295
 
 
296
    QTest::newRow("footer4") << (QStringList() << QString("style3") << QString("style5") << QString("style2")) <<
 
297
        (int) KWord::OddPagesFooterTextFrameSet << 1 << 1;
 
298
    QTest::newRow("footer5") << (QStringList() << QString("style3") << QString("style5") << QString("style2")) <<
 
299
        (int) KWord::OddPagesFooterTextFrameSet << 2 << 0;
 
300
    QTest::newRow("footer6") << (QStringList() << QString("style3") << QString("style5") << QString("style2")) <<
 
301
        (int) KWord::OddPagesFooterTextFrameSet << 3 << 1;
 
302
}
 
303
 
 
304
void TestBasicLayout::testCreateNewFrameForPage()
 
305
{
 
306
    QFETCH(QStringList, pages);
 
307
    QFETCH(int, frameSetType);
 
308
    QFETCH(int, pageNumber);
 
309
    QFETCH(int, expectedFrameCount);
 
310
 
 
311
    QHash<QString, KWPageStyle> styles;
 
312
    KWPageStyle style1("style1");
 
313
    style1.setHeaderPolicy(KWord::HFTypeNone);
 
314
    style1.setHasMainTextFrame(true);
 
315
    style1.setFooterPolicy(KWord::HFTypeNone);
 
316
    styles.insert(style1.name(), style1);
 
317
 
 
318
    KWPageStyle style2("style2");
 
319
    style2.setHeaderPolicy(KWord::HFTypeEvenOdd);
 
320
    style2.setHasMainTextFrame(true);
 
321
    style2.setFooterPolicy(KWord::HFTypeUniform);
 
322
    styles.insert(style2.name(), style2);
 
323
 
 
324
    KWPageStyle style3("style3"); // weird
 
325
    style3.setHeaderPolicy(KWord::HFTypeEvenOdd);
 
326
    style3.setHasMainTextFrame(false);
 
327
    style3.setFooterPolicy(KWord::HFTypeUniform);
 
328
    styles.insert(style3.name(), style3);
 
329
 
 
330
    KWPageStyle style4("style4");
 
331
    style4.setHeaderPolicy(KWord::HFTypeUniform);
 
332
    style4.setHasMainTextFrame(true);
 
333
    style4.setFooterPolicy(KWord::HFTypeEvenOdd);
 
334
    KoColumns columns;
 
335
    columns.columns = 2;
 
336
    columns.columnSpacing = 4;
 
337
    style4.setColumns(columns);
 
338
    styles.insert(style4.name(), style4);
 
339
 
 
340
    KWPageStyle style5("style5"); // blank
 
341
    style5.setHeaderPolicy(KWord::HFTypeNone);
 
342
    style5.setHasMainTextFrame(false);
 
343
    style5.setFooterPolicy(KWord::HFTypeNone);
 
344
    style5.setColumns(columns);
 
345
    styles.insert(style5.name(), style5);
 
346
 
 
347
    KWPageManager manager;
 
348
    foreach (const QString &styleName, pages) {
 
349
        QVERIFY(styles.contains(styleName));
 
350
        manager.appendPage(styles[styleName]);
 
351
    }
 
352
 
 
353
    m_frames.clear();
 
354
    KWTextFrameSet tfs(0, (KWord::TextFrameSetType) frameSetType);
 
355
    m_frames << &tfs;
 
356
    KWFrameLayout frameLayout(&manager, m_frames);
 
357
    connect(&frameLayout, SIGNAL(newFrameSet(KWFrameSet*)), this, SLOT(addFS(KWFrameSet*)));
 
358
 
 
359
    KWPage page = manager.page(pageNumber);
 
360
    QVERIFY(page.isValid());
 
361
    tfs.setPageStyle(page.pageStyle());
 
362
 
 
363
    frameLayout.createNewFramesForPage(pageNumber);
 
364
    QCOMPARE(tfs.frameCount(), expectedFrameCount);
 
365
    foreach(KWFrame *frame, tfs.frames()) {
 
366
        QVERIFY (page.rect().contains(frame->shape()->position()));
 
367
    }
 
368
}
 
369
 
 
370
void TestBasicLayout::testLargeHeaders()
 
371
{
 
372
    // create a header with waaaaaaay to much text and do one page layout.
 
373
    // Check if the header has been trunkated and no new page has been requested.
 
374
    Helper helper;
 
375
    m_frames.clear();
 
376
    KWPage page = helper.pageManager->begin();
 
377
    helper.pageStyle.setHeaderPolicy(KWord::HFTypeUniform);
 
378
 
 
379
    KWFrameLayout bfl(helper.pageManager, m_frames);
 
380
    connect(&bfl, SIGNAL(newFrameSet(KWFrameSet*)), this, SLOT(addFS(KWFrameSet*)));
 
381
 
 
382
    KWTextFrameSet *fs = bfl.getOrCreate(KWord::OddPagesHeaderTextFrameSet, page);
 
383
    QVERIFY(fs);
 
384
    QCOMPARE(fs->frameCount(), 0);
 
385
    bfl.createNewFramesForPage(page.pageNumber());
 
386
    QCOMPARE(fs->frameCount(), 1);
 
387
 
 
388
    // now we have to make sure the header looks pretty full
 
389
    KWTextFrame *tf = dynamic_cast<KWTextFrame*>(fs->frames().at(0));
 
390
    QVERIFY(tf);
 
391
    tf->setMinimumFrameHeight(300);
 
392
    bfl.layoutFramesOnPage(page.pageNumber());
 
393
    QCOMPARE(fs->frameCount(), 1);
 
394
 
 
395
    KoShape *shape = fs->frames()[0]->shape();
 
396
    QVERIFY(shape->size().width() <= 200);
 
397
    // the header can never be bigger than a page.
 
398
    QVERIFY(shape->size().height() < 180);
 
399
 
 
400
    // the header can never force the main text fs to get too small
 
401
    KWTextFrameSet *mfs = bfl.getOrCreate(KWord::MainTextFrameSet, page);
 
402
    QVERIFY(mfs);
 
403
    QCOMPARE(mfs->frameCount(), 1);
 
404
    shape = mfs->frames()[0]->shape();
 
405
    QVERIFY(shape->size().height() >= 10);
 
406
}
 
407
 
 
408
// helper method (slot)
 
409
void TestBasicLayout::addFS(KWFrameSet*fs)
 
410
{
 
411
    m_frames.append(fs);
 
412
}
 
413
 
 
414
void TestBasicLayout::removeAllFrames()
 
415
{
 
416
    foreach (KWFrameSet *fs, m_frames) {
 
417
        foreach (KWFrame *frame, fs->frames()) {
 
418
            fs->removeFrame(frame);
 
419
            delete frame->shape();
 
420
        }
 
421
    }
 
422
}
 
423
 
 
424
QTEST_KDEMAIN(TestBasicLayout, GUI)
 
425
 
 
426
#include <TestBasicLayout.moc>