Replace focused text from Android source
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System.Text.Json;
|
||||
using WirelessTextSyncer.Windows.Models;
|
||||
using WirelessTextSyncer.Windows.Services;
|
||||
|
||||
namespace WirelessTextSyncer.Windows.Tests;
|
||||
|
||||
@@ -28,4 +29,58 @@ public sealed class SyncMessageTests
|
||||
Assert.IsNotNull(message);
|
||||
Assert.AreEqual(SyncAction.Backspace, message.Action);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void DeserializeAndroidReplaceAllMessage()
|
||||
{
|
||||
var message = JsonSerializer.Deserialize<SyncMessage>(
|
||||
"""{"action":"replaceAll","text":"final text"}""",
|
||||
new JsonSerializerOptions(JsonSerializerDefaults.Web));
|
||||
|
||||
Assert.IsNotNull(message);
|
||||
Assert.AreEqual(SyncAction.ReplaceAll, message.Action);
|
||||
Assert.AreEqual("final text", message.Text);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ReplaceAllUsesFocusedTextReplacement()
|
||||
{
|
||||
var keyboard = new RecordingKeyboardInjectionService();
|
||||
var handler = new SyncMessageHandler(keyboard);
|
||||
|
||||
handler.Handle(new SyncMessage
|
||||
{
|
||||
Action = SyncAction.ReplaceAll,
|
||||
Text = "final text"
|
||||
});
|
||||
|
||||
CollectionAssert.AreEqual(
|
||||
new[] { "replace:final text" },
|
||||
keyboard.Calls);
|
||||
}
|
||||
|
||||
private sealed class RecordingKeyboardInjectionService : IKeyboardInjectionService
|
||||
{
|
||||
public List<string> Calls { get; } = [];
|
||||
|
||||
public void InsertText(string text)
|
||||
{
|
||||
Calls.Add($"insert:{text}");
|
||||
}
|
||||
|
||||
public void ReplaceFocusedText(string text)
|
||||
{
|
||||
Calls.Add($"replace:{text}");
|
||||
}
|
||||
|
||||
public void Backspace()
|
||||
{
|
||||
Calls.Add("backspace");
|
||||
}
|
||||
|
||||
public void Enter()
|
||||
{
|
||||
Calls.Add("enter");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user