-
Notifications
You must be signed in to change notification settings - Fork 59
Expand file tree
/
Copy pathBase64TextEncoderDecoderGuiToolTests.cs
More file actions
109 lines (86 loc) · 3.95 KB
/
Copy pathBase64TextEncoderDecoderGuiToolTests.cs
File metadata and controls
109 lines (86 loc) · 3.95 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
using DevToys.Tools.Tools.EncodersDecoders.Base64Text;
namespace DevToys.Tools.UnitTests.Tools.EncodersDecoders.Base64Text;
public sealed class Base64TextEncoderDecoderGuiToolTests : TestBase
{
private readonly Base64TextEncoderDecoderGuiTool _tool;
private readonly UIToolView _toolView;
private readonly IUIMultiLineTextInput _inputBox;
private readonly IUIMultiLineTextInput _outputBox;
public Base64TextEncoderDecoderGuiToolTests()
{
_tool = new Base64TextEncoderDecoderGuiTool(new MockISettingsProvider());
_toolView = _tool.View;
_inputBox = (IUIMultiLineTextInput)_toolView.GetChildElementById("base64-text-input-box");
_outputBox = (IUIMultiLineTextInput)_toolView.GetChildElementById("base64-text-output-box");
}
[Fact]
public async Task EncodeUtf8()
{
_inputBox.Text("Hello world &é'(-è_çèà)");
await _tool.WorkTask;
_outputBox.Text.Should().Be("SGVsbG8gd29ybGQgJsOpJygtw6hfw6fDqMOgKQ==");
}
[Fact]
public async Task EncodeUtf16()
{
var encodingOption = (IUISelectDropDownList)((IUISetting)_toolView.GetChildElementById("base64-text-encoding-setting")).InteractiveElement;
encodingOption.Select(2); // Select UTF-16
_inputBox.Text("Hello world &é'(-è_çèà)");
await _tool.WorkTask;
_outputBox.Text.Should().Be("//5IAGUAbABsAG8AIAB3AG8AcgBsAGQAIAAmAOkAJwAoAC0A6ABfAOcA6ADgACkA");
}
[Fact]
public async Task EncodeAscii()
{
var encodingOption = (IUISelectDropDownList)((IUISetting)_toolView.GetChildElementById("base64-text-encoding-setting")).InteractiveElement;
encodingOption.Select(0); // Select ASCII
_inputBox.Text("Hello world &é'(-è_çèà)");
await _tool.WorkTask;
_outputBox.Text.Should().Be("SGVsbG8gd29ybGQgJj8nKC0/Xz8/Pyk=");
}
[Fact]
public async Task DecodeUtf8()
{
var conversionMode = (IUISwitch)_toolView.GetChildElementById("base64-text-conversion-mode-switch");
conversionMode.Off(); // Switch to Decode
_inputBox.Text("SGVsbG8gd29ybGQgJsOpJygtw6hfw6fDqMOgKQ==");
await _tool.WorkTask;
_outputBox.Text.Should().Be("Hello world &é'(-è_çèà)");
}
[Fact]
public async Task DecodeUtf16()
{
var conversionMode = (IUISwitch)_toolView.GetChildElementById("base64-text-conversion-mode-switch");
conversionMode.Off(); // Switch to Decode
var encodingOption = (IUISelectDropDownList)((IUISetting)_toolView.GetChildElementById("base64-text-encoding-setting")).InteractiveElement;
encodingOption.Select(2); // Select UTF-16
_inputBox.Text("//5IAGUAbABsAG8AIAB3AG8AcgBsAGQAIAAmAOkAJwAoAC0A6ABfAOcA6ADgACkA");
await _tool.WorkTask;
_outputBox.Text.Should().Be("Hello world &é'(-è_çèà)");
}
[Fact]
public async Task DecodeAscii()
{
var conversionMode = (IUISwitch)_toolView.GetChildElementById("base64-text-conversion-mode-switch");
conversionMode.Off(); // Switch to Decode
var encodingOption = (IUISelectDropDownList)((IUISetting)_toolView.GetChildElementById("base64-text-encoding-setting")).InteractiveElement;
encodingOption.Select(0); // Select ASCII
_inputBox.Text("SGVsbG8gd29ybGQgJj8nKC0/Xz8/Pyk=");
await _tool.WorkTask;
_outputBox.Text.Should().Be("Hello world &?'(-?_???)");
}
[Fact]
public async Task SwitchConversionMode()
{
var conversionMode = (IUISwitch)_toolView.GetChildElementById("base64-text-conversion-mode-switch");
await EncodeUtf8();
conversionMode.Off(); // Switch to Decode
await _tool.WorkTask;
_inputBox.Text.Should().Be("SGVsbG8gd29ybGQgJsOpJygtw6hfw6fDqMOgKQ==");
await _tool.WorkTask;
_outputBox.Text("Hello world &é'(-è_çèà)");
conversionMode.On(); // Switch to Encode
await _tool.WorkTask;
await EncodeUtf8();
}
}