diff --git a/autotests/kurlcompletiontest.cpp b/autotests/kurlcompletiontest.cpp --- a/autotests/kurlcompletiontest.cpp +++ b/autotests/kurlcompletiontest.cpp @@ -51,6 +51,7 @@ void testLocalURL(); void testEmptyCwd(); void testBug346920(); + void testInvalidProtocol(); void testUser(); void testCancel(); @@ -339,7 +340,6 @@ void KUrlCompletionTest::testEmptyCwd() { - qDebug(); // Completion with empty string (with a KUrlCompletion whose cwd is "") qDebug() << endl << "now completing on '' with empty cwd"; m_completionEmptyCwd->makeCompletion(QLatin1String("")); @@ -356,6 +356,14 @@ // just don't crash } +void KUrlCompletionTest::testInvalidProtocol() +{ + m_completion->makeCompletion(QStringLiteral(":/")); + waitForCompletion(m_completion); + m_completion->allMatches(); + // just don't crash +} + void KUrlCompletionTest::testUser() { m_completionEmptyCwd->makeCompletion(QStringLiteral("~")); @@ -427,6 +435,7 @@ testLocalURL(); testEmptyCwd(); testBug346920(); + testInvalidProtocol(); testUser(); testCancel(); teardown(); diff --git a/src/widgets/kurlcompletion.cpp b/src/widgets/kurlcompletion.cpp --- a/src/widgets/kurlcompletion.cpp +++ b/src/widgets/kurlcompletion.cpp @@ -1016,7 +1016,7 @@ } // url is malformed - if (!url_dir.isValid()) { + if (!url_dir.isValid() || url.scheme().isEmpty()) { return false; }