Esempio n. 1
0
void DumpRenderTree::resetToConsistentStateBeforeTesting(const QUrl& url)
{
    // reset so that any current loads are stopped
    // NOTE: that this has to be done before the layoutTestController is
    // reset or we get timeouts for some tests.
    m_page->blockSignals(true);
    m_page->triggerAction(QWebPage::Stop);
    m_page->blockSignals(false);

    QList<QWebSecurityOrigin> knownOrigins = QWebSecurityOrigin::allOrigins();
    for (int i = 0; i < knownOrigins.size(); ++i)
        knownOrigins[i].setDatabaseQuota(databaseDefaultQuota);

    // reset the layoutTestController at this point, so that we under no
    // circumstance dump (stop the waitUntilDone timer) during the reset
    // of the DRT.
    m_controller->reset();

    // reset mouse clicks counter
    m_eventSender->resetClickCount();

    closeRemainingWindows();

    m_page->resetSettings();
#ifndef QT_NO_UNDOSTACK
    m_page->undoStack()->clear();
#endif
    m_page->mainFrame()->setZoomFactor(1.0);
    clearHistory(m_page);
    DumpRenderTreeSupportQt::clearFrameName(m_page->mainFrame());

    m_page->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAsNeeded);
    m_page->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAsNeeded);

    if (url.scheme() == "http" || url.scheme() == "https") {
        // credentials may exist from previous tests.
        m_page->setNetworkAccessManager(0);
        delete m_networkAccessManager;
        m_networkAccessManager = new NetworkAccessManager(this);
        m_page->setNetworkAccessManager(m_networkAccessManager);
    }

    WorkQueue::shared()->clear();
    WorkQueue::shared()->setFrozen(false);

    DumpRenderTreeSupportQt::resetOriginAccessWhiteLists();

    // Qt defaults to Windows editing behavior.
    DumpRenderTreeSupportQt::setEditingBehavior(m_page, "win");

    QLocale::setDefault(QLocale::c());

    layoutTestController()->setDeveloperExtrasEnabled(true);
#ifndef Q_OS_WINCE
    setlocale(LC_ALL, "");
#endif
}
Esempio n. 2
0
void DumpRenderTree::open(const QUrl& url)
{
    DumpRenderTreeSupportQt::dumpResourceLoadCallbacksPath(QFileInfo(url.toString()).path());
    resetToConsistentStateBeforeTesting(url);

    if (isWebInspectorTest(m_page->mainFrame()->url()))
        layoutTestController()->closeWebInspector();

    if (isWebInspectorTest(url))
        layoutTestController()->showWebInspector();

    if (isDumpAsTextTest(url)) {
        layoutTestController()->dumpAsText();
        setDumpPixels(false);
    }

    if (isGlobalHistoryTest(url))
        layoutTestController()->dumpHistoryCallbacks();

    // W3C SVG tests expect to be 480x360
    bool isW3CTest = url.toString().contains("svg/W3C-SVG-1.1");
    int width = isW3CTest ? 480 : LayoutTestController::maxViewWidth;
    int height = isW3CTest ? 360 : LayoutTestController::maxViewHeight;
    m_mainView->resize(QSize(width, height));
    m_page->setPreferredContentsSize(QSize());
    m_page->setViewportSize(QSize(width, height));

    QFocusEvent ev(QEvent::FocusIn);
    m_page->event(&ev);

    QWebSettings::clearMemoryCaches();
#if !(QT_VERSION <= QT_VERSION_CHECK(4, 6, 2))
    QFontDatabase::removeAllApplicationFonts();
#endif
    WebKit::initializeTestFonts();

    DumpRenderTreeSupportQt::dumpFrameLoader(url.toString().contains("loading/"));
    setTextOutputEnabled(true);
    m_page->mainFrame()->load(url);
}