Skip to content

Commit

Permalink
Corrected querytext display on action keyword (#6341)
Browse files Browse the repository at this point in the history
* Corrected querytexdisplay on action keyword

* Added tests for UpdateResultWithActionKeyword
  • Loading branch information
dsrivastavv committed Sep 8, 2020
1 parent 85fa644 commit cd906b0
Show file tree
Hide file tree
Showing 3 changed files with 115 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -272,8 +272,7 @@ public override int GetHashCode()

public string SearchBoxDisplayText()
{
var display = string.IsNullOrEmpty(Result.QueryTextDisplay) ? Result.Title : Result.QueryTextDisplay;
return display;
return Result.QueryTextDisplay;
}

public override string ToString()
Expand Down
18 changes: 18 additions & 0 deletions src/modules/launcher/Wox.Core/Plugin/PluginManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ public static List<Result> QueryForPlugin(PluginPair pair, Query query, bool del
if (results != null)
{
UpdatePluginMetadata(results, metadata, query);
UpdateResultWithActionKeyword(results, query);
}
});
metadata.QueryCount += 1;
Expand All @@ -185,6 +186,23 @@ public static List<Result> QueryForPlugin(PluginPair pair, Query query, bool del
}
}

private static List<Result> UpdateResultWithActionKeyword(List<Result> results, Query query)
{
foreach (Result result in results)
{
if (!string.IsNullOrEmpty(result.QueryTextDisplay))
{
result.QueryTextDisplay = string.Format("{0} {1}", query.ActionKeyword, result.QueryTextDisplay);
}
else
{
result.QueryTextDisplay = string.Format("{0} {1}", query.ActionKeyword, result.Title);
}
}

return results;
}

public static void UpdatePluginMetadata(List<Result> results, PluginMetadata metadata, Query query)
{
foreach (var r in results)
Expand Down
96 changes: 96 additions & 0 deletions src/modules/launcher/Wox.Test/PluginManagerTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
// Copyright (c) Microsoft Corporation
// The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using System;
using System.Collections.Generic;
using System.Text;
using Moq;
using NUnit.Framework;
using Wox.Core.Plugin;
using Wox.Plugin;

namespace Wox.Test
{
[TestFixture]
public class PluginManagerTest
{
[Test]
public void QueryForPlugin_SetsActionKeyword_WhenQueryTextDisplayIsSet()
{
// Arrange
var actionKeyword = ">";
var title = "dummyTitle";
var queryTextDisplay = "dummyQueryTextDisplay";
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}", ">", 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);
}
}
}

0 comments on commit cd906b0

Please sign in to comment.