-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProtocolConstantsTests.cs
More file actions
94 lines (84 loc) · 3.03 KB
/
Copy pathProtocolConstantsTests.cs
File metadata and controls
94 lines (84 loc) · 3.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
using SwitchifyPc.Protocol;
namespace SwitchifyPc.Tests;
public sealed class ProtocolConstantsTests
{
[Fact]
public void UsesCurrentAndroidProtocolVersion()
{
Assert.Equal(1, ProtocolConstants.ProtocolVersion);
}
[Fact]
public void PreservesCurrentProtocolLimits()
{
Assert.Equal(2000, ProtocolConstants.MaxTextLength);
Assert.Equal(80, ProtocolConstants.MaxTextStreamIdLength);
Assert.Equal(2000, ProtocolConstants.MaxTextStreamItems);
Assert.Equal(120, ProtocolConstants.MaxTextStreamChunkLength);
Assert.Equal(500, ProtocolConstants.MaxPointerDelta);
Assert.Equal(50, ProtocolConstants.MaxScrollDelta);
Assert.Equal(6, ProtocolConstants.MaxShortcutKeys);
Assert.Equal(300, ProtocolConstants.MaxErrorMessageLength);
}
[Fact]
public void ShortcutKeysIncludeUppercaseAlphabetOnly()
{
foreach (string key in Enumerable.Range('A', 26).Select(code => ((char)code).ToString()))
{
Assert.Contains(key, ProtocolConstants.ShortcutKeys);
}
Assert.DoesNotContain("a", ProtocolConstants.ShortcutKeys);
Assert.Equal(6, ProtocolConstants.MaxShortcutKeys);
}
[Fact]
public void IncludesCurrentCommandTypes()
{
string[] expected =
[
"mouse.move",
"mouse.click",
"mouse.doubleClick",
"mouse.rightClick",
"mouse.scroll",
"mouse.repeat.start",
"mouse.repeat.stop",
"mouse.dragStart",
"mouse.dragEnd",
"keyboard.key",
"keyboard.modifierDown",
"keyboard.modifierUp",
"keyboard.shortcut",
"keyboard.typeText",
"keyboard.textStream.open",
"keyboard.textStream.char",
"keyboard.textStream.chunk",
"keyboard.textStream.key",
"keyboard.textStream.close",
"media.control",
"window.control",
"pointer.profile",
"connection.ping",
"connection.disconnecting"
];
Assert.Equal(expected.Order(StringComparer.Ordinal), ProtocolConstants.CommandTypes.Order(StringComparer.Ordinal));
}
[Fact]
public void IncludesPairingRequestType()
{
Assert.Contains("pairing.request", ProtocolConstants.PairingRequestTypes);
}
[Fact]
public void RepeatCommandsRequireAckResponses()
{
Assert.DoesNotContain("mouse.repeat.start", ProtocolConstants.NoAckControlCommandTypes);
Assert.DoesNotContain("mouse.repeat.stop", ProtocolConstants.NoAckControlCommandTypes);
}
[Fact]
public void ModifierCommandsCanUseNoAckResponses()
{
Assert.Contains("keyboard.modifierDown", ProtocolConstants.NoAckControlCommandTypes);
Assert.Contains("keyboard.modifierUp", ProtocolConstants.NoAckControlCommandTypes);
Assert.Equal(
["Alt", "Ctrl", "Meta", "Shift"],
ProtocolConstants.ModifierKeys.Order(StringComparer.Ordinal));
}
}