Fix autocomplete due to error in returned autocomplete text (#6988)

This commit is contained in:
Divyansh Srivastava 2020-10-02 21:30:14 -07:00 committed by GitHub
parent 7c607ad540
commit 4feb0f209f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 50 deletions

View file

@ -194,14 +194,15 @@ namespace Wox.Core.Plugin
{
foreach (Result result in results)
{
if (!string.IsNullOrEmpty(result.QueryTextDisplay))
if (string.IsNullOrEmpty(result.QueryTextDisplay))
{
result.QueryTextDisplay = result.Title;
}
if (!string.IsNullOrEmpty(query.ActionKeyword))
{
result.QueryTextDisplay = string.Format("{0} {1}", query.ActionKeyword, result.QueryTextDisplay);
}
else
{
result.QueryTextDisplay = string.Format("{0} {1}", query.ActionKeyword, result.Title);
}
}
return results;

View file

@ -15,13 +15,18 @@ namespace Wox.Test
[TestFixture]
public class PluginManagerTest
{
[Test]
public void QueryForPlugin_SetsActionKeyword_WhenQueryTextDisplayIsSet()
[TestCase(">", "dummyQueryText", "dummyTitle", "> dummyQueryText")]
[TestCase(">", null, "dummyTitle", "> dummyTitle")]
[TestCase(">", "", "dummyTitle", "> dummyTitle")]
[TestCase("", "dummyQueryText", "dummyTitle", "dummyQueryText")]
[TestCase("", null, "dummyTitle", "dummyTitle")]
[TestCase("", "", "dummyTitle", "dummyTitle")]
[TestCase(null, "dummyQueryText", "dummyTitle", "dummyQueryText")]
[TestCase(null, null, "dummyTitle", "dummyTitle")]
[TestCase(null, "", "dummyTitle", "dummyTitle")]
public void QueryForPlugin_SetsActionKeyword_WhenQueryTextDisplayIsEmpty(string actionKeyword, string queryTextDisplay, string title, string expectedResult)
{
// Arrange
var actionKeyword = ">";
var title = "dummyTitle";
var queryTextDisplay = "dummyQueryTextDisplay";
var query = new Query
{
ActionKeyword = actionKeyword,
@ -51,46 +56,7 @@ namespace Wox.Test
var queryOutput = PluginManager.QueryForPlugin(pluginPair, query);
// Assert
Assert.AreEqual(string.Format("{0} {1}", ">", queryTextDisplay), queryOutput[0].QueryTextDisplay);
}
[TestCase("")]
[TestCase(null)]
public void QueryForPlugin_SetsActionKeyword_WhenQueryTextDisplayIsEmpty(string queryTextDisplay)
{
// Arrange
var actionKeyword = ">";
var title = "dummyTitle";
var query = new Query
{
ActionKeyword = actionKeyword,
};
var metadata = new PluginMetadata
{
ID = "dummyName",
IcoPath = "dummyIcoPath",
ExecuteFileName = "dummyExecuteFileName",
PluginDirectory = "dummyPluginDirectory",
};
var result = new Result()
{
QueryTextDisplay = queryTextDisplay,
Title = title,
};
var results = new List<Result>() { result };
var pluginMock = new Mock<IPlugin>();
pluginMock.Setup(r => r.Query(query)).Returns(results);
var pluginPair = new PluginPair
{
Plugin = pluginMock.Object,
Metadata = metadata,
};
// Act
var queryOutput = PluginManager.QueryForPlugin(pluginPair, query);
// Assert
Assert.AreEqual(string.Format("{0} {1}", ">", title), queryOutput[0].QueryTextDisplay);
Assert.AreEqual(expectedResult, queryOutput[0].QueryTextDisplay);
}
}
}