summaryrefslogtreecommitdiff
path: root/tests/auto/cplusplus/ast/tst_ast.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2013-10-08 13:42:39 +0200
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-10-09 15:13:31 +0200
commit0e4deaba2356e0baec5d6e65dabf503bf6f7c3bc (patch)
treedab8ff508e9aba1e4ae06711fcf0f1555e2db9f8 /tests/auto/cplusplus/ast/tst_ast.cpp
parentc5dfcce948dd40dac4f1a22d97a53afc5c6b7494 (diff)
downloadqt-creator-0e4deaba2356e0baec5d6e65dabf503bf6f7c3bc.tar.gz
C++: Parse MEMBER in Q_PROPERTY()
MEMBER was added in Qt5. Task-number: QTCREATORBUG-10068 Change-Id: Ic6c15a0e5ee8981ab98e4c12fc1521dc281b731f Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'tests/auto/cplusplus/ast/tst_ast.cpp')
-rw-r--r--tests/auto/cplusplus/ast/tst_ast.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/auto/cplusplus/ast/tst_ast.cpp b/tests/auto/cplusplus/ast/tst_ast.cpp
index f97b47a82e..329662892e 100644
--- a/tests/auto/cplusplus/ast/tst_ast.cpp
+++ b/tests/auto/cplusplus/ast/tst_ast.cpp
@@ -152,6 +152,10 @@ private slots:
void cpp_constructor_multiple_args();
void cpp_constructor_function_try_catch();
+ // Q_PROPERTY
+ void cpp_qproperty();
+ void cpp_qproperty_data();
+
// objc++
void objc_simple_class();
void objc_attributes_followed_by_at_keyword();
@@ -1235,6 +1239,39 @@ void tst_AST::cpp_constructor_function_try_catch()
QVERIFY(funDecl->parameter_declaration_clause->parameter_declaration_list != 0);
}
+void tst_AST::cpp_qproperty()
+{
+ QFETCH(QByteArray, source);
+ QVERIFY(!source.isEmpty());
+
+ const QByteArray sourceWithinClass = "class C { " + source + " };";
+ QSharedPointer<TranslationUnit> unit(parseDeclaration(sourceWithinClass, false, true));
+ QVERIFY(unit->ast());
+
+ QCOMPARE(diag.errorCount, 0);
+}
+
+void tst_AST::cpp_qproperty_data()
+{
+ QTest::addColumn<QByteArray>("source");
+
+ QTest::newRow("read-final")
+ << QByteArray("Q_PROPERTY(bool focus READ hasFocus FINAL)");
+ QTest::newRow("read-write-final")
+ << QByteArray("Q_PROPERTY(bool focus READ hasFocus WRITE setFocus FINAL)");
+ QTest::newRow("member-final")
+ << QByteArray("Q_PROPERTY(bool focus MEMBER m_focus FINAL)");
+ QTest::newRow("member-read-final")
+ << QByteArray("Q_PROPERTY(bool focus MEMBER m_focus READ m_focus FINAL)");
+ QTest::newRow("member-read-write-final")
+ << QByteArray("Q_PROPERTY(bool focus MEMBER m_focus READ hasFocus WRITE setFocus FINAL)");
+
+ QTest::newRow("all")
+ << QByteArray("Q_PROPERTY(bool focus MEMBER m_focus READ hasFocus WRITE setFocus"
+ " RESET resetFocus NOTIFY focusChanged REVISION 1 DESIGNABLE true"
+ " SCRIPTABLE true STORED true USER true CONSTANT FINAL)");
+}
+
void tst_AST::objc_simple_class()
{
QSharedPointer<TranslationUnit> unit(parseDeclaration("\n"