Review Request 125877: Fix kdeplatformtheme_unittest after last commit
David Faure
faure at kde.org
Sat Nov 7 08:24:51 UTC 2015
> On Oct. 29, 2015, 8:26 p.m., Aleix Pol Gonzalez wrote:
> > autotests/kdeplatformtheme_unittest.cpp, line 237
> > <https://git.reviewboard.kde.org/r/125877/diff/1/?file=413361#file413361line237>
> >
> > What does `qApp->wheelScrollLines()` return now?
>
> David Rosca wrote:
> It returned the value I have set in mouse kcm, because the test KdePlatformTheme is not installed to qApp (and WheelScrollLines is now set as themeHint instead of directly calling qApp->setWheelScrollLines)
>
> Aleix Pol Gonzalez wrote:
> So the behavior on all applications that used qApp->wheelScrollLines() changed now?
>
> David Rosca wrote:
> No, it just can't be set with QApplication::setWheelScrollLines (from KdePlatformTheme constructor) because QApplication is querying QPlatformTheme for the value.
>
> That is with Qt 5.5, older version didn't have the WheelScrollLines hint.
>
> Marco Martin wrote:
> if QApplication is querying QPlatformTheme for wheelScrollLines(), why do you have to use themeHint directly?
>
> David Rosca wrote:
> Because that's what this autotest is doing (see how the other themeHints are tested above). It just tests if the KdePlatformTheme correctly gets the value from config.
>
> David Faure wrote:
> So why not test both, i.e. turn #else into #endif?
>
> David Rosca wrote:
> Because the platform theme used by QTest QApplication is created before prepareEnvironment() is called, thus it uses the user's kdeglobals and not the one used by tests.
>
> If we fix it, eg with:
>
> ```
> int main(int argc, char *argv[])
> {
> prepareEnvironment();
> qputenv("QT_QPA_PLATFORMTHEME", QByteArrayLiteral("kde"));
> QApplication app(argc, argv);
> KdePlatformTheme_UnitTest t;
> return QTest::qExec(&t, argc, argv);
> }
> ```
>
> instead of using Q_COREAPP_STARTUP_FUNCTION, then we can test the QApplication directly (not only wheelScrollLines, but every other hints).
>
> I can rewrite the test according to this, if it's fine.
You can use Q_CONSTRUCTOR_FUNCTION to run some code before main is called.
We have a few unittests that do this already, like kxmlgui/autotests/ktoolbar_unittest.cpp
- David
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125877/#review87695
-----------------------------------------------------------
On Oct. 29, 2015, 8:22 p.m., David Rosca wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/125877/
> -----------------------------------------------------------
>
> (Updated Oct. 29, 2015, 8:22 p.m.)
>
>
> Review request for KDE Frameworks.
>
>
> Repository: frameworkintegration
>
>
> Description
> -------
>
> see summary
>
>
> Diffs
> -----
>
> autotests/kdeplatformtheme_unittest.cpp f660ffd
>
> Diff: https://git.reviewboard.kde.org/r/125877/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> David Rosca
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20151107/5f26a1fe/attachment-0001.html>
More information about the Kde-frameworks-devel
mailing list