| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | /****************************************************************************
 | 
					
						
							|  |  |  | ** | 
					
						
							| 
									
										
										
										
											2016-01-15 14:55:33 +01:00
										 |  |  | ** Copyright (C) 2016 The Qt Company Ltd. | 
					
						
							|  |  |  | ** Contact: https://www.qt.io/licensing/
 | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ** This file is part of Qt Creator. | 
					
						
							|  |  |  | ** | 
					
						
							|  |  |  | ** Commercial License Usage | 
					
						
							|  |  |  | ** Licensees holding valid commercial Qt licenses may use this file in | 
					
						
							|  |  |  | ** accordance with the commercial license agreement provided with the | 
					
						
							|  |  |  | ** Software or, alternatively, in accordance with the terms contained in | 
					
						
							| 
									
										
										
										
											2016-01-15 14:55:33 +01:00
										 |  |  | ** a written agreement between you and The Qt Company. For licensing terms | 
					
						
							|  |  |  | ** and conditions see https://www.qt.io/terms-conditions. For further
 | 
					
						
							|  |  |  | ** information use the contact form at https://www.qt.io/contact-us.
 | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | ** | 
					
						
							| 
									
										
										
										
											2016-01-15 14:55:33 +01:00
										 |  |  | ** GNU General Public License Usage | 
					
						
							|  |  |  | ** Alternatively, this file may be used under the terms of the GNU | 
					
						
							|  |  |  | ** General Public License version 3 as published by the Free Software | 
					
						
							|  |  |  | ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT | 
					
						
							|  |  |  | ** included in the packaging of this file. Please review the following | 
					
						
							|  |  |  | ** information to ensure the GNU General Public License requirements will | 
					
						
							|  |  |  | ** be met: https://www.gnu.org/licenses/gpl-3.0.html.
 | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | ** | 
					
						
							|  |  |  | ****************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-15 17:41:41 +02:00
										 |  |  | #include "googletest.h"
 | 
					
						
							| 
									
										
										
										
											2019-04-24 14:07:39 +02:00
										 |  |  | #include "unittest-utility-functions.h"
 | 
					
						
							| 
									
										
										
										
											2016-09-15 17:41:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | #include <clangcodecompleteresults.h>
 | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  | #include <clangdocument.h>
 | 
					
						
							| 
									
										
										
										
											2016-07-01 15:07:32 +02:00
										 |  |  | #include <clangfilepath.h>
 | 
					
						
							| 
									
										
										
										
											2015-06-16 12:38:04 +02:00
										 |  |  | #include <codecompletionsextractor.h>
 | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | #include <filecontainer.h>
 | 
					
						
							| 
									
										
										
										
											2016-05-30 10:25:52 +02:00
										 |  |  | #include <clangunsavedfilesshallowarguments.h>
 | 
					
						
							| 
									
										
										
										
											2016-09-07 14:50:58 +02:00
										 |  |  | #include <clangtranslationunit.h>
 | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  | #include <clangdocuments.h>
 | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | #include <unsavedfiles.h>
 | 
					
						
							|  |  |  | #include <utf8stringvector.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-16 12:38:04 +02:00
										 |  |  | #include <clang-c/Index.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | #include <QFile>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  | using ClangBackEnd::CodeCompletionsExtractor; | 
					
						
							|  |  |  | using ClangBackEnd::ClangCodeCompleteResults; | 
					
						
							| 
									
										
										
										
											2016-07-01 15:07:32 +02:00
										 |  |  | using ClangBackEnd::FilePath; | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  | using ClangBackEnd::Document; | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  | using ClangBackEnd::CodeCompletion; | 
					
						
							|  |  |  | using ClangBackEnd::UnsavedFiles; | 
					
						
							| 
									
										
										
										
											2016-05-30 10:25:52 +02:00
										 |  |  | using ClangBackEnd::UnsavedFilesShallowArguments; | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  | using ClangBackEnd::CodeCompletionChunk; | 
					
						
							| 
									
										
										
										
											2015-07-22 17:33:27 +02:00
										 |  |  | using ClangBackEnd::CodeCompletionChunks; | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | using ::testing::PrintToString; | 
					
						
							|  |  |  | using ::testing::Not; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | MATCHER_P3(HasCompletion, name, kind,  availability, | 
					
						
							|  |  |  |            std::string(negation ? "hasn't" : "has") + " completion of name " + PrintToString(name) + | 
					
						
							|  |  |  |            ", kind " + PrintToString(kind)) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     ::CodeCompletionsExtractor &extractor = const_cast<::CodeCompletionsExtractor&>(arg); | 
					
						
							|  |  |  |     while (extractor.next()) { | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         if (extractor.currentCodeCompletion().text == name) { | 
					
						
							|  |  |  |             if (extractor.currentCodeCompletion().completionKind == kind) { | 
					
						
							|  |  |  |                 if (extractor.currentCodeCompletion().availability == availability) { | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  |                     return true; | 
					
						
							|  |  |  |                 } else if (!extractor.peek(name)) { | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |                     *result_listener << "availability is " << PrintToString(extractor.currentCodeCompletion().availability) << " and not " << PrintToString(availability); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  |                     return false; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } else if (!extractor.peek(name)) { | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |                 *result_listener << "kind is " << PrintToString(extractor.currentCodeCompletion().completionKind) << " and not " << PrintToString(kind); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  |                 return false; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return false; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | MATCHER_P2(HasCompletionChunks, name, chunks, | 
					
						
							|  |  |  |            std::string(negation ? "hasn't" : "has") + " completion of name " + PrintToString(name) + | 
					
						
							|  |  |  |            " with the chunks " + PrintToString(chunks)) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     ::CodeCompletionsExtractor &extractor = const_cast<::CodeCompletionsExtractor&>(arg); | 
					
						
							|  |  |  |     while (extractor.next()) { | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         if (extractor.currentCodeCompletion().text == name) { | 
					
						
							|  |  |  |             if (extractor.currentCodeCompletion().chunks == chunks) { | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  |                 return true; | 
					
						
							|  |  |  |             } else if (!extractor.peek(name)) { | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |                 *result_listener << "chunks are " << PrintToString(arg.currentCodeCompletion().chunks) << " and not " << PrintToString(chunks); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  |                 return false; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return false; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-25 16:19:19 +02:00
										 |  |  | MATCHER_P2(HasBriefComment, name, briefComment, | 
					
						
							|  |  |  |            std::string(negation ? "hasn't" : "has") + " completion of name " + PrintToString(name) + | 
					
						
							|  |  |  |            " with the brief comment " + PrintToString(briefComment)) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     ::CodeCompletionsExtractor &extractor = const_cast<::CodeCompletionsExtractor&>(arg); | 
					
						
							|  |  |  |     while (extractor.next()) { | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |         if (extractor.currentCodeCompletion().text == name) { | 
					
						
							|  |  |  |             if (extractor.currentCodeCompletion().briefComment == briefComment) { | 
					
						
							| 
									
										
										
										
											2015-08-25 16:19:19 +02:00
										 |  |  |                 return true; | 
					
						
							|  |  |  |             } else if (!extractor.peek(name)) { | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |                 *result_listener << "briefComment is " << PrintToString(arg.currentCodeCompletion().briefComment) << " and not " << PrintToString(briefComment); | 
					
						
							| 
									
										
										
										
											2015-08-25 16:19:19 +02:00
										 |  |  |                 return false; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return false; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | const Utf8String unsavedFileContent(const char *unsavedFilePath) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     QFile unsavedFileContentFile(QString::fromUtf8(unsavedFilePath)); | 
					
						
							|  |  |  |     bool isOpen = unsavedFileContentFile.open(QIODevice::ReadOnly | QIODevice::Text); | 
					
						
							|  |  |  |     if (!isOpen) | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |         ADD_FAILURE() << "File with the unsaved content cannot be opened!"; | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return Utf8String::fromByteArray(unsavedFileContentFile.readAll()); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  | const ClangBackEnd::FileContainer unsavedDataFileContainer(const char *filePath, | 
					
						
							|  |  |  |                                                            const char *unsavedFilePath) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |     return ClangBackEnd::FileContainer(Utf8String::fromUtf8(filePath), | 
					
						
							|  |  |  |                                        unsavedFileContent(unsavedFilePath), | 
					
						
							|  |  |  |                                        true); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class CodeCompletionsExtractor : public ::testing::Test | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-05-30 10:25:52 +02:00
										 |  |  | protected: | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults getResults(const Document &document, | 
					
						
							| 
									
										
										
										
											2016-05-30 10:25:52 +02:00
										 |  |  |                                         uint line, | 
					
						
							| 
									
										
										
										
											2016-06-05 19:59:23 +02:00
										 |  |  |                                         uint column = 1, | 
					
						
							|  |  |  |                                         bool needsReparse = false); | 
					
						
							| 
									
										
										
										
											2016-05-30 10:25:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | protected: | 
					
						
							| 
									
										
										
										
											2015-08-25 16:19:19 +02:00
										 |  |  |     ClangBackEnd::UnsavedFiles unsavedFiles; | 
					
						
							| 
									
										
										
										
											2018-09-25 09:41:32 +02:00
										 |  |  |     ClangBackEnd::Documents documents{unsavedFiles}; | 
					
						
							| 
									
										
										
										
											2019-04-24 14:07:39 +02:00
										 |  |  |     Utf8StringVector compilationArguments{UnitTest::addPlatformArguments()}; | 
					
						
							| 
									
										
										
										
											2018-10-19 10:20:27 +02:00
										 |  |  |     Document functionDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_function.cpp"), compilationArguments, {},  documents}; | 
					
						
							|  |  |  |     Document functionOverloadDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_functionoverload.cpp"), compilationArguments, {},  documents}; | 
					
						
							|  |  |  |     Document variableDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_variable.cpp"), compilationArguments, {},  documents}; | 
					
						
							|  |  |  |     Document classDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_class.cpp"), compilationArguments, {},  documents}; | 
					
						
							|  |  |  |     Document namespaceDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_namespace.cpp"), compilationArguments, {},  documents}; | 
					
						
							|  |  |  |     Document enumerationDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_enumeration.cpp"), compilationArguments, {},  documents}; | 
					
						
							|  |  |  |     Document constructorDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_constructor.cpp"), compilationArguments, {},  documents}; | 
					
						
							| 
									
										
										
										
											2018-11-12 12:39:35 +01:00
										 |  |  |     Document constructorMemberInitDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_constructorMemberInitialization.cpp"), compilationArguments, {},  documents}; | 
					
						
							| 
									
										
										
										
											2018-10-19 10:20:27 +02:00
										 |  |  |     Document briefCommentDocument{Utf8StringLiteral(TESTDATA_DIR"/complete_extractor_brief_comment.cpp"), compilationArguments, {},  documents}; | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | using CodeCompletionsExtractorSlowTest = CodeCompletionsExtractor; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Function) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Function"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::FunctionCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, TemplateFunction) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("TemplateFunction"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::TemplateFunctionCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Variable) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(variableDocument, 4)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(variableDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Var"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::VariableCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-23 09:49:22 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, NonTypeTemplateParameter) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(variableDocument, 25, 19)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(variableDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("NonTypeTemplateParameter"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::VariableCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, VariableReference) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(variableDocument, 12)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(variableDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Var"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::VariableCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Parameter) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(variableDocument, 4)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(variableDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Parameter"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::VariableCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Field) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(variableDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(variableDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Field"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::VariableCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-23 09:49:22 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Class) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(classDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(classDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Class"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::ClassCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-23 09:49:22 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Struct) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(classDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(classDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Struct"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::ClassCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-23 09:49:22 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Union) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(classDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(classDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Union"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::ClassCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-23 09:49:22 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Typedef) | 
					
						
							| 
									
										
										
										
											2015-12-08 13:01:25 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(classDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-12-08 13:01:25 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(classDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-12-08 13:01:25 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("TypeDef"), | 
					
						
							|  |  |  |                                          CodeCompletion::TypeAliasCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-23 09:49:22 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, UsingAsTypeAlias) | 
					
						
							| 
									
										
										
										
											2015-12-08 13:01:25 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(classDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-12-08 13:01:25 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(classDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-12-08 13:01:25 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("UsingClass"), | 
					
						
							|  |  |  |                                          CodeCompletion::TypeAliasCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-23 09:49:22 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, TemplateTypeParameter) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(classDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(classDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("TemplateTypeParameter"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::ClassCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-23 09:49:22 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, TemplateClass) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(classDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(classDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("TemplateClass"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::TemplateClassCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-23 09:49:22 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, TemplateTemplateParameter) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(classDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(classDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("TemplateTemplateParameter"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::TemplateClassCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-23 09:49:22 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, ClassTemplatePartialSpecialization) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(classDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(classDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("ClassTemplatePartialSpecialization"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::TemplateClassCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Namespace) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(namespaceDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(namespaceDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Namespace"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::NamespaceCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, NamespaceAlias) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(namespaceDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(namespaceDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("NamespaceAlias"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::NamespaceCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Enumeration) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(enumerationDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(enumerationDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Enumeration"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::EnumerationCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Enumerator) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(enumerationDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(enumerationDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Enumerator"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::EnumeratorCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-22 12:03:03 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Constructor) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(constructorDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(constructorDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Constructor"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::ConstructorCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-12 12:39:35 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, ConstructorMemberInitializer) { | 
					
						
							|  |  |  |   ClangCodeCompleteResults completeResults(getResults(constructorMemberInitDocument, 2, 18)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ::CodeCompletionsExtractor extractor( | 
					
						
							|  |  |  |       unsavedFiles.unsavedFile(constructorDocument.filePath()), | 
					
						
							|  |  |  |       completeResults.data()); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ASSERT_THAT(extractor, | 
					
						
							|  |  |  |               HasCompletion(Utf8StringLiteral("member"), | 
					
						
							|  |  |  |                             CodeCompletion::VariableCompletionKind, | 
					
						
							|  |  |  |                             CodeCompletion::Available)); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Destructor) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(constructorDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(constructorDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("~Constructor"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::DestructorCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Method) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Method"), | 
					
						
							| 
									
										
										
										
											2018-08-08 12:47:06 +02:00
										 |  |  |                                          CodeCompletion::FunctionDefinitionCompletionKind, | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |     ASSERT_FALSE(extractor.currentCodeCompletion().hasParameters); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, MethodWithParameters) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("MethodWithParameters"), | 
					
						
							| 
									
										
										
										
											2018-08-08 12:47:06 +02:00
										 |  |  |                                          CodeCompletion::FunctionDefinitionCompletionKind, | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2018-04-04 18:25:23 +02:00
										 |  |  |     ASSERT_TRUE(extractor.currentCodeCompletion().hasParameters); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Slot) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Slot"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::SlotCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, Signal) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Signal"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::SignalCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, MacroDefinition) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(variableDocument, 35)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(variableDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("MacroDefinition"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::PreProcessorCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, FunctionMacro) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("FunctionMacro"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::FunctionCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, IntKeyword) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("int"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::KeywordCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, SwitchKeyword) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("switch"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::KeywordCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, ClassKeyword) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("class"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::KeywordCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, DeprecatedFunction) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("DeprecatedFunction"), | 
					
						
							| 
									
										
										
										
											2018-08-08 12:47:06 +02:00
										 |  |  |                                          CodeCompletion::FunctionDefinitionCompletionKind, | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::Deprecated)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, NotAccessibleFunction) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("NotAccessibleFunction"), | 
					
						
							| 
									
										
										
										
											2018-08-08 12:47:06 +02:00
										 |  |  |                                          CodeCompletion::FunctionDefinitionCompletionKind, | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::NotAccessible)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, NotAvailableFunction) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("NotAvailableFunction"), | 
					
						
							| 
									
										
										
										
											2018-08-08 12:47:06 +02:00
										 |  |  |                                          CodeCompletion::FunctionDefinitionCompletionKind, | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::NotAvailable)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, UnsavedFile) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2018-09-25 09:41:32 +02:00
										 |  |  |     Document document(Utf8String::fromUtf8(TESTDATA_DIR "/complete_extractor_function.cpp"), | 
					
						
							|  |  |  |                       compilationArguments, | 
					
						
							| 
									
										
										
										
											2018-10-19 10:20:27 +02:00
										 |  |  |                       {}, | 
					
						
							| 
									
										
										
										
											2018-09-25 09:41:32 +02:00
										 |  |  |                       documents); | 
					
						
							|  |  |  |     unsavedFiles.createOrUpdate( | 
					
						
							|  |  |  |         {unsavedDataFileContainer(TESTDATA_DIR "/complete_extractor_function.cpp", | 
					
						
							|  |  |  |                                   TESTDATA_DIR "/complete_extractor_function_unsaved.cpp")}); | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(document, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(document.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Method2"), | 
					
						
							| 
									
										
										
										
											2018-08-08 12:47:06 +02:00
										 |  |  |                                          CodeCompletion::FunctionDefinitionCompletionKind, | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, ChangeUnsavedFile) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2018-09-25 09:41:32 +02:00
										 |  |  |     Document document(Utf8String::fromUtf8(TESTDATA_DIR "/complete_extractor_function.cpp"), | 
					
						
							|  |  |  |                       compilationArguments, | 
					
						
							| 
									
										
										
										
											2018-10-19 10:20:27 +02:00
										 |  |  |                       {}, | 
					
						
							| 
									
										
										
										
											2018-09-25 09:41:32 +02:00
										 |  |  |                       documents); | 
					
						
							|  |  |  |     unsavedFiles.createOrUpdate( | 
					
						
							|  |  |  |         {unsavedDataFileContainer(TESTDATA_DIR "/complete_extractor_function.cpp", | 
					
						
							|  |  |  |                                   TESTDATA_DIR "/complete_extractor_function_unsaved.cpp")}); | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(document, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  |     unsavedFiles.createOrUpdate({unsavedDataFileContainer(TESTDATA_DIR"/complete_extractor_function.cpp", | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                  TESTDATA_DIR"/complete_extractor_function_unsaved_2.cpp")}); | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     completeResults = getResults(document, 20); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(document.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("Method3"), | 
					
						
							| 
									
										
										
										
											2018-08-08 12:47:06 +02:00
										 |  |  |                                          CodeCompletion::FunctionDefinitionCompletionKind, | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, ArgumentDefinition) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2018-09-25 09:41:32 +02:00
										 |  |  |     Document variableDocument{Utf8StringLiteral(TESTDATA_DIR "/complete_extractor_variable.cpp"), | 
					
						
							|  |  |  |                               {Utf8StringLiteral("-DArgumentDefinition"), | 
					
						
							|  |  |  |                                Utf8StringLiteral("-std=gnu++14")}, | 
					
						
							| 
									
										
										
										
											2018-10-19 10:20:27 +02:00
										 |  |  |                               {}, | 
					
						
							| 
									
										
										
										
											2018-09-25 09:41:32 +02:00
										 |  |  |                               documents}; | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(variableDocument, 35)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(variableDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletion(Utf8StringLiteral("ArgumentDefinitionVariable"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                          CodeCompletion::VariableCompletionKind, | 
					
						
							|  |  |  |                                          CodeCompletion::Available)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, NoArgumentDefinition) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2018-09-25 09:41:32 +02:00
										 |  |  |     Document variableDocument{Utf8StringLiteral(TESTDATA_DIR "/complete_extractor_variable.cpp"), | 
					
						
							|  |  |  |                               {Utf8StringLiteral("-std=gnu++14")}, | 
					
						
							| 
									
										
										
										
											2018-10-19 10:20:27 +02:00
										 |  |  |                               {}, | 
					
						
							| 
									
										
										
										
											2018-09-25 09:41:32 +02:00
										 |  |  |                               documents}; | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(variableDocument, 35)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(variableDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, Not(HasCompletion(Utf8StringLiteral("ArgumentDefinitionVariable"), | 
					
						
							| 
									
										
										
										
											2015-06-16 11:56:00 +02:00
										 |  |  |                                              CodeCompletion::VariableCompletionKind, | 
					
						
							|  |  |  |                                              CodeCompletion::Available))); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, CompletionChunksFunction) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Function"), | 
					
						
							| 
									
										
										
										
											2015-07-22 17:33:27 +02:00
										 |  |  |                                                CodeCompletionChunks({{CodeCompletionChunk::ResultType, Utf8StringLiteral("void")}, | 
					
						
							|  |  |  |                                                                      {CodeCompletionChunk::TypedText, Utf8StringLiteral("Function")}, | 
					
						
							|  |  |  |                                                                      {CodeCompletionChunk::LeftParen, Utf8StringLiteral("(")}, | 
					
						
							|  |  |  |                                                                      {CodeCompletionChunk::RightParen, Utf8StringLiteral(")")}}))); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, CompletionChunksFunctionWithOptionalChunks) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(functionDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("FunctionWithOptional"), | 
					
						
							| 
									
										
										
										
											2015-07-22 17:33:27 +02:00
										 |  |  |                                                CodeCompletionChunks({{CodeCompletionChunk::ResultType, Utf8StringLiteral("void")}, | 
					
						
							|  |  |  |                                                                      {CodeCompletionChunk::TypedText, Utf8StringLiteral("FunctionWithOptional")}, | 
					
						
							|  |  |  |                                                                      {CodeCompletionChunk::LeftParen, Utf8StringLiteral("(")}, | 
					
						
							|  |  |  |                                                                      {CodeCompletionChunk::Placeholder, Utf8StringLiteral("int x")}, | 
					
						
							| 
									
										
										
										
											2015-12-11 11:45:05 +01:00
										 |  |  |                                                                      {CodeCompletionChunk::Comma, Utf8StringLiteral(", "), true}, | 
					
						
							| 
									
										
										
										
											2017-09-29 13:46:53 +02:00
										 |  |  |                                                                      {CodeCompletionChunk::Placeholder, Utf8StringLiteral("char y = 1"), true}, | 
					
						
							| 
									
										
										
										
											2015-12-11 11:45:05 +01:00
										 |  |  |                                                                      {CodeCompletionChunk::Comma, Utf8StringLiteral(", "), true}, | 
					
						
							| 
									
										
										
										
											2017-09-29 13:46:53 +02:00
										 |  |  |                                                                      {CodeCompletionChunk::Placeholder, Utf8StringLiteral("int z = 5"), true}, | 
					
						
							| 
									
										
										
										
											2015-07-22 17:33:27 +02:00
										 |  |  |                                                                      {CodeCompletionChunk::RightParen, Utf8StringLiteral(")")}}))); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, CompletionChunksField) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(variableDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(variableDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Field"), | 
					
						
							| 
									
										
										
										
											2015-07-22 17:33:27 +02:00
										 |  |  |                                                CodeCompletionChunks({{CodeCompletionChunk::ResultType, Utf8StringLiteral("int")}, | 
					
						
							|  |  |  |                                                                      {CodeCompletionChunk::TypedText, Utf8StringLiteral("Field")}}))); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, CompletionChunksEnumerator) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(enumerationDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(enumerationDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Enumerator"), | 
					
						
							| 
									
										
										
										
											2015-07-22 17:33:27 +02:00
										 |  |  |                                                CodeCompletionChunks({{CodeCompletionChunk::ResultType, Utf8StringLiteral("Enumeration")}, | 
					
						
							|  |  |  |                                                                      {CodeCompletionChunk::TypedText, Utf8StringLiteral("Enumerator")}}))); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, CompletionChunksEnumeration) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(enumerationDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(enumerationDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Enumeration"), | 
					
						
							| 
									
										
										
										
											2015-07-22 17:33:27 +02:00
										 |  |  |                                                CodeCompletionChunks({{CodeCompletionChunk::TypedText, Utf8StringLiteral("Enumeration")}}))); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-23 09:49:22 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, CompletionChunksClass) | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(classDocument, 20)); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(classDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Class"), | 
					
						
							| 
									
										
										
										
											2015-07-22 17:33:27 +02:00
										 |  |  |                                                CodeCompletionChunks({{CodeCompletionChunk::TypedText, Utf8StringLiteral("Class")}}))); | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 11:39:17 +01:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, BriefComment) | 
					
						
							| 
									
										
										
										
											2015-08-25 16:19:19 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     ClangCodeCompleteResults completeResults(getResults(briefCommentDocument, 10, 1, | 
					
						
							| 
									
										
										
										
											2016-06-05 19:59:23 +02:00
										 |  |  |                                                         /*needsReparse=*/ true)); | 
					
						
							| 
									
										
										
										
											2015-08-25 16:19:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(briefCommentDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2015-08-25 16:19:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasBriefComment(Utf8StringLiteral("BriefComment"), Utf8StringLiteral("A brief comment"))); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-28 17:46:40 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, OverloadCandidate) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     ClangCodeCompleteResults completeResults(getResults(functionOverloadDocument, 8, 13)); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(functionOverloadDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-06-15 14:35:58 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							| 
									
										
										
										
											2017-04-28 17:46:40 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(extractor, HasCompletionChunks(Utf8String(), | 
					
						
							|  |  |  |                                                CodeCompletionChunks({ | 
					
						
							|  |  |  |                                                     {CodeCompletionChunk::Text, Utf8StringLiteral("Foo")}, | 
					
						
							|  |  |  |                                                     {CodeCompletionChunk::LeftParen, Utf8StringLiteral("(")}, | 
					
						
							|  |  |  |                                                     {CodeCompletionChunk::CurrentParameter, Utf8StringLiteral("const Foo &foo")}, | 
					
						
							|  |  |  |                                                     {CodeCompletionChunk::RightParen, Utf8StringLiteral(")")}, | 
					
						
							|  |  |  |                                                }))); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-27 15:50:12 +02:00
										 |  |  | TEST_F(CodeCompletionsExtractorSlowTest, ExtractAll) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     ClangCodeCompleteResults completeResults(getResults(constructorDocument, 25)); | 
					
						
							|  |  |  |     ::CodeCompletionsExtractor extractor( | 
					
						
							| 
									
										
										
										
											2018-10-15 13:12:19 +02:00
										 |  |  |                 unsavedFiles.unsavedFile(constructorDocument.filePath()), | 
					
						
							| 
									
										
										
										
											2018-09-27 15:50:12 +02:00
										 |  |  |                 completeResults.data()); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     auto codeCompletions = extractor.extractAll(false); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ASSERT_THAT(codeCompletions.empty(), false); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  | ClangCodeCompleteResults CodeCompletionsExtractor::getResults(const Document &document, | 
					
						
							| 
									
										
										
										
											2016-06-05 19:59:23 +02:00
										 |  |  |                                                               uint line, | 
					
						
							|  |  |  |                                                               uint column, | 
					
						
							|  |  |  |                                                               bool needsReparse) | 
					
						
							| 
									
										
										
										
											2016-05-30 10:25:52 +02:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     document.parse(); | 
					
						
							| 
									
										
										
										
											2016-06-05 19:59:23 +02:00
										 |  |  |     if (needsReparse) | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |         document.reparse(); | 
					
						
							| 
									
										
										
										
											2016-06-05 19:59:23 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-07 10:42:12 +02:00
										 |  |  |     const Utf8String nativeFilePath = FilePath::toNativeSeparators(document.filePath()); | 
					
						
							| 
									
										
										
										
											2016-05-30 10:25:52 +02:00
										 |  |  |     UnsavedFilesShallowArguments unsaved = unsavedFiles.shallowArguments(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-07 14:50:58 +02:00
										 |  |  |     return ClangCodeCompleteResults(clang_codeCompleteAt(document.translationUnit().cxTranslationUnit(), | 
					
						
							| 
									
										
										
										
											2016-05-30 10:25:52 +02:00
										 |  |  |                                                          nativeFilePath.constData(), | 
					
						
							|  |  |  |                                                          line, | 
					
						
							|  |  |  |                                                          column, | 
					
						
							|  |  |  |                                                          unsaved.data(), | 
					
						
							|  |  |  |                                                          unsaved.count(), | 
					
						
							| 
									
										
										
										
											2016-08-18 14:19:47 +02:00
										 |  |  |                                                          CXCodeComplete_IncludeMacros | CXCodeComplete_IncludeCodePatterns | CXCodeComplete_IncludeBriefComments)); | 
					
						
							| 
									
										
										
										
											2016-05-30 10:25:52 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2015-06-01 18:51:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | } |