summaryrefslogtreecommitdiff
path: root/tests/auto/cplusplus/findusages/tst_findusages.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-02-16 18:23:22 +0100
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-02-17 16:01:41 +0100
commitb2042b79a2931a5ba553c8171c7a22e905e50f23 (patch)
tree11abcf7c8c5d34153166d169549387f39d741c84 /tests/auto/cplusplus/findusages/tst_findusages.cpp
parent04d15f09a2ae8d2da9aebf891fb389d65ef60a99 (diff)
downloadqt-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.cpp46
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)