/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Components/Endpoints/test/HttpContextFormValueMapperTest.cs
45 строк
3 KB
Safia Abdalla
Support resolving form files in complex form mapping (#50537)
16 сен 2023, 01:20
Не верифицирован
16 сен 2023, 01:20
2ac6452
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Microsoft.Extensions.Primitives; namespace Microsoft.AspNetCore.Components.Endpoints; public class HttpContextFormValueMapperTest { // Cases with no scope in effect [InlineData(true, "some-form", "", null)] // No form restriction [InlineData(true, "some-form", "", "some-form")] // Matching form [InlineData(false, "some-form", "", "other-form")] // Mismatching form [InlineData(false, "some-form", "x", "some-form")] // Mismatching scope // Cases with scope in effect [InlineData(true, "[scope-name]some-form", "scope-name", null)] // Matching scope, no form restriction [InlineData(true, "[scope-name]some-form", "scope-name", "some-form")] // Matching scope, matching form [InlineData(false, "[scope-name]some-form", "scope-name", "other-form")] // Matching scope, mismatching form [InlineData(false, "[scope-name]some-form", "other-scope", null)] // Mismatching scope, no form restriction [InlineData(false, "[scope-name]some-form", "other-scope", "some-form")] // Mismatching scope, matching form [InlineData(false, "[scope-name]some-form", "other-scope", "other-form")] // Mismatching scope, mismatching form [InlineData(false, "[scope]", "longerstring", null)] // Show we don't try to read too many characters from the scope section // Invalid incoming form handler name [InlineData(false, "[something", "something", null)] // Unterminated scope name shouldn't match on scope [InlineData(false, "[something", "", "something")] // Unterminated scope name shouldn't match on form [InlineData(false, "something]", "something", null)] [InlineData(false, "something]", "", "something")] [InlineData(false, "[a][b]", "b", null)] // Scope name is only counted as the first bracketed item [Theory] public void CanMap_MatchesOnScopeAndFormName(bool expectedResult, string incomingFormName, string scopeName, string formNameOrNull) { var formData = new HttpContextFormDataProvider(); formData.SetFormData(incomingFormName, new Dictionary<string, StringValues>(), new FormFileCollection()); var mapper = new HttpContextFormValueMapper(formData, Options.Create<RazorComponentsServiceOptions>(new())); var canMap = mapper.CanMap(typeof(string), scopeName, formNameOrNull); Assert.Equal(expectedResult, canMap); } }