diff options
author | Erik Verbruggen <erik.verbruggen@nokia.com> | 2010-02-16 18:23:22 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@nokia.com> | 2010-02-17 16:01:41 +0100 |
commit | b2042b79a2931a5ba553c8171c7a22e905e50f23 (patch) | |
tree | 11abcf7c8c5d34153166d169549387f39d741c84 /tests/auto/cplusplus/findusages/tst_findusages.cpp | |
parent | 04d15f09a2ae8d2da9aebf891fb389d65ef60a99 (diff) | |
download | qt-creator-b2042b79a2931a5ba553c8171c7a22e905e50f23.tar.gz |
Added unittest for FindUsages in Q_PROPERTY declarations.
Diffstat (limited to 'tests/auto/cplusplus/findusages/tst_findusages.cpp')
-rw-r--r-- | tests/auto/cplusplus/findusages/tst_findusages.cpp | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/tests/auto/cplusplus/findusages/tst_findusages.cpp b/tests/auto/cplusplus/findusages/tst_findusages.cpp index 90724c38dd..ef5ea22b82 100644 --- a/tests/auto/cplusplus/findusages/tst_findusages.cpp +++ b/tests/auto/cplusplus/findusages/tst_findusages.cpp @@ -50,6 +50,9 @@ class tst_FindUsages: public QObject private Q_SLOTS: void inlineMethod(); + // Qt keywords + void qproperty_1(); + // Objective-C void objc_args(); // void objc_methods(); @@ -149,8 +152,47 @@ void tst_FindUsages::objc_args() FindUsages findUsages(doc, snapshot); findUsages.setGlobalNamespaceBinding(bind(doc, snapshot)); findUsages(arg); - QCOMPARE(findUsages.usages().size(), 3); - QCOMPARE(findUsages.references().size(), 3); + QCOMPARE(findUsages.usages().size(), 2); + QCOMPARE(findUsages.references().size(), 2); +} + +void tst_FindUsages::qproperty_1() +{ + const QByteArray src = "\n" + "class Tst: public QObject {\n" + " Q_PROPERTY(int x READ x WRITE setX NOTIFY xChanged)\n" + "public:\n" + " int x() { return _x; }\n" + " void setX(int x) { if (_x != x) { _x = x; emit xChanged(x); } }\n" + "signals:\n" + " void xChanged(int);\n" + "private:\n" + " int _x;\n" + "};\n"; + Document::Ptr doc = Document::create("qproperty_1"); + doc->setSource(src); + doc->parse(); + doc->check(); + + QVERIFY(doc->diagnosticMessages().isEmpty()); + QCOMPARE(doc->globalSymbolCount(), 1U); + + Snapshot snapshot; + snapshot.insert(doc); + + Class *tst = doc->globalSymbolAt(0)->asClass(); + QVERIFY(tst); + QCOMPARE(tst->memberCount(), 4U); + Function *setX_method = tst->memberAt(1)->asFunction(); + QVERIFY(setX_method); + QCOMPARE(setX_method->identifier()->chars(), "setX"); + QCOMPARE(setX_method->argumentCount(), 1U); + + FindUsages findUsages(doc, snapshot); + findUsages.setGlobalNamespaceBinding(bind(doc, snapshot)); + findUsages(setX_method); + QCOMPARE(findUsages.usages().size(), 2); + QCOMPARE(findUsages.references().size(), 2); } QTEST_APPLESS_MAIN(tst_FindUsages) |