Skip to content

Commit 8b1ec44

Browse files
Add UTF-8 vs ASCII tests
1 parent aabef1f commit 8b1ec44

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

src/D2SSharp.Tests/OverlayTests.cs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System.Text;
12
using D2SSharp.Model;
23
using Xunit;
34

@@ -164,6 +165,53 @@ public void Overlay_NameProperty(string resourcePath)
164165
Assert.True(D2Save.VerifyChecksum(data));
165166
}
166167

168+
[Fact]
169+
public void Overlay_NameSetter_ImmediateReadback_UTF8()
170+
{
171+
var data = File.ReadAllBytes("Resources/99/Soska.d2s");
172+
ref var layout = ref D2SaveLayout.From(data);
173+
174+
var newName = "Ahą闱";
175+
176+
// Set the name
177+
layout.Name = newName;
178+
179+
// Immediately read back - should show new value
180+
Assert.Equal(newName, layout.Name);
181+
182+
// Also verify the underlying bytes changed
183+
var nameBytes = Encoding.UTF8.GetBytes(layout.Name);
184+
var expectedBytes = Encoding.UTF8.GetBytes(newName);
185+
Assert.Equal(expectedBytes, nameBytes);
186+
187+
var save = D2Save.Read(data);
188+
var saveNameBytes = Encoding.UTF8.GetBytes(save.Character.Preview.Name);
189+
Assert.Equal(newName, save.Character.Preview.Name);
190+
Assert.Equal(expectedBytes, saveNameBytes);
191+
}
192+
193+
[Fact]
194+
public void Overlay_NameSetter_ImmediateReadback_ASCII()
195+
{
196+
var data = File.ReadAllBytes("Resources/96/Soska.d2s");
197+
ref var layout = ref D2SaveLayout.From(data);
198+
199+
var newName = "Ahą闱";
200+
201+
// Set the name
202+
layout.Name = newName;
203+
204+
// Immediately read back - should show new value
205+
Assert.NotEqual(newName, layout.Name);
206+
207+
var expectedBytes = Encoding.UTF8.GetBytes(newName);
208+
209+
var save = D2Save.Read(data);
210+
var saveNameBytes = Encoding.UTF8.GetBytes(save.Character.Name);
211+
Assert.NotEqual(newName, save.Character.Preview.Name);
212+
Assert.NotEqual(expectedBytes, saveNameBytes);
213+
}
214+
167215
[Theory]
168216
[InlineData("Resources/97/Amazon.d2s")]
169217
public void Overlay_UnlockAllWaypointsAndVerify(string resourcePath)

0 commit comments

Comments
 (0)