mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 11:48:06 +01:00
Corrected querytext display on action keyword (#6341)
* Corrected querytexdisplay on action keyword * Added tests for UpdateResultWithActionKeyword
This commit is contained in:
committed by
GitHub
parent
85fa644aca
commit
cd906b0a6f
@@ -272,8 +272,7 @@ namespace PowerLauncher.ViewModel
|
||||
|
||||
public string SearchBoxDisplayText()
|
||||
{
|
||||
var display = string.IsNullOrEmpty(Result.QueryTextDisplay) ? Result.Title : Result.QueryTextDisplay;
|
||||
return display;
|
||||
return Result.QueryTextDisplay;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
|
||||
@@ -172,6 +172,7 @@ namespace Wox.Core.Plugin
|
||||
if (results != null)
|
||||
{
|
||||
UpdatePluginMetadata(results, metadata, query);
|
||||
UpdateResultWithActionKeyword(results, query);
|
||||
}
|
||||
});
|
||||
metadata.QueryCount += 1;
|
||||
@@ -185,6 +186,23 @@ namespace Wox.Core.Plugin
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
96
src/modules/launcher/Wox.Test/PluginManagerTest.cs
Normal file
96
src/modules/launcher/Wox.Test/PluginManagerTest.cs
Normal file
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user