diff options
author | abcd <amos.choy@nokia.com> | 2012-07-27 13:59:20 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-08-02 07:25:20 +0200 |
commit | 7d8d130aa3ea4f11f6ceaccac0e9abeed480029c (patch) | |
tree | 511849e7f94ac38c2857672082c94417bfd02df4 /tests/auto/qplaceeditorial | |
parent | 29760b127b4f4a6de8d178f6049b05f1c338ffb0 (diff) | |
download | qtlocation-7d8d130aa3ea4f11f6ceaccac0e9abeed480029c.tar.gz |
Fix detachment of QPlaceEditorial objects
During shared d-pointer detachment of a QPlaceEditorial instance,
the QPlaceContent fields were not copied.
The QPlaceEditorial unit test has been modified to check
this issue.
Change-Id: Icb216f9c910ca1d13f7ece16ab18e67e3e6ec500
Reviewed-by: Alex <alex.blasche@nokia.com>
Diffstat (limited to 'tests/auto/qplaceeditorial')
-rw-r--r-- | tests/auto/qplaceeditorial/tst_qplaceeditorial.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/auto/qplaceeditorial/tst_qplaceeditorial.cpp b/tests/auto/qplaceeditorial/tst_qplaceeditorial.cpp index 0583a20e..cf26d515 100644 --- a/tests/auto/qplaceeditorial/tst_qplaceeditorial.cpp +++ b/tests/auto/qplaceeditorial/tst_qplaceeditorial.cpp @@ -44,6 +44,9 @@ #include <QtLocation/QPlaceEditorial> #include <QtLocation/QPlaceSupplier> +#include <QtLocation/QPlaceUser> + +#include "../utils/qlocationtestutils_p.h" QT_USE_NAMESPACE @@ -54,6 +57,12 @@ class tst_QPlaceEditorial : public QObject public: tst_QPlaceEditorial(); + //needed for QLocationTestUtils::testConversion + QPlaceEditorial initialSubObject(); + bool checkType(const QPlaceContent &); + void detach(QPlaceContent *); + void setSubClassProperty(QPlaceEditorial *); + private Q_SLOTS: void constructorTest(); void supplierTest(); @@ -61,12 +70,48 @@ private Q_SLOTS: void titleTest(); void languageTest(); void operatorsTest(); + void conversionTest(); }; tst_QPlaceEditorial::tst_QPlaceEditorial() { } +QPlaceEditorial tst_QPlaceEditorial::initialSubObject() +{ + QPlaceUser user; + user.setName("user 1"); + user.setUserId("0001"); + + QPlaceSupplier supplier; + supplier.setName("supplier"); + supplier.setSupplierId("1"); + + QPlaceEditorial editorial; + editorial.setTitle("title"); + editorial.setText("text"); + editorial.setLanguage("en"); + editorial.setUser(user); + editorial.setSupplier(supplier); + editorial.setAttribution("attribution"); + + return editorial; +} + +bool tst_QPlaceEditorial::checkType(const QPlaceContent &content) +{ + return content.type() == QPlaceContent::EditorialType; +} + +void tst_QPlaceEditorial::detach(QPlaceContent *content) +{ + content->setAttribution("attribution"); +} + +void tst_QPlaceEditorial::setSubClassProperty(QPlaceEditorial * editorial) +{ + editorial->setTitle("new title"); +} void tst_QPlaceEditorial::constructorTest() { QPlaceEditorial testObj; @@ -123,6 +168,12 @@ void tst_QPlaceEditorial::operatorsTest() QVERIFY2(testObj != testObj2, "Object should be different"); } +void tst_QPlaceEditorial::conversionTest() +{ + QLocationTestUtils::testConversion<tst_QPlaceEditorial, + QPlaceContent, + QPlaceEditorial>(this); +} QTEST_APPLESS_MAIN(tst_QPlaceEditorial); #include "tst_qplaceeditorial.moc" |