summaryrefslogtreecommitdiff
path: root/tests/unit/unittest
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-01-04 14:11:07 +0100
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-01-04 14:11:07 +0100
commit5a7d3e78db2e9b6a939a896c679091cea77f40d5 (patch)
treeeea8a4e25ac5821b2c542765e113225cecbd4919 /tests/unit/unittest
parentdbc49a32b8990e1f0f915f73ed195f7120dcb295 (diff)
parentf4545031f92fbc26e381a0ce8c3c3ef75dca7409 (diff)
downloadqt-creator-5a7d3e78db2e9b6a939a896c679091cea77f40d5.tar.gz
Merge remote-tracking branch 'origin/3.6'
Conflicts: qtcreator.pri qtcreator.qbs Change-Id: Ifbe181e86c161e082cc9a69a4bc7bd399f34ff47
Diffstat (limited to 'tests/unit/unittest')
-rw-r--r--tests/unit/unittest/codecompletionsextractortest.cpp9
-rw-r--r--tests/unit/unittest/completionchunkstotextconvertertest.cpp131
-rw-r--r--tests/unit/unittest/data/highlightinginformations.cpp2
-rw-r--r--tests/unit/unittest/highlightinginformationstest.cpp14
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&lt;int&gt; 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&lt;int&gt; &amp;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&lt;&gt;()"));
}
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&lt;&gt;"));
}
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));