Skip to content

Commit

Permalink
Fix UnityWebRequestHttpMessageHandler
Browse files Browse the repository at this point in the history
  • Loading branch information
kochounoyume committed Jan 1, 2025
1 parent 3f37d8c commit 221ca9b
Show file tree
Hide file tree
Showing 14 changed files with 155 additions and 223 deletions.
89 changes: 89 additions & 0 deletions Assets/Editor/Test/MinimalTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
using System.Collections;
using System.Net.Http;
using NUnit.Framework;
using UnityEngine.TestTools;

namespace MinimalUtility.Test
{
using WebRequest;
using TestUtils = MinimalUtility.Editor.TestUtils;

public class MinimalTest
{
[UnityTest, Order(0), Timeout(300000)]
public IEnumerator WebRequestTest()
{
#if ENABLE_UNITASK
return Cysharp.Threading.Tasks.UniTask.ToCoroutine(async () =>
{
const string uri = "https://httpbin.org/post";

using var client = new HttpClient(new UnityWebRequestHttpMessageHandler());
using var request = new HttpRequestMessage(HttpMethod.Post, uri)
{
Content = new ByteArrayContent(new byte[] {1, 2, 3, 4, 5})
{
Headers =
{
ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json")
}
}
};
using var response = await client.SendAsync(request);
await TestContext.Out.WriteLineAsync(await response.Content.ReadAsStringAsync());
});
#else
yield break;
#endif
}


[UnityTest, Order(1), Timeout(300000)]
public IEnumerator UniTaskPackageRemoveTest()
{
yield return PackageRemoveTest("com.cysharp.unitask");
Assert.Pass();
}

[UnityTest, Order(2), Timeout(300000)]
public IEnumerator R3PackageRemoveTest()
{
yield return PackageRemoveTest("com.cysharp.r3");
Assert.Pass();
}

[UnityTest, Order(3), Timeout(300000)]
public IEnumerator VContainerPackageRemoveTest()
{
yield return PackageRemoveTest("jp.hadashikick.vcontainer");
Assert.Pass();
}

[UnityTest, Order(4), Timeout(300000)]
public IEnumerator UGUIPackageRemoveTest()
{
yield return PackageRemoveTest("com.unity.ugui");
Assert.Pass();
}

[Test, Order(5)]
public void CompileCheckTest()
{
var result = TestUtils.SuccessCompile(UnityEditor.BuildTarget.StandaloneOSX);
Assert.IsTrue(result);
}

private static IEnumerator PackageRemoveTest(string packageName)
{
var request = UnityEditor.PackageManager.Client.Remove(packageName);
while (!request.IsCompleted)
{
yield return null;
}
if (request.Status != UnityEditor.PackageManager.StatusCode.Success)
{
throw new System.Exception("Failed to remove package: " + packageName);
}
}
}
}
3 changes: 3 additions & 0 deletions Assets/Editor/Test/MinimalTest.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 10 additions & 2 deletions Assets/Editor/Test/MinimalUtility.Test.asmdef
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
"references": [
"GUID:27619889b8ba8c24980f49ee34dbb44a",
"GUID:0acc523941302664db1f4e527237feb3",
"GUID:bf0b7d05fd3af8e4aa4966bcda55ac92"
"GUID:2294a65d721f9974ca66d13b434e6b7b",
"GUID:bf0b7d05fd3af8e4aa4966bcda55ac92",
"GUID:f51ebe6a0ceec4240a699833d6309b23"
],
"includePlatforms": [
"Editor"
Expand All @@ -17,6 +19,12 @@
],
"autoReferenced": false,
"defineConstraints": [],
"versionDefines": [],
"versionDefines": [
{
"name": "com.cysharp.unitask",
"expression": "",
"define": "ENABLE_UNITASK"
}
],
"noEngineReferences": false
}
112 changes: 0 additions & 112 deletions Assets/Editor/Test/PackageTest.cs

This file was deleted.

3 changes: 0 additions & 3 deletions Assets/Editor/Test/PackageTest.cs.meta

This file was deleted.

2 changes: 0 additions & 2 deletions Documentation/docs/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,6 @@
- name: 実装Tips(他ライブラリ拡張)
- name: uGUI拡張
href: ugui-extensions.md
- name: UniTask拡張
href: unitask-extensions.md
- name: R3拡張
href: r3-extensions.md
- name: VContainer拡張
Expand Down
2 changes: 0 additions & 2 deletions Documentation/docs/unitask-extensions.md

This file was deleted.

10 changes: 1 addition & 9 deletions Packages/MinimalUtility/Runtime/StringUtils.Join.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#nullable enable

using System;
using System.Buffers;
using System.Collections.Generic;
using System.Runtime.CompilerServices;

Expand Down Expand Up @@ -30,14 +29,7 @@ public static partial class StringUtils
/// <returns>連結された文字列.</returns>
/// <exception cref="ArgumentNullException"><paramref name="values"/>がnullの場合にスローされます.</exception>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string Join(in char separator, IEnumerable<string?> values)
{
var separatorArray = ArrayPool<char>.Shared.Rent(1);
separatorArray[0] = separator;
var result = Join(new ReadOnlySpan<char>(separatorArray), values);
ArrayPool<char>.Shared.Return(separatorArray);
return result;
}
public static string Join(in char separator, IEnumerable<string?> values) => Join(stackalloc char[]{ separator }, values);

/// <summary>
/// 内部で<see cref="DefaultInterpolatedStringHandler"/>を使用したstring.Join.
Expand Down
3 changes: 0 additions & 3 deletions Packages/MinimalUtility/Runtime/Tasks.meta

This file was deleted.

56 changes: 0 additions & 56 deletions Packages/MinimalUtility/Runtime/Tasks/UniTaskExtensions.cs

This file was deleted.

This file was deleted.

45 changes: 45 additions & 0 deletions Packages/MinimalUtility/Runtime/WebRequest/NativeArrayContent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
using System;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using Unity.Collections;

namespace MinimalUtility.WebRequest
{
/// <summary>
/// <see cref="NativeArray{T}"/>を基盤とする<see cref="HttpContent"/>.
/// </summary>
public sealed class NativeArrayContent : HttpContent
{
private readonly NativeArray<byte>.ReadOnly _data;
private readonly IDisposable _handler;

public NativeArrayContent(NativeArray<byte>.ReadOnly data, IDisposable handler)
{
_data = data;
_handler = handler;
}

protected override Task SerializeToStreamAsync(Stream stream, TransportContext _)
{
stream.Write(_data.AsReadOnlySpan());
return Task.CompletedTask;
}

protected override bool TryComputeLength(out long length)
{
length = _data.Length;
return true;
}

protected override void Dispose(bool disposing)
{
if (disposing)
{
_handler.Dispose();
}
base.Dispose(disposing);
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 221ca9b

Please sign in to comment.