From 3a96f1a674778ecd79745db7fc5dbff3236a0853 Mon Sep 17 00:00:00 2001 From: Szabolcs David Date: Thu, 8 May 2014 07:50:25 -0700 Subject: Add enum type parameter support to public API test This test fails since we use enum type (JavaScriptConsoleMessageLevel) as function parameter type. In these cases the given typeName does not contains the class name in isCheckedEnum(). Change-Id: Iab1b257883ff415a2b9c63af106ed3d92050896d Reviewed-by: Jocelyn Turcotte --- tests/auto/quick/publicapi/tst_publicapi.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/tests/auto/quick/publicapi/tst_publicapi.cpp b/tests/auto/quick/publicapi/tst_publicapi.cpp index 5cafc2bcb..bd5abd7a5 100644 --- a/tests/auto/quick/publicapi/tst_publicapi.cpp +++ b/tests/auto/quick/publicapi/tst_publicapi.cpp @@ -62,6 +62,8 @@ static QList typesToCheck = QList() // << &QQuickWebEngineNavigationRequest::staticMetaObject ; +static QList knownEnumNames = QList(); + static QStringList expectedAPI = QStringList() << "QQuickWebEngineView.AcceptRequest --> NavigationRequestAction" << "QQuickWebEngineView.IgnoreRequest --> NavigationRequestAction" @@ -82,6 +84,12 @@ static QStringList expectedAPI = QStringList() << "QQuickWebEngineView.ReloadNavigation --> NavigationType" << "QQuickWebEngineView.FormResubmittedNavigation --> NavigationType" << "QQuickWebEngineView.OtherNavigation --> NavigationType" + << "QQuickWebEngineView.NewViewInWindow --> NewViewDestination" + << "QQuickWebEngineView.NewViewInTab --> NewViewDestination" + << "QQuickWebEngineView.NewViewInDialog --> NewViewDestination" + << "QQuickWebEngineView.Info --> JavaScriptConsoleMessageLevel" + << "QQuickWebEngineView.Warning --> JavaScriptConsoleMessageLevel" + << "QQuickWebEngineView.Error --> JavaScriptConsoleMessageLevel" << "QQuickWebEngineView.title --> QString" << "QQuickWebEngineView.url --> QUrl" << "QQuickWebEngineView.icon --> QUrl" @@ -94,7 +102,7 @@ static QStringList expectedAPI = QStringList() << "QQuickWebEngineView.navigationHistoryChanged() --> void" << "QQuickWebEngineView.loadingChanged(QQuickWebEngineLoadRequest*) --> void" << "QQuickWebEngineView.loadProgressChanged() --> void" - << "QQuickWebEngineView.javaScriptConsoleMessage(int,QString,int,QString) --> void" + << "QQuickWebEngineView.javaScriptConsoleMessage(JavaScriptConsoleMessageLevel,QString,int,QString) --> void" << "QQuickWebEngineView.urlChanged() --> void" << "QQuickWebEngineView.iconChanged() --> void" << "QQuickWebEngineView.linkHovered(QUrl) --> void" @@ -131,6 +139,12 @@ static bool isCheckedEnum(const QByteArray &typeName) if (mo->enumerator(i).name() == enumName) return true; } + } else if (tokens.size() == 1) { + QByteArray &enumName = tokens[0]; + foreach (const char *knownEnumName, knownEnumNames) { + if (enumName == knownEnumName) + return true; + } } return false; } @@ -181,8 +195,10 @@ static void gatherAPI(const QString &prefix, const QMetaMethod &method, QStringL static void gatherAPI(const QString &prefix, const QMetaObject *meta, QStringList *output) { // *Offset points us only at the leaf class members, we don't have inheritance in our API yet anyway. - for (int i = meta->enumeratorOffset(); i < meta->enumeratorCount(); ++i) + for (int i = meta->enumeratorOffset(); i < meta->enumeratorCount(); ++i) { + knownEnumNames << meta->enumerator(i).name(); gatherAPI(prefix, meta->enumerator(i), output); + } for (int i = meta->propertyOffset(); i < meta->propertyCount(); ++i) gatherAPI(prefix, meta->property(i), output); for (int i = meta->methodOffset(); i < meta->methodCount(); ++i) -- cgit v1.2.3