diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-10-08 13:42:39 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-10-09 15:13:31 +0200 |
commit | 0e4deaba2356e0baec5d6e65dabf503bf6f7c3bc (patch) | |
tree | dab8ff508e9aba1e4ae06711fcf0f1555e2db9f8 /tests/auto/cplusplus/ast/tst_ast.cpp | |
parent | c5dfcce948dd40dac4f1a22d97a53afc5c6b7494 (diff) | |
download | qt-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.cpp | 37 |
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" |