Review Request 111390: kshorturifilter: inverted condition in home directory handling
David Faure
faure at kde.org
Sat Jul 6 15:54:35 BST 2013
> On July 5, 2013, 2:27 p.m., David Faure wrote:
> > Sounds like the unittest is incomplete then, if it didn't catch the error with ~ or ~user.
> >
> >
> > (I don't mean testing the case where the home dir is empty, I only mean the normal case, which you say was going into an error path).
>
> Jonathan Marten wrote:
> Having looked at the unittest, it doesn't test for that condition. It would only be triggered in the case of '~user' where the user is valid (and not '~' alone because that is a separate code path). The unittest only checks for '~foobar', a nonexistent user, so user.isValid() is false and the second condition would never be tried.
>
> The case that does exercise this code would be '~user' where the user does exist; for example testing for '~bin'. Running the test with the unmodified code does give a test fail:
>
> QDEBUG : KUriFilterTest::localFiles() qttest(11024)/kurifilter (plugins) KShortUriFilter::filterUri: "~bin"
> QDEBUG : KUriFilterTest::localFiles() qttest(11024) filter: *** Result: Encountered error => ' "/bin" '
> QDEBUG : KUriFilterTest::localFiles() qttest(11024) filter: Reason: "<html><b>bin</b> does not have a home folder.</html>"
> QSYSTEM: KUriFilterTest::localFiles() qttest(11024): ~bin Got URI type ERROR expected LOCAL_DIR
> FAIL! : KUriFilterTest::localFiles() Compared strings are not the same
> Actual (s_uritypes[filterData->uriType()]): ERROR
> Expected (s_uritypes[expectedUriType]): LOCAL_DIR
> Loc: [/ws/trunk/kdebase/kderuntime/kurifilter-plugins/tests/kurifiltertest.cpp(109)]
>
> but with the modified code the test passes.
>
> Should I commit an additional test of
>
> filter( "~bin", 0, KUriFilterData::LocalDir, QStringList( "kshorturifilter" ) );
>
> to make the coverage complete?
>
Perfect, a good test is a test that fails initially.
Yes, please commit the additional test.
Maybe use a username that is more guaranteed not to exist, e.g. "does_not_exist".
- David
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/111390/#review35635
-----------------------------------------------------------
On July 4, 2013, 6:32 p.m., Jonathan Marten wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/111390/
> -----------------------------------------------------------
>
> (Updated July 4, 2013, 6:32 p.m.)
>
>
> Review request for KDE Runtime.
>
>
> Description
> -------
>
> While investigating URI filtering/validation elsewhere I spotted some odd logic here. The original line in question seems to be saying:
>
> if (user is valid && user's home directory is empty)
> {
> // replace from '~' onwards with home directory
> }
> else
> {
> // generate an error
> }
>
> The second condition, though, is surely wrong. It should say:
>
> if (user is valid && user's home directory is NOT empty)
> ...
>
>
> Diffs
> -----
>
> kurifilter-plugins/shorturi/kshorturifilter.cpp d27b018
>
> Diff: http://git.reviewboard.kde.org/r/111390/diff/
>
>
> Testing
> -------
>
> Build kderumtime with this change. Checked correct results for '~' and '~user', where the user both exists and does not, in konqueror and krunner. Ran the kurifiltertest with all passes.
>
>
> Thanks,
>
> Jonathan Marten
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20130706/992efdb4/attachment.htm>
More information about the kde-core-devel
mailing list