Lekensteyn created this revision.
Lekensteyn added reviewers: ngraham, dfaure, fvogt.
Lekensteyn added a project: Frameworks.
Lekensteyn requested review of this revision.

REVISION SUMMARY
  When the Save File dialog is in use with filters, any relative path
  would trigger warnings due to KIO::stat receiving an invalid URL in
  KFileWidgetPrivate::updateLocationEditExtension. Fix the warning by
  ensuring that relative paths are valid file URLs.
  
  Add a bunch of tests to check the expected properties while at it. These
  tests pass regardless of the fix but after the fix, warnings are gone.
  
  BUG: 373119

TEST PLAN
  Before the kfilewidget.cpp change:
  
    $ ninja bin/kfilewidgettest && bin/kfilewidgettest testFilterChange 
testSetFilterForSave
    Config: Using QtTest library 5.12.0, Qt 5.12.0 (x86_64-little_endian-lp64 
shared (dynamic) release build; by GCC 8.2.1 20181127)
    PASS   : KFileWidgetTest::initTestCase()
    QWARN  : KFileWidgetTest::testFilterChange() kf5.kio.core: Invalid URL: 
QUrl("some.txt")
    QWARN  : KFileWidgetTest::testFilterChange() kf5.kio.core: Invalid URL: 
QUrl("some.txt")
    QWARN  : KFileWidgetTest::testFilterChange() kf5.kio.core: Invalid URL: 
QUrl("some.txt")
    Qt: Session management error: networkIdsList argument is NULL
    PASS   : KFileWidgetTest::testFilterChange()
    QWARN  : KFileWidgetTest::testSetFilterForSave(some.txt) kf5.kio.core: 
Invalid URL: QUrl("some.txt")
    QWARN  : KFileWidgetTest::testSetFilterForSave(some.txt) kf5.kio.core: 
Invalid URL: QUrl("some.txt")
    PASS   : KFileWidgetTest::testSetFilterForSave(some.txt)
    PASS   : KFileWidgetTest::testSetFilterForSave(extensionless name)
    PASS   : KFileWidgetTest::testSetFilterForSave(existing file)
    QWARN  : KFileWidgetTest::testSetFilterForSave(some.2019) kf5.kio.core: 
Invalid URL: QUrl("some.2019")
    QWARN  : KFileWidgetTest::testSetFilterForSave(some.2019) kf5.kio.core: 
Invalid URL: QUrl("some.txt")
    PASS   : KFileWidgetTest::testSetFilterForSave(some.2019)
    QWARN  : KFileWidgetTest::testSetFilterForSave(some.html) kf5.kio.core: 
Invalid URL: QUrl("some.html")
    QWARN  : KFileWidgetTest::testSetFilterForSave(some.html) kf5.kio.core: 
Invalid URL: QUrl("some.txt")
    PASS   : KFileWidgetTest::testSetFilterForSave(some.html)
    PASS   : KFileWidgetTest::cleanupTestCase()
  
  After the change, all `QWARN` lines are gone.

REPOSITORY
  R241 KIO

REVISION DETAIL
  https://phabricator.kde.org/D19027

AFFECTED FILES
  autotests/kfilewidgettest.cpp
  src/filewidgets/kfilewidget.cpp

To: Lekensteyn, ngraham, dfaure, fvogt
Cc: kde-frameworks-devel, michaelh, ngraham, bruns

Reply via email to