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()
|
public string SearchBoxDisplayText()
|
||||||
{
|
{
|
||||||
var display = string.IsNullOrEmpty(Result.QueryTextDisplay) ? Result.Title : Result.QueryTextDisplay;
|
return Result.QueryTextDisplay;
|
||||||
return display;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
|
|||||||
@@ -172,6 +172,7 @@ namespace Wox.Core.Plugin
|
|||||||
if (results != null)
|
if (results != null)
|
||||||
{
|
{
|
||||||
UpdatePluginMetadata(results, metadata, query);
|
UpdatePluginMetadata(results, metadata, query);
|
||||||
|
UpdateResultWithActionKeyword(results, query);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
metadata.QueryCount += 1;
|
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)
|
public static void UpdatePluginMetadata(List<Result> results, PluginMetadata metadata, Query query)
|
||||||
{
|
{
|
||||||
foreach (var r in results)
|
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