diff --git a/src/webengine/api/qquickwebenginetestsupport.cpp b/src/webengine/api/qquickwebenginetestsupport.cpp
index 0bb16ae140e0e5a6f08d341c5ea1dc5f771f256f..d85e56e59521c5ae043fa288cf9c977cf8765f57 100644
--- a/src/webengine/api/qquickwebenginetestsupport.cpp
+++ b/src/webengine/api/qquickwebenginetestsupport.cpp
@@ -39,34 +39,6 @@
 #include "qquickwebengineloadrequest_p.h"
 
 QT_BEGIN_NAMESPACE
-using namespace QtWebEngineCore;
-
-QQuickWebEngineJavaScriptDialog::QQuickWebEngineJavaScriptDialog(QSharedPointer<JavaScriptDialogController> controller)
-{
-    m_dialogController = controller;
-}
-
-QString QQuickWebEngineJavaScriptDialog::message() const
-{
-    return m_dialogController->message();
-}
-
-QString QQuickWebEngineJavaScriptDialog::defaultValue() const
-{
-    return m_dialogController->defaultPrompt();
-}
-
-void QQuickWebEngineJavaScriptDialog::reject()
-{
-    QMetaObject::invokeMethod(m_dialogController.data(), "reject");
-}
-
-void QQuickWebEngineJavaScriptDialog::accept(const QString &input)
-{
-    if (!input.isNull())
-        QMetaObject::invokeMethod(m_dialogController.data(), "textProvided", Q_ARG(QString, input));
-    QMetaObject::invokeMethod(m_dialogController.data(), "accept");
-}
 
 QQuickWebEngineErrorPage::QQuickWebEngineErrorPage()
 {
@@ -98,28 +70,6 @@ QQuickWebEngineErrorPage *QQuickWebEngineTestSupport::errorPage() const
     return m_errorPage.data();
 }
 
-void QQuickWebEngineTestSupport::testDialog(QSharedPointer<JavaScriptDialogController> dialogController)
-{
-    Q_ASSERT(!dialogController.isNull());
-
-    QQuickWebEngineJavaScriptDialog dialog(dialogController);
-    switch (dialogController->type()) {
-    case WebContentsAdapterClient::AlertDialog:
-        Q_EMIT alertDialog(&dialog);
-        break;
-    case WebContentsAdapterClient::ConfirmDialog:
-        Q_EMIT confirmDialog(&dialog);
-        break;
-    case WebContentsAdapterClient::PromptDialog:
-        Q_EMIT promptDialog(&dialog);
-        break;
-    case WebContentsAdapterClient::InternalAuthorizationDialog:
-        break;
-    default:
-        Q_UNREACHABLE();
-    }
-}
-
 QT_END_NAMESPACE
 
 #include "moc_qquickwebenginetestsupport_p.cpp"
diff --git a/src/webengine/api/qquickwebenginetestsupport_p.h b/src/webengine/api/qquickwebenginetestsupport_p.h
index 06950e4162493c65a9fa1178912c70db13576a7b..832ac2803b0d77f0299e08419ac069a8b1cbf2a9 100644
--- a/src/webengine/api/qquickwebenginetestsupport_p.h
+++ b/src/webengine/api/qquickwebenginetestsupport_p.h
@@ -39,7 +39,6 @@
 
 #include <private/qtwebengineglobal_p.h>
 
-#include "javascript_dialog_controller.h"
 #include <QObject>
 #include <QUrl>
 
@@ -47,24 +46,6 @@ QT_BEGIN_NAMESPACE
 
 class QQuickWebEngineLoadRequest;
 
-class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineJavaScriptDialog : public QObject {
-    Q_OBJECT
-    Q_PROPERTY(QString message READ message CONSTANT)
-    Q_PROPERTY(QString defaultValue READ defaultValue CONSTANT)
-
-public:
-    QQuickWebEngineJavaScriptDialog(QSharedPointer<QtWebEngineCore::JavaScriptDialogController>);
-    QString message() const;
-    QString defaultValue() const;
-
-public Q_SLOTS:
-    void reject();
-    void accept(const QString &input = QString());
-
-private:
-    QSharedPointer<QtWebEngineCore::JavaScriptDialogController> m_dialogController;
-};
-
 class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineErrorPage : public QObject {
     Q_OBJECT
 
@@ -85,12 +66,6 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineTestSupport : public QObject {
 public:
     QQuickWebEngineTestSupport();
     QQuickWebEngineErrorPage *errorPage() const;
-    void testDialog(QSharedPointer<QtWebEngineCore::JavaScriptDialogController> dialog);
-
-Q_SIGNALS:
-    void alertDialog(QQuickWebEngineJavaScriptDialog *dialog);
-    void confirmDialog(QQuickWebEngineJavaScriptDialog *dialog);
-    void promptDialog(QQuickWebEngineJavaScriptDialog *dialog);
 
 private:
     QScopedPointer<QQuickWebEngineErrorPage> m_errorPage;
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 72ccb128a3fb28a7d441ec1ab9ee235c54cfbcc3..bbab3a66f1c59219df3d6ca59707e047cc3a2238 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -229,12 +229,6 @@ void QQuickWebEngineViewPrivate::navigationRequested(int navigationType, const Q
 
 void QQuickWebEngineViewPrivate::javascriptDialog(QSharedPointer<JavaScriptDialogController> dialog)
 {
-#ifdef ENABLE_QML_TESTSUPPORT_API
-    if (m_testSupport) {
-        m_testSupport->testDialog(dialog);
-        return;
-    }
-#endif
     ui()->showDialog(dialog);
 }
 
diff --git a/src/webengine/plugin/testsupport/plugin.cpp b/src/webengine/plugin/testsupport/plugin.cpp
index 667ffffd6a5630c0064e8bf63a5bca18ee103945..60e56062c497ae10d5c9b4aeccea882fcf7efd74 100644
--- a/src/webengine/plugin/testsupport/plugin.cpp
+++ b/src/webengine/plugin/testsupport/plugin.cpp
@@ -55,8 +55,6 @@ public:
         qmlRegisterType<QQuickWebEngineTestSupport>(uri, 1, 0, "WebEngineTestSupport");
         qmlRegisterUncreatableType<QQuickWebEngineErrorPage>(uri, 1, 0, "WebEngineErrorPage",
             QObject::tr("Cannot create a separate instance of WebEngineErrorPage"));
-        qmlRegisterUncreatableType<QQuickWebEngineJavaScriptDialog>(uri, 1, 0, "WebEngineJavaScriptDialog",
-            QObject::tr("Cannot create a separate instance of WebEngineJavaScriptDialog"));
     }
 };
 
diff --git a/tests/auto/quick/qmltests/data/alert.html b/tests/auto/quick/qmltests/data/alert.html
index 39a85351958cc46ec5b7f61075c6a65eb0e60184..89715a7278e287395dab90d056520891a1ee3774 100644
--- a/tests/auto/quick/qmltests/data/alert.html
+++ b/tests/auto/quick/qmltests/data/alert.html
@@ -1,8 +1,5 @@
-<!doctype html>
 <html>
 <head>
     <script> alert("Hello Qt"); </script>
 </head>
-<body>
-</body>
 </html>
diff --git a/tests/auto/quick/qmltests/data/confirm.html b/tests/auto/quick/qmltests/data/confirm.html
index d7256a883ae649248fa5cfa4463c1318c87ead57..a4fc5b53259c6628fee01afd5201021f0ef2e989 100644
--- a/tests/auto/quick/qmltests/data/confirm.html
+++ b/tests/auto/quick/qmltests/data/confirm.html
@@ -1,19 +1,10 @@
-<!doctype html>
 <html>
 <head>
     <script>
-        document.title = "";
-        function updateTitle(accepted) {
-            if (accepted)
-                document.title += " ACCEPTED";
-            else
-                document.title += " REJECTED";
-        }
-
-        updateTitle(confirm("ACCEPT"));
-        updateTitle(confirm("REJECT"));
+    if (confirm("Confirm test"))
+        document.title += " ACCEPTED";
+    else
+        document.title += " REJECTED";
     </script>
 </head>
-<body>
-</body>
 </html>
diff --git a/tests/auto/quick/qmltests/data/prompt.html b/tests/auto/quick/qmltests/data/prompt.html
index ae5fbd07a1a92670a995d9a1ccea607b9e7ca2f7..3293c0dcf7f113e48494fe2bf728834914a18373 100644
--- a/tests/auto/quick/qmltests/data/prompt.html
+++ b/tests/auto/quick/qmltests/data/prompt.html
@@ -1,12 +1,7 @@
-<!doctype html>
 <html>
 <head>
     <script>
         document.title = prompt("Please, reverse the default value", "Hello Qt");
-        if (prompt("REJECT") !== null)
-            document.title = "FAIL";
     </script>
 </head>
-<body>
-</body>
 </html>
diff --git a/tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml b/tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml
index da04fbd92ee67a9e8dea3c3da6824726b4f43deb..d6c85ad86a51f8826d98252ec01ee4db5ffd21ac 100644
--- a/tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml
+++ b/tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml
@@ -42,68 +42,55 @@
 import QtQuick 2.0
 import QtTest 1.0
 import QtWebEngine 1.0
-import QtWebEngine.testsupport 1.0
+import "../mock-delegates/TestParams" 1.0
 
 TestWebEngineView {
     id: webEngineView
 
-    property string messageFromAlertDialog: ""
-    property int confirmCount: 0
-    property int promptCount: 0
-
-    testSupport: WebEngineTestSupport {
-        onAlertDialog: {
-            webEngineView.messageFromAlertDialog = dialog.message
-            dialog.accept()
-        }
-
-        onConfirmDialog: {
-            webEngineView.confirmCount += 1
-            if (dialog.message == "ACCEPT")
-                dialog.accept()
-            else
-                dialog.reject()
-        }
-
-        onPromptDialog: {
-            webEngineView.promptCount += 1
-            if (dialog.message == "REJECT")
-                dialog.reject()
-            else {
-                var reversedDefaultValue = dialog.defaultValue.split("").reverse().join("")
-                dialog.accept(reversedDefaultValue)
-            }
-        }
-    }
-
     TestCase {
         id: test
         name: "WebEngineViewJavaScriptDialogs"
 
         function init() {
-            webEngineView.messageFromAlertDialog = ""
-            webEngineView.confirmCount = 0
-            webEngineView.promptCount = 0
+            JSDialogParams.dialogMessage = "";
+            JSDialogParams.dialogTitle = "";
+            JSDialogParams.dialogCount = 0;
+            JSDialogParams.shouldAcceptDialog = true;
         }
 
         function test_alert() {
             webEngineView.url = Qt.resolvedUrl("alert.html")
             verify(webEngineView.waitForLoadSucceeded())
-            compare(webEngineView.messageFromAlertDialog, "Hello Qt")
+            compare(JSDialogParams.dialogCount, 1)
+            compare(JSDialogParams.dialogMessage, "Hello Qt")
+            verify(JSDialogParams.dialogTitle.indexOf("Javascript Alert -") === 0)
         }
 
         function test_confirm() {
             webEngineView.url = Qt.resolvedUrl("confirm.html")
             verify(webEngineView.waitForLoadSucceeded())
-            compare(webEngineView.confirmCount, 2)
-            compare(webEngineView.title, "ACCEPTED REJECTED")
+            compare(JSDialogParams.dialogMessage, "Confirm test")
+            compare(JSDialogParams.dialogCount, 1)
+            compare(webEngineView.title, "ACCEPTED")
+            JSDialogParams.shouldAcceptDialog = false
+            webEngineView.reload()
+            verify(webEngineView.waitForLoadSucceeded())
+            compare(JSDialogParams.dialogCount, 2)
+            compare(webEngineView.title, "REJECTED")
+
         }
 
         function test_prompt() {
+            JSDialogParams.inputForPrompt = "tQ olleH"
             webEngineView.url = Qt.resolvedUrl("prompt.html")
             verify(webEngineView.waitForLoadSucceeded())
-            compare(webEngineView.promptCount, 2)
+            compare(JSDialogParams.dialogCount, 1)
             compare(webEngineView.title, "tQ olleH")
+            JSDialogParams.shouldAcceptDialog = false
+            webEngineView.reload()
+            verify(webEngineView.waitForLoadSucceeded())
+            compare(JSDialogParams.dialogCount, 2)
+            compare(webEngineView.title, "prompt.html")
         }
     }
 }
diff --git a/tests/auto/quick/qmltests/mock-delegates/QtWebEngine/UIDelegates/AlertDialog.qml b/tests/auto/quick/qmltests/mock-delegates/QtWebEngine/UIDelegates/AlertDialog.qml
new file mode 100644
index 0000000000000000000000000000000000000000..887962a5a828d4a928e69c7b00cb3177093a1c75
--- /dev/null
+++ b/tests/auto/quick/qmltests/mock-delegates/QtWebEngine/UIDelegates/AlertDialog.qml
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtWebEngine module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+// Both dialogs are basically expected to behave in the same way from an API point of view
+ConfirmDialog
+{
+}
diff --git a/tests/auto/quick/qmltests/mock-delegates/QtWebEngine/UIDelegates/ConfirmDialog.qml b/tests/auto/quick/qmltests/mock-delegates/QtWebEngine/UIDelegates/ConfirmDialog.qml
new file mode 100644
index 0000000000000000000000000000000000000000..192272e3db59358f3e0132602ed172cf2cb85f8e
--- /dev/null
+++ b/tests/auto/quick/qmltests/mock-delegates/QtWebEngine/UIDelegates/ConfirmDialog.qml
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtWebEngine module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.0
+import QtTest 1.0
+import "../../TestParams" 1.0
+
+QtObject {
+    property string text;
+    property string title;
+    signal accepted();
+    signal rejected();
+
+    function open() {
+        JSDialogParams.dialogTitle = title;
+        JSDialogParams.dialogMessage = text;
+        JSDialogParams.dialogCount++;
+        if (JSDialogParams.shouldAcceptDialog)
+            accepted()
+        else
+            rejected()
+    }
+}
+
diff --git a/tests/auto/quick/qmltests/mock-delegates/QtWebEngine/UIDelegates/PromptDialog.qml b/tests/auto/quick/qmltests/mock-delegates/QtWebEngine/UIDelegates/PromptDialog.qml
new file mode 100644
index 0000000000000000000000000000000000000000..197987928141ecb661d93de7afe3da00b5cba3b4
--- /dev/null
+++ b/tests/auto/quick/qmltests/mock-delegates/QtWebEngine/UIDelegates/PromptDialog.qml
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtWebEngine module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQml 2.0
+import QtTest 1.0
+import "../../TestParams" 1.0
+
+QtObject {
+    property string text;
+    property string title;
+    signal accepted();
+    signal rejected();
+    signal input(string text);
+    signal closing();
+
+    function open() {
+        JSDialogParams.dialogTitle = title;
+        JSDialogParams.dialogMessage = text;
+        JSDialogParams.dialogCount++;
+        if (JSDialogParams.shouldAcceptDialog) {
+            input(JSDialogParams.inputForPrompt)
+            accepted()
+        } else {
+            rejected()
+        }
+    }
+}
diff --git a/tests/auto/quick/qmltests/mock-delegates/QtWebEngine/UIDelegates/qmldir b/tests/auto/quick/qmltests/mock-delegates/QtWebEngine/UIDelegates/qmldir
new file mode 100644
index 0000000000000000000000000000000000000000..1ebabd3355c8b170d6f5daaf816be616a9f223f8
--- /dev/null
+++ b/tests/auto/quick/qmltests/mock-delegates/QtWebEngine/UIDelegates/qmldir
@@ -0,0 +1,4 @@
+module QtWebEngine.UIDelegates
+AlertDialog 1.0 AlertDialog.qml
+ConfirmDialog 1.0 ConfirmDialog.qml
+PromptDialog 1.0 PromptDialog.qml
diff --git a/tests/auto/quick/qmltests/mock-delegates/TestParams/JSDialogParams.qml b/tests/auto/quick/qmltests/mock-delegates/TestParams/JSDialogParams.qml
new file mode 100644
index 0000000000000000000000000000000000000000..e1370640bdaf1b9b16de4e89002c6142fc1061d3
--- /dev/null
+++ b/tests/auto/quick/qmltests/mock-delegates/TestParams/JSDialogParams.qml
@@ -0,0 +1,45 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtWebEngine module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+pragma Singleton
+import QtQml 2.0
+
+QtObject {
+    property string dialogMessage: "";
+    property string dialogTitle: "";
+    property bool shouldAcceptDialog: true;
+    property string inputForPrompt;
+    property int dialogCount: 0
+}
diff --git a/tests/auto/quick/qmltests/mock-delegates/TestParams/qmldir b/tests/auto/quick/qmltests/mock-delegates/TestParams/qmldir
new file mode 100644
index 0000000000000000000000000000000000000000..f2ed87a750065eafac17260cbcbb4c8e30af56f9
--- /dev/null
+++ b/tests/auto/quick/qmltests/mock-delegates/TestParams/qmldir
@@ -0,0 +1,4 @@
+# QML module so that the autotests can set testing parameters
+module TestParams
+singleton JSDialogParams 1.0 JSDialogParams.qml
+
diff --git a/tests/auto/quick/qmltests/qmltests.pro b/tests/auto/quick/qmltests/qmltests.pro
index 4b6795ae110d5f741c94d98af516698356b8f411..c2e915c359568866ec713602a9657289aa9fbe45 100644
--- a/tests/auto/quick/qmltests/qmltests.pro
+++ b/tests/auto/quick/qmltests/qmltests.pro
@@ -37,6 +37,12 @@ OTHER_FILES += \
     $$PWD/data/tst_runJavaScript.qml \
     $$PWD/data/tst_titleChanged.qml \
     $$PWD/data/tst_keyboardModifierMapping.qml \
+    $$PWD/mock-delegates/QtWebEngine/UIDelegates/AlertDialog.qml \
+    $$PWD/mock-delegates/QtWebEngine/UIDelegates/ConfirmDialog.qml \
+    $$PWD/mock-delegates/QtWebEngine/UIDelegates/PromptDialog.qml \
+    $$PWD/mock-delegates/QtWebEngine/UIDelegates/qmldir \
+    $$PWD/mock-delegates/TestParams/JSDialogParams.qml \
+    $$PWD/mock-delegates/TestParams/qmldir \
 
 
 load(qt_build_paths)
diff --git a/tests/auto/quick/qmltests/tst_qmltests.cpp b/tests/auto/quick/qmltests/tst_qmltests.cpp
index d9fc128df76a9e1922ca623849dd81ff66330f76..43f4816731748daf529ba5ede8e505e57f4e3513 100644
--- a/tests/auto/quick/qmltests/tst_qmltests.cpp
+++ b/tests/auto/quick/qmltests/tst_qmltests.cpp
@@ -39,6 +39,19 @@
 **
 ****************************************************************************/
 
+#include <QtCore/QScopedPointer>
 #include <QtQuickTest/quicktest.h>
 #include "qt_webengine_quicktest.h"
-QT_WEBENGINE_TEST_MAIN(qmltests);
+
+int main(int argc, char **argv)
+{
+    // Inject the mock ui delegates module
+    qputenv("QML2_IMPORT_PATH", QByteArray(TESTS_SOURCE_DIR "qmltests/mock-delegates"));
+    QScopedPointer<Application> app;
+
+    if (!QCoreApplication::instance())
+        app.reset(new Application(argc, argv));
+    QtWebEngine::initialize();
+    int i = quick_test_main(argc, argv, "qmltests", QUICK_TEST_SOURCE_DIR);
+    return i;
+}
diff --git a/tests/auto/quick/shared/qt_webengine_quicktest.h b/tests/auto/quick/shared/qt_webengine_quicktest.h
index 4d515c3944c34e74ce0fa7453c9829f0d3d329bf..8193775e335569a9260cfafdd90d577f6ac790c7 100644
--- a/tests/auto/quick/shared/qt_webengine_quicktest.h
+++ b/tests/auto/quick/shared/qt_webengine_quicktest.h
@@ -65,18 +65,6 @@ QT_BEGIN_NAMESPACE
 #define Application QGuiApplication
 #endif
 
-#define QT_WEBENGINE_TEST_MAIN(name) \
-    int main(int argc, char **argv) \
-    { \
-        Application* app = 0; \
-        if (!QCoreApplication::instance()) \
-            app = new Application(argc, argv); \
-        QtWebEngine::initialize(); \
-        int i = quick_test_main(argc, argv, #name, QUICK_TEST_SOURCE_DIR); \
-        delete app; \
-        return i; \
-    }
-
 QT_END_NAMESPACE
 
 #endif // QT_WEBENGINE_QUICKTEST_H