~ubuntu-branches/ubuntu/intrepid/kdebase/intrepid-backports

« back to all changes in this revision

Viewing changes to apps/konqueror/src/tests/konqviewmgrtest.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Steve Stalcup
  • Date: 2008-10-31 10:55:17 UTC
  • mfrom: (1.1.19 upstream)
  • Revision ID: james.westby@ubuntu.com-20081031105517-62s6t4f2c8j420dy
Tags: 4:4.1.3-0ubuntu1~intrepid1
* New upstream release (LP: #279190, #289832)
* removed following patches completely from debian/patches
  - kubuntu_05_konsole_resize.diff
  - kubuntu_06_fix_cut_copy_context_menu.diff
  - kubuntu_07_fix_KDE_169103_dolphin_crash.diff
  - kubuntu_900_improve_kfind_performance.diff

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
};
50
50
#endif
51
51
 
52
 
static void sendAllPendingResizeEvents( QWidget* mainWindow )
 
52
void ViewMgrTest::sendAllPendingResizeEvents( QWidget* mainWindow )
53
53
{
54
54
    bool foundOne = true;
55
55
    while ( foundOne ) {
70
70
        // Process LayoutRequest events, in particular
71
71
        qApp->sendPostedEvents();
72
72
        //qDebug() << "Loop done, checking again";
 
73
 
 
74
        if (!foundOne) { // about to exit, reset visible flag, to avoid crashes in qt
 
75
            foreach( QWidget* w, allChildWidgets ) {
 
76
                w->setAttribute(Qt::WA_WState_Visible, false);
 
77
            }
 
78
        }
73
79
    }
74
80
}
75
81
 
309
315
    QCOMPARE(view2->url().url(), KUrl("data:text/html, Link target").url());
310
316
}
311
317
 
312
 
void ViewMgrTest::testAddTab()
 
318
static void openTabWithTitle(KonqMainWindow& mainWindow, const QString& title, KonqView*& view)
313
319
{
314
 
    KonqMainWindow mainWindow;
315
320
    KonqViewManager* viewManager = mainWindow.viewManager();
316
 
    KonqView* view = viewManager->createFirstView( "KonqAboutPage", "konq_aboutpage" );
 
321
    view = viewManager->addTab("text/html");
317
322
    QVERIFY( view );
318
 
    KonqView* viewTab2 = viewManager->addTab("text/html");
319
 
    QVERIFY( viewTab2 );
320
 
    QCOMPARE( DebugFrameVisitor::inspect(&mainWindow), QString("MT[FF].") ); // mainWindow, tab widget, two tabs
321
 
    QVERIFY(viewTab2->supportsMimeType("text/html"));
322
 
    QVERIFY(!viewTab2->supportsMimeType("text/plain"));
 
323
    QVERIFY(view->supportsMimeType("text/html"));
 
324
    QVERIFY(!view->supportsMimeType("text/plain"));
323
325
    // correct since it's a subclass of text/html, khtml can display it
324
 
    QVERIFY(viewTab2->supportsMimeType("application/x-netscape-bookmarks"));
 
326
    QVERIFY(view->supportsMimeType("application/x-netscape-bookmarks"));
 
327
    // Tab caption test
 
328
    view->openUrl(KUrl("data:text/html, <title>" + title.toUtf8() + "</title>"), QString("http://loc.bar.url"));
 
329
    QVERIFY(QTest::kWaitForSignal(view, SIGNAL(viewCompleted(KonqView*)), 10000));
 
330
    QCOMPARE(view->caption(), title);
 
331
    QCOMPARE(view->locationBarURL(), QString("http://loc.bar.url"));
 
332
}
 
333
 
 
334
void ViewMgrTest::testAddTabs()
 
335
{
 
336
    KonqMainWindow mainWindow;
 
337
    KonqViewManager* viewManager = mainWindow.viewManager();
 
338
 
 
339
    KonqView* view = viewManager->createFirstView( "KonqAboutPage", "konq_aboutpage" );
 
340
    QVERIFY( view );
 
341
    QStringList titles;
 
342
    // The testcase was "konqueror www.kde.org www.google.fr bugs.kde.org www.cuil.com www.davidfaure.fr"
 
343
    titles << "K Desktop Environment - Be free"
 
344
           << "Google"
 
345
           << "KDE Bug Tracking System"
 
346
           << "Cuil"
 
347
           << "http://www.davidfaure.fr/";
 
348
    view->setCaption(titles[0]);
 
349
 
 
350
    KTabWidget* tabWidget = mainWindow.findChild<KTabWidget*>();
 
351
    QVERIFY(tabWidget);
 
352
    KonqView* viewTab2, *viewTab3, *viewTab4, *viewTab5;
 
353
    openTabWithTitle(mainWindow, titles[1], viewTab2);
 
354
    openTabWithTitle(mainWindow, titles[2], viewTab3);
 
355
    openTabWithTitle(mainWindow, titles[3], viewTab4);
 
356
    openTabWithTitle(mainWindow, titles[4], viewTab5);
 
357
    for (int i = 0; i < titles.count(); ++i)
 
358
        QCOMPARE(tabWidget->tabText(i), QString(titles[i]));
 
359
 
 
360
    // Ensure tabwidget has a nice size
 
361
    mainWindow.resize(599, 699);
 
362
    sendAllPendingResizeEvents( &mainWindow );
 
363
 
 
364
    // Remove active tab (#170470)
 
365
    tabWidget->setCurrentIndex(2);
 
366
    KonqFrameBase* frame = dynamic_cast<KonqFrameBase*>(viewManager->tabContainer()->currentWidget());
 
367
    QVERIFY(frame);
 
368
    viewManager->removeTab(frame);
 
369
    QList<int> expectedTitles; expectedTitles << 0 << 1 << 3 << 4;
 
370
    for (int i = 0; i < expectedTitles.count(); ++i)
 
371
        QCOMPARE(tabWidget->tabText(i), titles[expectedTitles[i]]);
 
372
    for (int i = 0; i < expectedTitles.count(); ++i)
 
373
        QCOMPARE(tabWidget->QTabWidget::tabText(i).left(10), titles[expectedTitles[i]].left(10));
 
374
 
 
375
    tabWidget->removeTab(0);
 
376
    expectedTitles.removeAt(0);
 
377
    for (int i = 0; i < expectedTitles.count(); ++i)
 
378
        QCOMPARE(tabWidget->tabText(i), QString(titles[expectedTitles[i]]));
325
379
}
326
380
 
327
381
void ViewMgrTest::testDuplicateTab()