summaryrefslogtreecommitdiff
path: root/unittests/Utility/CompletionRequestTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'unittests/Utility/CompletionRequestTest.cpp')
-rw-r--r--unittests/Utility/CompletionRequestTest.cpp197
1 files changed, 0 insertions, 197 deletions
diff --git a/unittests/Utility/CompletionRequestTest.cpp b/unittests/Utility/CompletionRequestTest.cpp
deleted file mode 100644
index bdf3c4d056fb..000000000000
--- a/unittests/Utility/CompletionRequestTest.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-//===-- CompletionRequestTest.cpp -------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "gtest/gtest.h"
-
-#include "lldb/Utility/CompletionRequest.h"
-using namespace lldb_private;
-
-TEST(CompletionRequest, Constructor) {
- std::string command = "a bad c";
- const unsigned cursor_pos = 3;
- const int arg_index = 1;
- const int arg_cursor_pos = 1;
- const int match_start = 2345;
- const int match_max_return = 12345;
- StringList matches;
- CompletionResult result;
-
- CompletionRequest request(command, cursor_pos, match_start, match_max_return,
- result);
- result.GetMatches(matches);
-
- EXPECT_STREQ(request.GetRawLine().str().c_str(), command.c_str());
- EXPECT_EQ(request.GetRawCursorPos(), cursor_pos);
- EXPECT_EQ(request.GetCursorIndex(), arg_index);
- EXPECT_EQ(request.GetCursorCharPosition(), arg_cursor_pos);
- EXPECT_EQ(request.GetMatchStartPoint(), match_start);
- EXPECT_EQ(request.GetMaxReturnElements(), match_max_return);
- EXPECT_EQ(request.GetWordComplete(), false);
-
- EXPECT_EQ(request.GetPartialParsedLine().GetArgumentCount(), 2u);
- EXPECT_STREQ(request.GetPartialParsedLine().GetArgumentAtIndex(1), "b");
-}
-
-TEST(CompletionRequest, DuplicateFiltering) {
- std::string command = "a bad c";
- const unsigned cursor_pos = 3;
- StringList matches;
-
- CompletionResult result;
- CompletionRequest request(command, cursor_pos, 0, 0, result);
- result.GetMatches(matches);
-
- EXPECT_EQ(0U, request.GetNumberOfMatches());
-
- // Add foo twice
- request.AddCompletion("foo");
- result.GetMatches(matches);
-
- EXPECT_EQ(1U, request.GetNumberOfMatches());
- EXPECT_EQ(1U, matches.GetSize());
- EXPECT_STREQ("foo", matches.GetStringAtIndex(0));
-
- request.AddCompletion("foo");
- result.GetMatches(matches);
-
- EXPECT_EQ(1U, request.GetNumberOfMatches());
- EXPECT_EQ(1U, matches.GetSize());
- EXPECT_STREQ("foo", matches.GetStringAtIndex(0));
-
- // Add bar twice
- request.AddCompletion("bar");
- result.GetMatches(matches);
-
- EXPECT_EQ(2U, request.GetNumberOfMatches());
- EXPECT_EQ(2U, matches.GetSize());
- EXPECT_STREQ("foo", matches.GetStringAtIndex(0));
- EXPECT_STREQ("bar", matches.GetStringAtIndex(1));
-
- request.AddCompletion("bar");
- result.GetMatches(matches);
-
- EXPECT_EQ(2U, request.GetNumberOfMatches());
- EXPECT_EQ(2U, matches.GetSize());
- EXPECT_STREQ("foo", matches.GetStringAtIndex(0));
- EXPECT_STREQ("bar", matches.GetStringAtIndex(1));
-
- // Add foo again.
- request.AddCompletion("foo");
- result.GetMatches(matches);
-
- EXPECT_EQ(2U, request.GetNumberOfMatches());
- EXPECT_EQ(2U, matches.GetSize());
- EXPECT_STREQ("foo", matches.GetStringAtIndex(0));
- EXPECT_STREQ("bar", matches.GetStringAtIndex(1));
-
- // Add something with an existing prefix
- request.AddCompletion("foobar");
- result.GetMatches(matches);
-
- EXPECT_EQ(3U, request.GetNumberOfMatches());
- EXPECT_EQ(3U, matches.GetSize());
- EXPECT_STREQ("foo", matches.GetStringAtIndex(0));
- EXPECT_STREQ("bar", matches.GetStringAtIndex(1));
- EXPECT_STREQ("foobar", matches.GetStringAtIndex(2));
-}
-
-TEST(CompletionRequest, DuplicateFilteringWithComments) {
- std::string command = "a bad c";
- const unsigned cursor_pos = 3;
- StringList matches, descriptions;
-
- CompletionResult result;
- CompletionRequest request(command, cursor_pos, 0, 0, result);
- result.GetMatches(matches);
- result.GetDescriptions(descriptions);
-
- EXPECT_EQ(0U, request.GetNumberOfMatches());
-
- // Add foo twice with same comment
- request.AddCompletion("foo", "comment");
- result.GetMatches(matches);
- result.GetDescriptions(descriptions);
-
- EXPECT_EQ(1U, request.GetNumberOfMatches());
- EXPECT_EQ(1U, matches.GetSize());
- EXPECT_EQ(1U, descriptions.GetSize());
- EXPECT_STREQ("foo", matches.GetStringAtIndex(0));
- EXPECT_STREQ("comment", descriptions.GetStringAtIndex(0));
-
- request.AddCompletion("foo", "comment");
- result.GetMatches(matches);
- result.GetDescriptions(descriptions);
-
- EXPECT_EQ(1U, request.GetNumberOfMatches());
- EXPECT_EQ(1U, matches.GetSize());
- EXPECT_EQ(1U, descriptions.GetSize());
- EXPECT_STREQ("foo", matches.GetStringAtIndex(0));
- EXPECT_STREQ("comment", descriptions.GetStringAtIndex(0));
-
- // Add bar twice with different comments
- request.AddCompletion("bar", "comment");
- result.GetMatches(matches);
- result.GetDescriptions(descriptions);
-
- EXPECT_EQ(2U, request.GetNumberOfMatches());
- EXPECT_EQ(2U, matches.GetSize());
- EXPECT_EQ(2U, descriptions.GetSize());
- EXPECT_STREQ("foo", matches.GetStringAtIndex(0));
- EXPECT_STREQ("bar", matches.GetStringAtIndex(1));
-
- request.AddCompletion("bar", "another comment");
- result.GetMatches(matches);
- result.GetDescriptions(descriptions);
-
- EXPECT_EQ(3U, request.GetNumberOfMatches());
- EXPECT_EQ(3U, matches.GetSize());
- EXPECT_EQ(3U, descriptions.GetSize());
- EXPECT_STREQ("foo", matches.GetStringAtIndex(0));
- EXPECT_STREQ("comment", descriptions.GetStringAtIndex(0));
- EXPECT_STREQ("bar", matches.GetStringAtIndex(1));
- EXPECT_STREQ("comment", descriptions.GetStringAtIndex(1));
- EXPECT_STREQ("bar", matches.GetStringAtIndex(2));
- EXPECT_STREQ("another comment", descriptions.GetStringAtIndex(2));
-
- // Add foo again with no comment
- request.AddCompletion("foo");
- result.GetMatches(matches);
- result.GetDescriptions(descriptions);
-
- EXPECT_EQ(4U, request.GetNumberOfMatches());
- EXPECT_EQ(4U, matches.GetSize());
- EXPECT_EQ(4U, descriptions.GetSize());
- EXPECT_STREQ("foo", matches.GetStringAtIndex(0));
- EXPECT_STREQ("comment", descriptions.GetStringAtIndex(0));
- EXPECT_STREQ("bar", matches.GetStringAtIndex(1));
- EXPECT_STREQ("comment", descriptions.GetStringAtIndex(1));
- EXPECT_STREQ("bar", matches.GetStringAtIndex(2));
- EXPECT_STREQ("another comment", descriptions.GetStringAtIndex(2));
- EXPECT_STREQ("foo", matches.GetStringAtIndex(3));
- EXPECT_STREQ("", descriptions.GetStringAtIndex(3));
-}
-
-TEST(CompletionRequest, TestCompletionOwnership) {
- std::string command = "a bad c";
- const unsigned cursor_pos = 3;
- StringList matches;
-
- CompletionResult result;
- CompletionRequest request(command, cursor_pos, 0, 0, result);
-
- std::string Temporary = "bar";
- request.AddCompletion(Temporary);
- // Manipulate our completion. The request should have taken a copy, so that
- // shouldn't influence anything.
- Temporary[0] = 'f';
-
- result.GetMatches(matches);
- EXPECT_EQ(1U, request.GetNumberOfMatches());
- EXPECT_STREQ("bar", matches.GetStringAtIndex(0));
-}