diff options
author | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2016-01-04 14:11:07 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2016-01-04 14:11:07 +0100 |
commit | 5a7d3e78db2e9b6a939a896c679091cea77f40d5 (patch) | |
tree | eea8a4e25ac5821b2c542765e113225cecbd4919 /tests | |
parent | dbc49a32b8990e1f0f915f73ed195f7120dcb295 (diff) | |
parent | f4545031f92fbc26e381a0ce8c3c3ef75dca7409 (diff) | |
download | qt-creator-5a7d3e78db2e9b6a939a896c679091cea77f40d5.tar.gz |
Merge remote-tracking branch 'origin/3.6'
Conflicts:
qtcreator.pri
qtcreator.qbs
Change-Id: Ifbe181e86c161e082cc9a69a4bc7bd399f34ff47
Diffstat (limited to 'tests')
4 files changed, 138 insertions, 18 deletions
diff --git a/tests/unit/unittest/codecompletionsextractortest.cpp b/tests/unit/unittest/codecompletionsextractortest.cpp index d9f070a3ba..f4777343bd 100644 --- a/tests/unit/unittest/codecompletionsextractortest.cpp +++ b/tests/unit/unittest/codecompletionsextractortest.cpp @@ -630,11 +630,10 @@ TEST_F(CodeCompletionsExtractor, CompletionChunksFunctionWithOptionalChunks) {CodeCompletionChunk::TypedText, Utf8StringLiteral("FunctionWithOptional")}, {CodeCompletionChunk::LeftParen, Utf8StringLiteral("(")}, {CodeCompletionChunk::Placeholder, Utf8StringLiteral("int x")}, - {CodeCompletionChunk::Optional, Utf8String(), CodeCompletionChunks({ - {CodeCompletionChunk::Comma, Utf8StringLiteral(", ")}, - {CodeCompletionChunk::Placeholder, Utf8StringLiteral("char y")}, - {CodeCompletionChunk::Comma, Utf8StringLiteral(", ")}, - {CodeCompletionChunk::Placeholder, Utf8StringLiteral("int z")}})}, + {CodeCompletionChunk::Comma, Utf8StringLiteral(", "), true}, + {CodeCompletionChunk::Placeholder, Utf8StringLiteral("char y"), true}, + {CodeCompletionChunk::Comma, Utf8StringLiteral(", "), true}, + {CodeCompletionChunk::Placeholder, Utf8StringLiteral("int z"), true}, {CodeCompletionChunk::RightParen, Utf8StringLiteral(")")}}))); } diff --git a/tests/unit/unittest/completionchunkstotextconvertertest.cpp b/tests/unit/unittest/completionchunkstotextconvertertest.cpp index 032124dfc5..42ec87768a 100644 --- a/tests/unit/unittest/completionchunkstotextconvertertest.cpp +++ b/tests/unit/unittest/completionchunkstotextconvertertest.cpp @@ -50,6 +50,7 @@ protected: protected: Converter converter; CodeCompletionChunk integerResultType{CodeCompletionChunk::ResultType, Utf8StringLiteral("int")}; + CodeCompletionChunk templateResultType{CodeCompletionChunk::ResultType, Utf8StringLiteral("Foo<int>")}; CodeCompletionChunk enumerationResultType{CodeCompletionChunk::ResultType, Utf8StringLiteral("Enumeration")}; CodeCompletionChunk functionName{CodeCompletionChunk::TypedText, Utf8StringLiteral("Function")}; CodeCompletionChunk variableName{CodeCompletionChunk::TypedText, Utf8StringLiteral("Variable")}; @@ -63,6 +64,7 @@ protected: CodeCompletionChunk functionArgumentX{CodeCompletionChunk::Placeholder, Utf8StringLiteral("char x")}; CodeCompletionChunk functionArgumentY{CodeCompletionChunk::Placeholder, Utf8StringLiteral("int y")}; CodeCompletionChunk functionArgumentZ{CodeCompletionChunk::Placeholder, Utf8StringLiteral("int z")}; + CodeCompletionChunk functionArgumentTemplate{CodeCompletionChunk::Placeholder, Utf8StringLiteral("const Foo<int> &foo")}; CodeCompletionChunk switchName{CodeCompletionChunk::TypedText, Utf8StringLiteral("switch")}; CodeCompletionChunk condition{CodeCompletionChunk::Placeholder, Utf8StringLiteral("condition")}; CodeCompletionChunk leftBrace{CodeCompletionChunk::LeftBrace, Utf8StringLiteral("{")}; @@ -80,10 +82,12 @@ protected: CodeCompletionChunk elseName{CodeCompletionChunk::TypedText, Utf8StringLiteral("else")}; CodeCompletionChunk ifName{CodeCompletionChunk::TypedText, Utf8StringLiteral("if")}; CodeCompletionChunk horizontalSpace{CodeCompletionChunk::HorizontalSpace, Utf8StringLiteral(" ")}; - CodeCompletionChunk optional{CodeCompletionChunk::Optional, Utf8String(), {comma, functionArgumentY, comma, functionArgumentZ}}; CodeCompletionChunk enableIfT{CodeCompletionChunk::TypedText, Utf8StringLiteral("enable_if_t")}; CodeCompletionChunk enableIfTCondition{CodeCompletionChunk::Placeholder, Utf8StringLiteral("_Cond")}; - CodeCompletionChunk enableIfTType{CodeCompletionChunk::Placeholder, Utf8StringLiteral("_Tp")}; + CodeCompletionChunk optionalEnableIfTType{CodeCompletionChunk::Placeholder, Utf8StringLiteral("_Tp"), true}; + CodeCompletionChunk optionalComma{CodeCompletionChunk::Comma, Utf8StringLiteral(", "), true}; + CodeCompletionChunk optionalFunctionArgumentY{CodeCompletionChunk::Placeholder, Utf8StringLiteral("int y"), true}; + CodeCompletionChunk optionalFunctionArgumentZ{CodeCompletionChunk::Placeholder, Utf8StringLiteral("int z"), true}; }; TEST_F(CompletionChunksToTextConverter, ParseIsClearingText) @@ -117,9 +121,111 @@ TEST_F(CompletionChunksToTextConverter, ConvertFunctionWithParameters) ASSERT_THAT(converter.text(), QStringLiteral("int Function(char x)")); } +TEST_F(CompletionChunksToTextConverter, ConvertToFunctionSignatureWithOneArgument) +{ + CodeCompletionChunks completionChunks({integerResultType, + functionName, + leftParen, + functionArgumentX, + rightParen}); + + using ClangCodeModel::Internal::CompletionChunksToTextConverter; + + ASSERT_THAT(converter.convertToFunctionSignature(completionChunks), + QStringLiteral("int Function(char x)")); +} + +TEST_F(CompletionChunksToTextConverter, ConvertToFunctionSignatureWithOneParameterThatIsActive) +{ + CodeCompletionChunks completionChunks({integerResultType, + functionName, + leftParen, + functionArgumentX, + rightParen}); + + ASSERT_THAT(converter.convertToFunctionSignature(completionChunks, 1), + QStringLiteral("int Function(<b>char x</b>)")); +} + +TEST_F(CompletionChunksToTextConverter, ConvertToFunctionSignatureWithOneParameterAndInInvalidActiveParameter) +{ + CodeCompletionChunks completionChunks({integerResultType, + functionName, + leftParen, + functionArgumentX, + rightParen}); + + ASSERT_THAT(converter.convertToFunctionSignature(completionChunks, -1), + QStringLiteral("int Function(char x)")); +} + +TEST_F(CompletionChunksToTextConverter, ConvertToFunctionSignatureWithTwoParametersWhereOneIsActive) +{ + CodeCompletionChunks completionChunks({integerResultType, + functionName, + leftParen, + functionArgumentX, + comma, + functionArgumentY, + rightParen}); + + ASSERT_THAT(converter.convertToFunctionSignature(completionChunks, 2), + QStringLiteral("int Function(char x, <b>int y</b>)")); +} + +TEST_F(CompletionChunksToTextConverter, ConvertToFunctionSignatureWithTwoParametersWhereOneIsOptionalAndActive) +{ + CodeCompletionChunks completionChunks({integerResultType, + functionName, + leftParen, + functionArgumentX, + optionalComma, + optionalFunctionArgumentY, + rightParen}); + + ASSERT_THAT(converter.convertToFunctionSignature(completionChunks, 2), + QStringLiteral("int Function(char x<i>, <b>int y</b></i>)")); +} + +TEST_F(CompletionChunksToTextConverter, ConvertToFunctionSignatureWithTemplateReturnType) +{ + CodeCompletionChunks completionChunks({templateResultType, + functionName, + leftParen, + functionArgumentX, + rightParen}); + + using ClangCodeModel::Internal::CompletionChunksToTextConverter; + + ASSERT_THAT(CompletionChunksToTextConverter::convertToFunctionSignature(completionChunks), + QStringLiteral("Foo<int> Function(char x)")); +} + +TEST_F(CompletionChunksToTextConverter, ConvertToFunctionSignatureWithTemplateArgument) +{ + CodeCompletionChunks completionChunks({integerResultType, + functionName, + leftParen, + functionArgumentTemplate, + rightParen}); + + using ClangCodeModel::Internal::CompletionChunksToTextConverter; + + ASSERT_THAT(CompletionChunksToTextConverter::convertToFunctionSignature(completionChunks), + QStringLiteral("int Function(const Foo<int> &foo)")); +} + TEST_F(CompletionChunksToTextConverter, ConvertFunctionWithOptionalParameter) { - CodeCompletionChunks completionChunks({integerResultType, functionName, leftParen, functionArgumentX, optional,rightParen}); + CodeCompletionChunks completionChunks({integerResultType, + functionName, + leftParen, + functionArgumentX, + optionalComma, + optionalFunctionArgumentY, + optionalComma, + optionalFunctionArgumentZ, + rightParen}); ASSERT_THAT(Converter::convertToToolTip(completionChunks), QStringLiteral("int Function (char x<i>, int y, int z</i>)")); @@ -157,12 +263,12 @@ TEST_F(CompletionChunksToTextConverter, Enumeration) TEST_F(CompletionChunksToTextConverter, Switch) { CodeCompletionChunks completionChunks({switchName, - leftParen, - condition, - rightParen, - leftBrace, - verticalSpace, - rightBrace}); + leftParen, + condition, + rightParen, + leftBrace, + verticalSpace, + rightBrace}); setupConverterForKeywords(); converter.parseChunks(completionChunks); @@ -204,7 +310,7 @@ TEST_F(CompletionChunksToTextConverter, const_cast) converter.parseChunks(completionChunks); - ASSERT_THAT(converter.text(), QStringLiteral("const_cast<>()")); + ASSERT_THAT(converter.text(), QStringLiteral("const_cast<>()")); } TEST_F(CompletionChunksToTextConverter, Throw) @@ -239,13 +345,14 @@ TEST_F(CompletionChunksToTextConverter, EnableIfT) CodeCompletionChunks completionChunks({enableIfT, leftAngle, enableIfTCondition, - CodeCompletionChunk(CodeCompletionChunk::Optional, Utf8String(), {comma, enableIfTType}), + optionalComma, + optionalEnableIfTType, rightAngle}); setupConverterForKeywords(); converter.parseChunks(completionChunks); - ASSERT_THAT(converter.text(), QStringLiteral("enable_if_t<>")); + ASSERT_THAT(converter.text(), QStringLiteral("enable_if_t<>")); } void CompletionChunksToTextConverter::setupConverterForKeywords() diff --git a/tests/unit/unittest/data/highlightinginformations.cpp b/tests/unit/unittest/data/highlightinginformations.cpp index 5c3ffaaa36..7ac03287ff 100644 --- a/tests/unit/unittest/data/highlightinginformations.cpp +++ b/tests/unit/unittest/data/highlightinginformations.cpp @@ -162,7 +162,7 @@ struct StructInNameSpace {}; } namespace NameSpaceAlias = NameSpace; - +using NameSpace::StructInNameSpace; NameSpace::StructInNameSpace foo6; class BaseClass { diff --git a/tests/unit/unittest/highlightinginformationstest.cpp b/tests/unit/unittest/highlightinginformationstest.cpp index 7f351b010c..911ae55ef0 100644 --- a/tests/unit/unittest/highlightinginformationstest.cpp +++ b/tests/unit/unittest/highlightinginformationstest.cpp @@ -462,6 +462,13 @@ TEST_F(HighlightingInformations, NameSpaceAlias) ASSERT_THAT(infos[1], HasType(HighlightingType::Type)); } +TEST_F(HighlightingInformations, UsingStructInNameSpace) +{ + const auto infos = translationUnit.highlightingInformationsInRange(sourceRange(165, 36)); + + ASSERT_THAT(infos[3], HasType(HighlightingType::Type)); +} + TEST_F(HighlightingInformations, NameSpaceReference) { const auto infos = translationUnit.highlightingInformationsInRange(sourceRange(166, 35)); @@ -469,6 +476,13 @@ TEST_F(HighlightingInformations, NameSpaceReference) ASSERT_THAT(infos[0], HasType(HighlightingType::Type)); } +TEST_F(HighlightingInformations, StructInNameSpaceReference) +{ + const auto infos = translationUnit.highlightingInformationsInRange(sourceRange(166, 35)); + + ASSERT_THAT(infos[2], HasType(HighlightingType::Type)); +} + TEST_F(HighlightingInformations, VirtualFunction) { const auto infos = translationUnit.highlightingInformationsInRange(sourceRange(170, 35)); |