From 2a5473720bff8b1eae23a71f2146ce0d57ea958d Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Fri, 23 Jun 2023 19:32:12 +0200 Subject: [PATCH] Scripting fixes (#1000) * Fix scripting. * Fix content type. * Fix schema names. * Update client library. --- .github/workflows/dev.yml | 6 ++ backend/i18n/source/backend_en.json | 2 +- .../translator/Squidex.Translator/Commands.cs | 2 +- .../ConvertContent/AddSchemaNames.cs | 2 +- .../Scripting/Extensions/HttpJintExtension.cs | 84 +++++++++++++------ .../Scripting/JintScriptEngine.cs | 75 ++++++++++------- ...Squidex.Domain.Apps.Core.Operations.csproj | 4 +- .../Contents/ContentSchedulerProcess.cs | 1 - .../Squidex.Domain.Apps.Entities.csproj | 2 +- .../Squidex.Infrastructure.csproj | 12 +-- backend/src/Squidex.Shared/Texts.resx | 2 +- .../News/Service/FeaturesService.cs | 3 +- .../src/Squidex/Config/Web/WebExtensions.cs | 2 +- backend/src/Squidex/Squidex.csproj | 28 +++---- .../ConvertContent/FieldConvertersTests.cs | 2 +- .../ConvertContent/ValueConvertersTests.cs | 10 +-- .../Scripting/JintScriptEngineHelperTests.cs | 71 +++++++++++++--- .../Assets/MongoDb/AssetQueryTests.cs | 4 +- .../TestSuite.ApiTests/AdminUsersTests.cs | 2 +- .../TestSuite.ApiTests/AnonymousTests.cs | 2 +- .../TestSuite.ApiTests/AppClientsTests.cs | 1 - .../AppContributorsTests.cs | 3 +- .../TestSuite.ApiTests/AppCreationTests.cs | 4 +- .../TestSuite.ApiTests/AppLanguagesTests.cs | 1 - .../TestSuite.ApiTests/AppRolesTests.cs | 6 +- .../TestSuite/TestSuite.ApiTests/AppTests.cs | 8 +- .../TestSuite.ApiTests/AppWorkflowsTests.cs | 1 - .../TestSuite.ApiTests/AssetFoldersTests.cs | 2 +- .../TestSuite.ApiTests/AssetFormatTests.cs | 2 +- .../TestSuite.ApiTests/AssetTests.cs | 10 +-- .../TestSuite.ApiTests/BackupTests.cs | 5 +- .../TestSuite.ApiTests/CommentsTests.cs | 2 +- .../ContentScriptingTests.cs | 1 - .../TestSuite.ApiTests/ContentUpdateTests.cs | 1 - .../TestSuite.ApiTests/GraphQLFixture.cs | 3 +- .../GraphQLSubscriptionTests.cs | 1 - .../TestSuite.ApiTests/RuleEventsTests.cs | 1 - .../TestSuite.ApiTests/RuleRunnerTests.cs | 3 +- .../TestSuite/TestSuite.ApiTests/RuleTests.cs | 2 +- .../TestSuite.ApiTests/SchemaTests.cs | 4 +- .../TestSuite.ApiTests/SearchTests.cs | 1 - ...pp_with_anonymous_read_access.verified.txt | 2 +- ...p_with_anonymous_write_access.verified.txt | 2 +- ...ntsTests.Should_create_client.verified.txt | 2 +- ...ntsTests.Should_delete_client.verified.txt | 4 +- ...ntsTests.Should_update_client.verified.txt | 6 +- ...sts.Should_invite_contributor.verified.txt | 2 +- ...sts.Should_remove_contributor.verified.txt | 2 +- ...eationTests.Should_create_app.verified.txt | 2 +- ...uld_create_app_from_templates.verified.txt | 18 ++-- ...ts.Should_add_custom_language.verified.txt | 6 +- ...agesTests.Should_add_language.verified.txt | 6 +- ...sTests.Should_delete_language.verified.txt | 4 +- ...sTests.Should_update_language.verified.txt | 6 +- ...Should_update_master_language.verified.txt | 6 +- ...RolesTests.Should_create_role.verified.txt | 2 +- ...d_create_role_with_buggy_name.verified.txt | 2 +- ...RolesTests.Should_update_role.verified.txt | 2 +- ...pTests.Should_update_settings.verified.txt | 2 +- ...sTests.Should_create_workflow.verified.txt | 2 +- ...sTests.Should_delete_workflow.verified.txt | 2 +- ...sTests.Should_update_workflow.verified.txt | 4 +- ...ersTests.Should_create_folder.verified.txt | 2 +- ...ersTests.Should_update_folder.verified.txt | 2 +- ...tTests.Should_fix_orientation.verified.txt | 2 +- ...Tests.Should_upload_audio_mp3.verified.txt | 2 +- ..._image_bmp_and_encode_to_webp.verified.txt | 2 +- ...d_upload_image_bmp_and_resize.verified.txt | 2 +- ...d_upload_image_gif_and_resize.verified.txt | 2 +- ...d_image_gif_without_extension.verified.txt | 2 +- ...d_upload_image_jpg_and_resize.verified.txt | 2 +- ...d_upload_image_png_and_resize.verified.txt | 2 +- ...d_upload_image_tga_and_resize.verified.txt | 2 +- ..._upload_image_tiff_and_resize.verified.txt | 2 +- ..._upload_image_webp_and_resize.verified.txt | 2 +- ...Tests.Should_upload_video_3gp.verified.txt | 2 +- ...Tests.Should_upload_video_flv.verified.txt | 2 +- ...Tests.Should_upload_video_mkv.verified.txt | 2 +- ...Tests.Should_upload_video_mp4.verified.txt | 2 +- ...ld_annotate_asset_in_parallel.verified.txt | 2 +- ...Should_annote_asset_file_name.verified.txt | 2 +- ....Should_annote_asset_metadata.verified.txt | 2 +- ...ests.Should_annote_asset_slug.verified.txt | 2 +- ...ests.Should_annote_asset_tags.verified.txt | 2 +- ...setTests.Should_protect_asset.verified.txt | 2 +- ...uld_protect_asset_with_script.verified.txt | 2 +- ...setTests.Should_replace_asset.verified.txt | 2 +- ...ssetTests.Should_upload_asset.verified.txt | 2 +- ...d_upload_asset_with_custom_id.verified.txt | 2 +- .../RuleTests.Should_create_rule.verified.txt | 2 +- .../RuleTests.Should_update_rule.verified.txt | 2 +- ...hould_create_singleton_schema.verified.txt | 2 +- ...schema_with_obsolete_property.verified.txt | 2 +- .../TestSuite.Shared/ClientExtensions.cs | 5 +- .../Fixtures/ClientFixture.cs | 1 - .../Fixtures/CreatedAppFixture.cs | 6 +- .../Fixtures/TestSchemaFixtureBase.cs | 3 +- .../TestSchemaWithReferencesFixtureBase.cs | 3 +- .../TestSuite.Shared/Model/TestEntity.cs | 1 - .../Model/TestEntityWithReferences.cs | 1 - .../TestSuite.Shared/TestSuite.Shared.csproj | 4 +- 101 files changed, 316 insertions(+), 232 deletions(-) diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 9b837ff459..e543588cf8 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -101,6 +101,12 @@ jobs: run: | echo "BUILD_NUMBER=$(($BUILD_NUMBER + 6000))" >> $GITHUB_ENV + - name: Publish - Login to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Publish - Rename Tags if: github.event_name != 'pull_request' run: | diff --git a/backend/i18n/source/backend_en.json b/backend/i18n/source/backend_en.json index 80c7318bf8..dadf2d1f5a 100644 --- a/backend/i18n/source/backend_en.json +++ b/backend/i18n/source/backend_en.json @@ -68,7 +68,7 @@ "common.httpOnlyAsUser": "Not allowed for clients.", "common.httpValidationError": "Validation error", "common.initialStep": "Initial step", - "common.jsError": "Failed to execute script with Javascript error: {message}", + "common.jsError": "Failed to execute script with Javascript runtime error: {message}", "common.jsNotAllowed": "Script has forbidden the operation.", "common.jsParseError": "Failed to execute script with Javascript syntax error: {message}", "common.jsRejected": "Script rejected the operation.", diff --git a/backend/i18n/translator/Squidex.Translator/Commands.cs b/backend/i18n/translator/Squidex.Translator/Commands.cs index 5f9e3e11c0..1728c346a5 100644 --- a/backend/i18n/translator/Squidex.Translator/Commands.cs +++ b/backend/i18n/translator/Squidex.Translator/Commands.cs @@ -140,7 +140,7 @@ private static (DirectoryInfo, TranslationService) Setup(TranslateArguments argu throw new ArgumentException("Folder does not exist.", nameof(arguments)); } - var supportedLocales = new string[] { "en", "nl", "it", "zh", "pt","fr" }; + var supportedLocales = new string[] { "en", "nl", "it", "zh", "pt", "fr" }; var locales = supportedLocales; diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/AddSchemaNames.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/AddSchemaNames.cs index d033c8d82b..6f3ab0d2ed 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/AddSchemaNames.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/ConvertContent/AddSchemaNames.cs @@ -21,7 +21,7 @@ public AddSchemaNames(ResolvedComponents components) this.components = components; } - public JsonObject ConvertItemBefore(IField parentField, JsonObject source, IEnumerable schema) + public JsonObject ConvertItemAfter(IField parentField, JsonObject source, IEnumerable schema) { if (parentField is IArrayField) { diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/Extensions/HttpJintExtension.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/Extensions/HttpJintExtension.cs index 669efd5107..ecf46a481a 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/Extensions/HttpJintExtension.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/Extensions/HttpJintExtension.cs @@ -11,13 +11,14 @@ using Jint.Native.Json; using Jint.Runtime; using Squidex.Domain.Apps.Core.Properties; +using Squidex.Infrastructure; namespace Squidex.Domain.Apps.Core.Scripting.Extensions; public sealed class HttpJintExtension : IJintExtension, IScriptDescriptor { - private delegate void HttpJson(string url, Action callback, JsValue? headers = null); - private delegate void HttpJsonWithBody(string url, JsValue post, Action callback, JsValue? headers = null); + private delegate void HttpJson(string url, Action callback, JsValue? headers = null, bool ignoreError = false); + private delegate void HttpJsonWithBody(string url, JsValue post, Action callback, JsValue? headers = null, bool ignoreError = false); private readonly IHttpClientFactory httpClientFactory; public HttpJintExtension(IHttpClientFactory httpClientFactory) @@ -41,27 +42,27 @@ public void Describe(AddDescription describe, ScriptScope scope) return; } - describe(JsonType.Function, "getJSON(url, callback, headers?)", + describe(JsonType.Function, "getJSON(url, callback, headers?, ignoreError?)", Resources.ScriptingGetJSON); - describe(JsonType.Function, "postJSON(url, body, callback, headers?)", + describe(JsonType.Function, "postJSON(url, body, callback, headers?, ignoreError?)", Resources.ScriptingPostJSON); - describe(JsonType.Function, "putJSON(url, body, callback, headers?)", + describe(JsonType.Function, "putJSON(url, body, callback, headers?, ignoreError?)", Resources.ScriptingPutJson); - describe(JsonType.Function, "patchJSON(url, body, callback, headers?)", + describe(JsonType.Function, "patchJSON(url, body, callback, headers?, ignoreError?)", Resources.ScriptingPatchJson); - describe(JsonType.Function, "deleteJSON(url, callback, headers?)", + describe(JsonType.Function, "deleteJSON(url, callback, headers?, ignoreError?)", Resources.ScriptingDeleteJson); } private void AddMethod(ScriptExecutionContext context, HttpMethod method, string name) { - var action = new HttpJson((url, callback, headers) => + var action = new HttpJson((url, callback, headers, ignoreError) => { - Request(context, method, url, null, callback, headers); + Request(context, method, url, null, callback, headers, ignoreError); }); context.Engine.SetValue(name, action); @@ -69,15 +70,15 @@ private void AddMethod(ScriptExecutionContext context, HttpMethod method, string private void AddBodyMethod(ScriptExecutionContext context, HttpMethod method, string name) { - var action = new HttpJsonWithBody((url, body, callback, headers) => + var action = new HttpJsonWithBody((url, body, callback, headers, ignoreError) => { - Request(context, method, url, body, callback, headers); + Request(context, method, url, body, callback, headers, ignoreError); }); context.Engine.SetValue(name, action); } - private void Request(ScriptExecutionContext context, HttpMethod method, string url, JsValue? body, Action callback, JsValue? headers) + private void Request(ScriptExecutionContext context, HttpMethod method, string url, JsValue? body, Action callback, JsValue? headers, bool ignoreError) { context.Schedule(async (scheduler, ct) => { @@ -86,19 +87,53 @@ private void Request(ScriptExecutionContext context, HttpMethod method, string u throw new JavaScriptException("URL is not valid."); } - var httpClient = httpClientFactory.CreateClient("Jint"); + if (callback == null) + { + throw new JavaScriptException("Callback is not defined."); + } - var request = CreateRequest(context, method, uri, body, headers); - var response = await httpClient.SendAsync(request, ct); + try + { - response.EnsureSuccessStatusCode(); + var httpClient = httpClientFactory.CreateClient("Jint"); - var responseObject = await ParseResponseasync(context, response, ct); + var request = CreateRequest(context, method, uri, body, headers); + var response = await httpClient.SendAsync(request, ct); + + if (!ignoreError) + { + response.EnsureSuccessStatusCode(); + } + + JsValue responseObject; + + if (ignoreError && !response.IsSuccessStatusCode) + { + var responseString = await response.Content.ReadAsStringAsync(ct); + + responseObject = JsValue.FromObject(context.Engine, new Dictionary + { + ["statusCode"] = (int)response.StatusCode, + ["headers"] = + response.Content.Headers + .Concat(response.Headers) + .Concat(response.TrailingHeaders) + .GroupBy(x => x.Key) + .ToDictionary(x => x.Key, x => x.Last().Value.First()), + ["body"] = responseString, + }); + } + else + { + responseObject = await ParseResponseAsync(context, response, ct); + } - if (callback != null) - { scheduler.Run(callback, responseObject); } + catch (Exception ex) + { + throw new JavaScriptException(ex.Message); + } }); } @@ -108,13 +143,12 @@ private static HttpRequestMessage CreateRequest(ScriptExecutionContext context, if (body != null) { - var serializer = new JsonSerializer(context.Engine); - - var json = serializer.Serialize(body, JsValue.Undefined, JsValue.Undefined)?.ToString(); + var jsonWriter = new JsonSerializer(context.Engine); + var jsonContent = jsonWriter.Serialize(body, JsValue.Undefined, JsValue.Undefined)?.ToString(); - if (json != null) + if (jsonContent != null) { - request.Content = new StringContent(json, Encoding.UTF8, "text/json"); + request.Content = new StringContent(jsonContent, Encoding.UTF8, "application/json"); } } @@ -138,7 +172,7 @@ private static HttpRequestMessage CreateRequest(ScriptExecutionContext context, return request; } - private static async Task ParseResponseasync(ScriptExecutionContext context, HttpResponseMessage response, + private static async Task ParseResponseAsync(ScriptExecutionContext context, HttpResponseMessage response, CancellationToken ct) { var responseString = await response.Content.ReadAsStringAsync(ct); diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs index 3c7bb188f5..ca82fc159a 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/JintScriptEngine.cs @@ -46,7 +46,8 @@ public async Task ExecuteAsync(ScriptVars vars, string script, Script Guard.NotNull(vars); Guard.NotNullOrEmpty(script); - using (var combined = CancellationTokenSource.CreateLinkedTokenSource(ct)) + using var combined = CancellationTokenSource.CreateLinkedTokenSource(ct); + try { // Enforce a timeout after a configured time span. combined.CancelAfter(timeoutExecution); @@ -66,6 +67,10 @@ public async Task ExecuteAsync(ScriptVars vars, string script, Script return await context.CompleteAsync() ?? JsonMapper.Map(result); } + catch (Exception ex) + { + throw MapException(ex); + } } public async Task TransformAsync(DataScriptVars vars, string script, ScriptOptions options = default, @@ -74,7 +79,8 @@ public async Task TransformAsync(DataScriptVars vars, string script Guard.NotNull(vars); Guard.NotNullOrEmpty(script); - using (var combined = CancellationTokenSource.CreateLinkedTokenSource(ct)) + using var combined = CancellationTokenSource.CreateLinkedTokenSource(ct); + try { // Enforce a timeout after a configured time span. combined.CancelAfter(timeoutExecution); @@ -107,6 +113,10 @@ public async Task TransformAsync(DataScriptVars vars, string script return await context.CompleteAsync() ?? vars.Data!; } + catch (Exception ex) + { + throw MapException(ex); + } } public JsonValue Execute(ScriptVars vars, string script, ScriptOptions options = default) @@ -114,14 +124,21 @@ public JsonValue Execute(ScriptVars vars, string script, ScriptOptions options = Guard.NotNull(vars); Guard.NotNullOrEmpty(script); - var context = - CreateEngine(options, default) - .Extend(vars, options) - .Extend(extensions); + try + { + var context = + CreateEngine(options, default) + .Extend(vars, options) + .Extend(extensions); - var result = Execute(context.Engine, script); + var result = Execute(context.Engine, script); - return JsonMapper.Map(result); + return JsonMapper.Map(result); + } + catch (Exception ex) + { + throw MapException(ex); + } } private ScriptExecutionContext CreateEngine(ScriptOptions options, CancellationToken ct) @@ -164,34 +181,28 @@ private ScriptExecutionContext CreateEngine(ScriptOptions options, Cancell private JsValue Execute(Engine engine, string script) { - try - { - var program = parser.Parse(script); + var program = parser.Parse(script); - lock (engine) - { - return engine.Evaluate(program); - } - } - catch (ArgumentException ex) - { - throw new ValidationException(T.Get("common.jsParseError", new { error = ex.Message })); - } - catch (JavaScriptException ex) + lock (engine) { - throw new ValidationException(T.Get("common.jsError", new { message = ex.Message })); + return engine.Evaluate(program); } - catch (ParserException ex) - { - throw new ValidationException(T.Get("common.jsError", new { message = ex.Message })); - } - catch (DomainException) - { - throw; - } - catch (Exception ex) + } + + private static Exception MapException(Exception inner) + { + switch (inner) { - throw new ValidationException(T.Get("common.jsError", new { message = ex.GetType().Name }), ex); + case ArgumentException: + return new ValidationException(T.Get("common.jsParseError", new { error = inner.Message })); + case JavaScriptException: + return new ValidationException(T.Get("common.jsError", new { message = inner.Message })); + case ParserException: + return new ValidationException(T.Get("common.jsError", new { message = inner.Message })); + case DomainException: + return inner; + default: + return new ValidationException(T.Get("common.jsError", new { message = inner.GetType().Name }), inner); } } diff --git a/backend/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj b/backend/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj index ff56931343..950fe151fe 100644 --- a/backend/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj +++ b/backend/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj @@ -26,9 +26,9 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + - + diff --git a/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentSchedulerProcess.cs b/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentSchedulerProcess.cs index c430f5040c..1844602d0a 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentSchedulerProcess.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Contents/ContentSchedulerProcess.cs @@ -7,7 +7,6 @@ using Microsoft.Extensions.Logging; using NodaTime; -using Squidex.ClientLibrary; using Squidex.Domain.Apps.Entities.Contents.Commands; using Squidex.Domain.Apps.Entities.Contents.Repositories; using Squidex.Hosting; diff --git a/backend/src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj b/backend/src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj index ee3942c364..14a3446a1b 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj +++ b/backend/src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj @@ -29,7 +29,7 @@ - + diff --git a/backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj b/backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj index f193ed655e..293ce58561 100644 --- a/backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj +++ b/backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj @@ -24,12 +24,12 @@ - - - - - - + + + + + + diff --git a/backend/src/Squidex.Shared/Texts.resx b/backend/src/Squidex.Shared/Texts.resx index a8c6b3f3c9..0b0be9e481 100644 --- a/backend/src/Squidex.Shared/Texts.resx +++ b/backend/src/Squidex.Shared/Texts.resx @@ -290,7 +290,7 @@ Initial step - Failed to execute script with Javascript error: {message} + Failed to execute script with Javascript runtime error: {message} Script has forbidden the operation. diff --git a/backend/src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs b/backend/src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs index 88db0697a5..4cfd4aa492 100644 --- a/backend/src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs +++ b/backend/src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs @@ -6,8 +6,9 @@ // ========================================================================== using Microsoft.Extensions.Options; -using Squidex.Areas.Api.Controllers.News.Models; using Squidex.ClientLibrary; +using FeatureDto = Squidex.Areas.Api.Controllers.News.Models.FeatureDto; +using FeaturesDto = Squidex.Areas.Api.Controllers.News.Models.FeaturesDto; #pragma warning disable RECS0022 // A catch clause that catches System.Exception and has an empty body diff --git a/backend/src/Squidex/Config/Web/WebExtensions.cs b/backend/src/Squidex/Config/Web/WebExtensions.cs index 2e643b02c1..4cd4c8f6ac 100644 --- a/backend/src/Squidex/Config/Web/WebExtensions.cs +++ b/backend/src/Squidex/Config/Web/WebExtensions.cs @@ -91,7 +91,7 @@ public static IApplicationBuilder UseSquidexHealthCheck(this IApplicationBuilder var json = serializer.Serialize(response); - httpContext.Response.Headers[HeaderNames.ContentType] = "text/json"; + httpContext.Response.Headers[HeaderNames.ContentType] = "application/json"; return httpContext.Response.WriteAsync(json); }); diff --git a/backend/src/Squidex/Squidex.csproj b/backend/src/Squidex/Squidex.csproj index 6dd3ec456b..4a8393ed7c 100644 --- a/backend/src/Squidex/Squidex.csproj +++ b/backend/src/Squidex/Squidex.csproj @@ -54,26 +54,26 @@ - + - + - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/FieldConvertersTests.cs b/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/FieldConvertersTests.cs index 8841c02fdd..c8526e3892 100644 --- a/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/FieldConvertersTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/FieldConvertersTests.cs @@ -625,7 +625,7 @@ public void Should_add_schema_name_to_component() var actual = new AddSchemaNames(components) - .ConvertItemBefore(field, source, Enumerable.Empty()); + .ConvertItemAfter(field, source, Enumerable.Empty()); Assert.Equal(expected, actual); } diff --git a/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/ValueConvertersTests.cs b/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/ValueConvertersTests.cs index 00538b9ce9..0cb5ba6c63 100644 --- a/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/ValueConvertersTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/ConvertContent/ValueConvertersTests.cs @@ -167,7 +167,7 @@ public void Should_add_schema_name_if_component() var actual = new AddSchemaNames(components) - .ConvertItemBefore(field, source, Enumerable.Empty()); + .ConvertItemAfter(field, source, Enumerable.Empty()); var expected = JsonValue.Object() @@ -196,7 +196,7 @@ public void Should_not_add_schema_name_if_field_already_exists() var actual = new AddSchemaNames(components) - .ConvertItemBefore(field, source, Enumerable.Empty()); + .ConvertItemAfter(field, source, Enumerable.Empty()); var expected = source; @@ -221,7 +221,7 @@ public void Should_not_add_schema_name_if_array_field() var actual = new AddSchemaNames(components) - .ConvertItemBefore(field, source, Enumerable.Empty()); + .ConvertItemAfter(field, source, Enumerable.Empty()); var expected = source; @@ -245,7 +245,7 @@ public void Should_not_add_schema_name_if_not_a_component() var actual = new AddSchemaNames(components) - .ConvertItemBefore(field, source, Enumerable.Empty()); + .ConvertItemAfter(field, source, Enumerable.Empty()); var expected = source; @@ -265,7 +265,7 @@ public void Should_not_add_schema_name_if_component_not_found() var actual = new AddSchemaNames(ResolvedComponents.Empty) - .ConvertItemBefore(field, source, Enumerable.Empty()); + .ConvertItemAfter(field, source, Enumerable.Empty()); var expected = source; diff --git a/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/JintScriptEngineHelperTests.cs b/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/JintScriptEngineHelperTests.cs index 8994dff4f6..d4b2ea49e2 100644 --- a/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/JintScriptEngineHelperTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/JintScriptEngineHelperTests.cs @@ -6,7 +6,7 @@ // ========================================================================== using System.Net; -using Jint.Runtime; +using System.Text; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Options; using Squidex.Domain.Apps.Core.Scripting; @@ -363,7 +363,25 @@ public async Task Should_throw_exception_if_getJson_url_is_null() }); "; - await Assert.ThrowsAsync(() => sut.ExecuteAsync(vars, script)); + await Assert.ThrowsAsync(() => sut.ExecuteAsync(vars, script)); + } + + [Fact] + public async Task Should_throw_exception_if_getJson_request_fails() + { + var vars = new ScriptVars + { + }; + + const string script = @" + var url = 'http://squidex.io'; + + postJSON(url, {}, function(actual) { + complete(actual); + }); + "; + + await Assert.ThrowsAsync(() => sut.ExecuteAsync(vars, script)); } [Fact] @@ -379,7 +397,38 @@ public async Task Should_throw_exception_if_getJson_callback_is_null() getJSON(url, null); "; - await Assert.ThrowsAsync(() => sut.ExecuteAsync(vars, script)); + await Assert.ThrowsAsync(() => sut.ExecuteAsync(vars, script)); + } + + [Fact] + public async Task Should_not_throw_exception_if_getJson_request_fails_and_flag_is_true() + { + SetupRequest(HttpStatusCode.BadRequest); + + var vars = new ScriptVars + { + }; + + const string script = @" + var url = 'http://squidex.io/invalid.json'; + + postJSON(url, {}, function(actual) { + complete(actual); + }, undefined, true); + "; + + var actual = await sut.ExecuteAsync(vars, script); + + var expectedResult = + JsonValue.Object() + .Add("statusCode", 400) + .Add("headers", + JsonValue.Object() + .Add("Content-Type", "application/json; charset=utf-8") + .Add("Content-Length", "13")) + .Add("body", "{ \"key\": 42 }"); + + Assert.Equal(expectedResult, actual); } [Fact] @@ -404,7 +453,9 @@ public async Task Should_make_getJson_request() httpHandler.ShouldBeMethod(HttpMethod.Get); httpHandler.ShouldBeUrl("http://squidex.io/"); - var expectedResult = JsonValue.Object().Add("key", 42); + var expectedResult = + JsonValue.Object() + .Add("key", 42); Assert.Equal(expectedResult, actual); } @@ -493,7 +544,7 @@ public async Task Should_make_patchJson_request() httpHandler.ShouldBeMethod(HttpMethod.Patch); httpHandler.ShouldBeUrl("http://squidex.io/"); - httpHandler.ShouldBeBody("{\"key\":42}", "text/json"); + httpHandler.ShouldBeBody("{\"key\":42}", "application/json"); var expectedResult = JsonValue.Object().Add("key", 42); @@ -523,7 +574,7 @@ public async Task Should_make_postJson_request() httpHandler.ShouldBeMethod(HttpMethod.Post); httpHandler.ShouldBeUrl("http://squidex.io/"); - httpHandler.ShouldBeBody("{\"key\":42}", "text/json"); + httpHandler.ShouldBeBody("{\"key\":42}", "application/json"); var expectedResult = JsonValue.Object().Add("key", 42); @@ -553,18 +604,18 @@ public async Task Should_make_putJson_request() httpHandler.ShouldBeMethod(HttpMethod.Put); httpHandler.ShouldBeUrl("http://squidex.io/"); - httpHandler.ShouldBeBody("{\"key\":42}", "text/json"); + httpHandler.ShouldBeBody("{\"key\":42}", "application/json"); var expectedResult = JsonValue.Object().Add("key", 42); Assert.Equal(expectedResult, actual); } - private MockupHttpHandler SetupRequest() + private MockupHttpHandler SetupRequest(HttpStatusCode statusCode = HttpStatusCode.OK) { - var httpResponse = new HttpResponseMessage(HttpStatusCode.OK) + var httpResponse = new HttpResponseMessage(statusCode) { - Content = new StringContent("{ \"key\": 42 }") + Content = new StringContent("{ \"key\": 42 }", Encoding.UTF8, "application/json") }; var httpHandler = new MockupHttpHandler(httpResponse); diff --git a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Assets/MongoDb/AssetQueryTests.cs b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Assets/MongoDb/AssetQueryTests.cs index 99174411b2..71acf1ff1f 100644 --- a/backend/tests/Squidex.Domain.Apps.Entities.Tests/Assets/MongoDb/AssetQueryTests.cs +++ b/backend/tests/Squidex.Domain.Apps.Entities.Tests/Assets/MongoDb/AssetQueryTests.cs @@ -146,9 +146,9 @@ public void Should_make_query_with_fileName() [Fact] public void Should_make_query_with_mimeType() { - var filter = ClrFilter.Eq("mimeType", "text/json"); + var filter = ClrFilter.Eq("mimeType", "application/json"); - AssertQuery("{ 'mm' : 'text/json' }", filter); + AssertQuery("{ 'mm' : 'application/json' }", filter); } [Fact] diff --git a/tools/TestSuite/TestSuite.ApiTests/AdminUsersTests.cs b/tools/TestSuite/TestSuite.ApiTests/AdminUsersTests.cs index be11a26415..d66210f1ad 100644 --- a/tools/TestSuite/TestSuite.ApiTests/AdminUsersTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/AdminUsersTests.cs @@ -5,7 +5,7 @@ // All rights reserved. Licensed under the MIT license. // ========================================================================== -using Squidex.ClientLibrary.Management; +using Squidex.ClientLibrary; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter diff --git a/tools/TestSuite/TestSuite.ApiTests/AnonymousTests.cs b/tools/TestSuite/TestSuite.ApiTests/AnonymousTests.cs index 240bd98ebb..893ecd6b49 100644 --- a/tools/TestSuite/TestSuite.ApiTests/AnonymousTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/AnonymousTests.cs @@ -6,7 +6,7 @@ // ========================================================================== using System.Net; -using Squidex.ClientLibrary.Management; +using Squidex.ClientLibrary; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter diff --git a/tools/TestSuite/TestSuite.ApiTests/AppClientsTests.cs b/tools/TestSuite/TestSuite.ApiTests/AppClientsTests.cs index e6c156af7b..2d76ac730a 100644 --- a/tools/TestSuite/TestSuite.ApiTests/AppClientsTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/AppClientsTests.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter diff --git a/tools/TestSuite/TestSuite.ApiTests/AppContributorsTests.cs b/tools/TestSuite/TestSuite.ApiTests/AppContributorsTests.cs index 16607b8a09..322b226618 100644 --- a/tools/TestSuite/TestSuite.ApiTests/AppContributorsTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/AppContributorsTests.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter @@ -39,7 +38,7 @@ public async Task Should_not_invite_contributor_if_flag_is_false() ContributorId = "test@squidex.io" }; - var ex = await Assert.ThrowsAnyAsync(() => + var ex = await Assert.ThrowsAnyAsync(() => { return app.Apps.PostContributorAsync(createRequest); }); diff --git a/tools/TestSuite/TestSuite.ApiTests/AppCreationTests.cs b/tools/TestSuite/TestSuite.ApiTests/AppCreationTests.cs index d46f06fbc6..588ae487fe 100644 --- a/tools/TestSuite/TestSuite.ApiTests/AppCreationTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/AppCreationTests.cs @@ -5,7 +5,7 @@ // All rights reserved. Licensed under the MIT license. // ========================================================================== -using Squidex.ClientLibrary.Management; +using Squidex.ClientLibrary; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter @@ -66,7 +66,7 @@ public async Task Should_not_allow_creation_if_name_used() // STEP 2: Create again and fail. - var ex = await Assert.ThrowsAnyAsync(() => + var ex = await Assert.ThrowsAnyAsync(() => { return _.PostAppAsync(appName); }); diff --git a/tools/TestSuite/TestSuite.ApiTests/AppLanguagesTests.cs b/tools/TestSuite/TestSuite.ApiTests/AppLanguagesTests.cs index cdab49bd2a..336e61b3b5 100644 --- a/tools/TestSuite/TestSuite.ApiTests/AppLanguagesTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/AppLanguagesTests.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter diff --git a/tools/TestSuite/TestSuite.ApiTests/AppRolesTests.cs b/tools/TestSuite/TestSuite.ApiTests/AppRolesTests.cs index c5dc9b6eab..fc6a5cdeef 100644 --- a/tools/TestSuite/TestSuite.ApiTests/AppRolesTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/AppRolesTests.cs @@ -5,7 +5,7 @@ // All rights reserved. Licensed under the MIT license. // ========================================================================== -using Squidex.ClientLibrary.Management; +using Squidex.ClientLibrary; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter @@ -102,7 +102,7 @@ public async Task Should_prevent_deletion_if_client_assigned() // STEP 4: Try to delete role. - var ex = await Assert.ThrowsAnyAsync(() => + var ex = await Assert.ThrowsAnyAsync(() => { return _.Client.Apps.DeleteRoleAsync(roleName); }); @@ -137,7 +137,7 @@ public async Task Should_prevent_deletion_if_contributor_assigned() // STEP 4: Try to delete role.. - var ex = await Assert.ThrowsAnyAsync(() => + var ex = await Assert.ThrowsAnyAsync(() => { return _.Client.Apps.DeleteRoleAsync(roleName); }); diff --git a/tools/TestSuite/TestSuite.ApiTests/AppTests.cs b/tools/TestSuite/TestSuite.ApiTests/AppTests.cs index cbf76edce6..a98ba8c5ea 100644 --- a/tools/TestSuite/TestSuite.ApiTests/AppTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/AppTests.cs @@ -5,7 +5,7 @@ // All rights reserved. Licensed under the MIT license. // ========================================================================== -using Squidex.ClientLibrary.Management; +using Squidex.ClientLibrary; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter @@ -71,7 +71,7 @@ public async Task Should_upload_image() var app_1 = await _.Client.Apps.UploadImageAsync(file); // Should contain image link. - Assert.True(app_1._links.ContainsKey("image")); + Assert.True(app_1.Links.ContainsKey("image")); } @@ -103,7 +103,7 @@ public async Task Should_delete_image() var app_1 = await _.Client.Apps.UploadImageAsync(file); // Should contain image link. - Assert.True(app_1._links.ContainsKey("image")); + Assert.True(app_1.Links.ContainsKey("image")); } @@ -111,7 +111,7 @@ public async Task Should_delete_image() var app_2 = await _.Client.Apps.DeleteImageAsync(); // Should contain image link. - Assert.False(app_2._links.ContainsKey("image")); + Assert.False(app_2.Links.ContainsKey("image")); } [Fact] diff --git a/tools/TestSuite/TestSuite.ApiTests/AppWorkflowsTests.cs b/tools/TestSuite/TestSuite.ApiTests/AppWorkflowsTests.cs index 95707a0450..ac35ad691f 100644 --- a/tools/TestSuite/TestSuite.ApiTests/AppWorkflowsTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/AppWorkflowsTests.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter diff --git a/tools/TestSuite/TestSuite.ApiTests/AssetFoldersTests.cs b/tools/TestSuite/TestSuite.ApiTests/AssetFoldersTests.cs index 219b11abda..e2b1248ad7 100644 --- a/tools/TestSuite/TestSuite.ApiTests/AssetFoldersTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/AssetFoldersTests.cs @@ -5,7 +5,7 @@ // All rights reserved. Licensed under the MIT license. // ========================================================================== -using Squidex.ClientLibrary.Management; +using Squidex.ClientLibrary; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter diff --git a/tools/TestSuite/TestSuite.ApiTests/AssetFormatTests.cs b/tools/TestSuite/TestSuite.ApiTests/AssetFormatTests.cs index 0efd1974ae..2e93f51e9e 100644 --- a/tools/TestSuite/TestSuite.ApiTests/AssetFormatTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/AssetFormatTests.cs @@ -5,7 +5,7 @@ // All rights reserved. Licensed under the MIT license. // ========================================================================== -using Squidex.ClientLibrary.Management; +using Squidex.ClientLibrary; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter diff --git a/tools/TestSuite/TestSuite.ApiTests/AssetTests.cs b/tools/TestSuite/TestSuite.ApiTests/AssetTests.cs index ac7e15135b..e275902fef 100644 --- a/tools/TestSuite/TestSuite.ApiTests/AssetTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/AssetTests.cs @@ -7,7 +7,7 @@ using System.Net; using Squidex.Assets; -using Squidex.ClientLibrary.Management; +using Squidex.ClientLibrary; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter @@ -131,7 +131,7 @@ public async Task Should_not_create_asset_with_custom_id_twice() // STEP 2: Create a new item with a custom id. - var ex = await Assert.ThrowsAnyAsync(() => + var ex = await Assert.ThrowsAnyAsync(() => { return _.Client.Assets.UploadFileAsync("Assets/logo-squared.png", "image/png", id: id); }); @@ -153,7 +153,7 @@ public async Task Should_not_create_very_big_asset() }); // Client library cannot catch this exception properly. - Assert.True(ex is HttpRequestException || ex is SquidexManagementException); + Assert.True(ex is HttpRequestException || ex is SquidexException); } [Fact] @@ -354,7 +354,7 @@ await Parallel.ForEachAsync(Enumerable.Range(0, 20), async (i, ct) => await _.Client.Assets.PutAssetAsync(asset_1.Id, randomMetadataRequest); } - catch (SquidexManagementException ex) when (ex.StatusCode is 409 or 412) + catch (SquidexException ex) when (ex.StatusCode is 409 or 412) { return; } @@ -645,7 +645,7 @@ public async Task Should_delete_asset(bool permanent) await _.Client.Assets.DeleteAssetAsync(asset.Id, permanent: permanent); // Should return 404 when asset deleted. - var ex = await Assert.ThrowsAnyAsync(() => + var ex = await Assert.ThrowsAnyAsync(() => { return _.Client.Assets.GetAssetAsync(asset.Id); }); diff --git a/tools/TestSuite/TestSuite.ApiTests/BackupTests.cs b/tools/TestSuite/TestSuite.ApiTests/BackupTests.cs index da0519223f..d24aafcf3f 100644 --- a/tools/TestSuite/TestSuite.ApiTests/BackupTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/BackupTests.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Fixtures; using TestSuite.Model; using TestSuite.Utils; @@ -53,7 +52,7 @@ public async Task Should_backup_and_restore_app() // STEP 3: Restore backup. - var uri = new Uri(new Uri(backupUrl), backup._links["download"].Href); + var uri = new Uri(new Uri(backupUrl), backup.Links["download"].Href); var restoreRequest = new RestoreRequestDto { @@ -99,7 +98,7 @@ public async Task Should_backup_and_restore_app_with_deleted_app() // STEP 4: Restore backup. - var uri = new Uri(new Uri(backupUrl), backup._links["download"].Href); + var uri = new Uri(new Uri(backupUrl), backup.Links["download"].Href); var restoreRequest = new RestoreRequestDto { diff --git a/tools/TestSuite/TestSuite.ApiTests/CommentsTests.cs b/tools/TestSuite/TestSuite.ApiTests/CommentsTests.cs index e2f7afc773..b89eee457b 100644 --- a/tools/TestSuite/TestSuite.ApiTests/CommentsTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/CommentsTests.cs @@ -5,7 +5,7 @@ // All rights reserved. Licensed under the MIT license. // ========================================================================== -using Squidex.ClientLibrary.Management; +using Squidex.ClientLibrary; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter diff --git a/tools/TestSuite/TestSuite.ApiTests/ContentScriptingTests.cs b/tools/TestSuite/TestSuite.ApiTests/ContentScriptingTests.cs index fe4bc3643a..8c5e2f7e7e 100644 --- a/tools/TestSuite/TestSuite.ApiTests/ContentScriptingTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/ContentScriptingTests.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Fixtures; using TestSuite.Model; diff --git a/tools/TestSuite/TestSuite.ApiTests/ContentUpdateTests.cs b/tools/TestSuite/TestSuite.ApiTests/ContentUpdateTests.cs index a1b59f5eb4..48ae5f5ab7 100644 --- a/tools/TestSuite/TestSuite.ApiTests/ContentUpdateTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/ContentUpdateTests.cs @@ -8,7 +8,6 @@ using Newtonsoft.Json.Linq; using Squidex.ClientLibrary; using Squidex.ClientLibrary.EnrichedEvents; -using Squidex.ClientLibrary.Management; using TestSuite.Model; #pragma warning disable CS0618 // Type or member is obsolete diff --git a/tools/TestSuite/TestSuite.ApiTests/GraphQLFixture.cs b/tools/TestSuite/TestSuite.ApiTests/GraphQLFixture.cs index 7092590f20..6d81165199 100644 --- a/tools/TestSuite/TestSuite.ApiTests/GraphQLFixture.cs +++ b/tools/TestSuite/TestSuite.ApiTests/GraphQLFixture.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; #pragma warning disable SA1507 // Code should not contain multiple blank lines in a row @@ -51,7 +50,7 @@ async Task CreateSchemaAsync(CreateSchemaDto request) return response.Id; } - catch (SquidexManagementException ex) + catch (SquidexException ex) { if (ex.StatusCode != 400) { diff --git a/tools/TestSuite/TestSuite.ApiTests/GraphQLSubscriptionTests.cs b/tools/TestSuite/TestSuite.ApiTests/GraphQLSubscriptionTests.cs index a4936db110..ddab65b87c 100644 --- a/tools/TestSuite/TestSuite.ApiTests/GraphQLSubscriptionTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/GraphQLSubscriptionTests.cs @@ -10,7 +10,6 @@ using GraphQL.Client.Http; using GraphQL.Client.Serializer.Newtonsoft; using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Model; namespace TestSuite.ApiTests; diff --git a/tools/TestSuite/TestSuite.ApiTests/RuleEventsTests.cs b/tools/TestSuite/TestSuite.ApiTests/RuleEventsTests.cs index 7b1c6ef49d..b4d710aeaf 100644 --- a/tools/TestSuite/TestSuite.ApiTests/RuleEventsTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/RuleEventsTests.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter diff --git a/tools/TestSuite/TestSuite.ApiTests/RuleRunnerTests.cs b/tools/TestSuite/TestSuite.ApiTests/RuleRunnerTests.cs index a701d993e4..272f2dc8e5 100644 --- a/tools/TestSuite/TestSuite.ApiTests/RuleRunnerTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/RuleRunnerTests.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Fixtures; using TestSuite.Model; @@ -201,7 +200,7 @@ public async Task Should_run_scripting_rule_on_content_change() Action = new ScriptRuleActionDto { Script = $@" - postJSON('{url}', {{ schemaName: event.schemaId.Name }}) + postJSON('{url}', {{ schemaName: event.schemaId.Name }}, function () {{}}) " }, Trigger = new ContentChangedRuleTriggerDto diff --git a/tools/TestSuite/TestSuite.ApiTests/RuleTests.cs b/tools/TestSuite/TestSuite.ApiTests/RuleTests.cs index 74f67936b4..e4eb2c3d8f 100644 --- a/tools/TestSuite/TestSuite.ApiTests/RuleTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/RuleTests.cs @@ -5,7 +5,7 @@ // All rights reserved. Licensed under the MIT license. // ========================================================================== -using Squidex.ClientLibrary.Management; +using Squidex.ClientLibrary; using TestSuite.Fixtures; #pragma warning disable SA1300 // Element should begin with upper-case letter diff --git a/tools/TestSuite/TestSuite.ApiTests/SchemaTests.cs b/tools/TestSuite/TestSuite.ApiTests/SchemaTests.cs index 3dcb774706..ccb5595369 100644 --- a/tools/TestSuite/TestSuite.ApiTests/SchemaTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/SchemaTests.cs @@ -5,7 +5,7 @@ // All rights reserved. Licensed under the MIT license. // ========================================================================== -using Squidex.ClientLibrary.Management; +using Squidex.ClientLibrary; using TestSuite.Fixtures; #pragma warning disable CS0618 // Type or member is obsolete @@ -61,7 +61,7 @@ public async Task Should_not_allow_creation_if_name_used() // STEP 2: Create again and fail. - var ex = await Assert.ThrowsAnyAsync(() => + var ex = await Assert.ThrowsAnyAsync(() => { return _.Client.Schemas.PostSchemaAsync(createRequest); }); diff --git a/tools/TestSuite/TestSuite.ApiTests/SearchTests.cs b/tools/TestSuite/TestSuite.ApiTests/SearchTests.cs index 0a566628d4..0766c5f780 100644 --- a/tools/TestSuite/TestSuite.ApiTests/SearchTests.cs +++ b/tools/TestSuite/TestSuite.ApiTests/SearchTests.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Model; #pragma warning disable SA1300 // Element should begin with upper-case letter diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AnonymousTests.Should_create_app_with_anonymous_read_access.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AnonymousTests.Should_create_app_with_anonymous_read_access.verified.txt index ea0ddec945..73370148e5 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AnonymousTests.Should_create_app_with_anonymous_read_access.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AnonymousTests.Should_create_app_with_anonymous_read_access.verified.txt @@ -3,7 +3,7 @@ Name: Guid_2, Version: 2, CanAccessContent: true, - _links: { + Links: { assets: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AnonymousTests.Should_create_app_with_anonymous_write_access.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AnonymousTests.Should_create_app_with_anonymous_write_access.verified.txt index ea0ddec945..73370148e5 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AnonymousTests.Should_create_app_with_anonymous_write_access.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AnonymousTests.Should_create_app_with_anonymous_write_access.verified.txt @@ -3,7 +3,7 @@ Name: Guid_2, Version: 2, CanAccessContent: true, - _links: { + Links: { assets: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppClientsTests.Should_create_client.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppClientsTests.Should_create_client.verified.txt index 2e297c639a..bd1aad62c3 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppClientsTests.Should_create_client.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppClientsTests.Should_create_client.verified.txt @@ -3,7 +3,7 @@ Name: Guid_1, Role: Editor, AllowAnonymous: false, - _links: { + Links: { delete: { Method: DELETE }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppClientsTests.Should_delete_client.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppClientsTests.Should_delete_client.verified.txt index 2196a4e939..bb1be7ba25 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppClientsTests.Should_delete_client.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppClientsTests.Should_delete_client.verified.txt @@ -5,7 +5,7 @@ Name: default, Role: Owner, AllowAnonymous: false, - _links: { + Links: { delete: { Method: DELETE }, @@ -15,7 +15,7 @@ } } ], - _links: { + Links: { create: { Method: POST }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppClientsTests.Should_update_client.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppClientsTests.Should_update_client.verified.txt index 9e61e6a9d6..7509aeaba1 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppClientsTests.Should_update_client.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppClientsTests.Should_update_client.verified.txt @@ -5,7 +5,7 @@ Name: default, Role: Owner, AllowAnonymous: false, - _links: { + Links: { delete: { Method: DELETE }, @@ -21,7 +21,7 @@ ApiCallsLimit: 100, ApiTrafficLimit: 200, AllowAnonymous: true, - _links: { + Links: { delete: { Method: DELETE }, @@ -31,7 +31,7 @@ } } ], - _links: { + Links: { create: { Method: POST }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppContributorsTests.Should_invite_contributor.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppContributorsTests.Should_invite_contributor.verified.txt index c14f79a643..2f1d520d8c 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppContributorsTests.Should_invite_contributor.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppContributorsTests.Should_invite_contributor.verified.txt @@ -1,6 +1,6 @@ { Role: Developer, - _links: { + Links: { delete: { Method: DELETE }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppContributorsTests.Should_remove_contributor.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppContributorsTests.Should_remove_contributor.verified.txt index c836402db7..d72ac376a8 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppContributorsTests.Should_remove_contributor.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppContributorsTests.Should_remove_contributor.verified.txt @@ -1,6 +1,6 @@ { MaxContributors: -1, - _links: { + Links: { create: { Method: POST }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppCreationTests.Should_create_app.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppCreationTests.Should_create_app.verified.txt index ea0ddec945..73370148e5 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppCreationTests.Should_create_app.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppCreationTests.Should_create_app.verified.txt @@ -3,7 +3,7 @@ Name: Guid_2, Version: 2, CanAccessContent: true, - _links: { + Links: { assets: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppCreationTests.Should_create_app_from_templates.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppCreationTests.Should_create_app_from_templates.verified.txt index 0cf474c4c2..6180708e94 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppCreationTests.Should_create_app_from_templates.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppCreationTests.Should_create_app_from_templates.verified.txt @@ -47,7 +47,7 @@ IsRequiredOnPublish: false, IsHalfWidth: false }, - _links: { + Links: { delete: { Method: DELETE }, @@ -84,7 +84,7 @@ IsRequiredOnPublish: false, IsHalfWidth: false }, - _links: { + Links: { delete: { Method: DELETE }, @@ -120,7 +120,7 @@ IsRequiredOnPublish: false, IsHalfWidth: false }, - _links: { + Links: { delete: { Method: DELETE }, @@ -139,7 +139,7 @@ } } ], - _links: { + Links: { contents: { Method: GET }, @@ -234,7 +234,7 @@ IsRequiredOnPublish: false, IsHalfWidth: false }, - _links: { + Links: { delete: { Method: DELETE }, @@ -271,7 +271,7 @@ IsRequiredOnPublish: false, IsHalfWidth: false }, - _links: { + Links: { delete: { Method: DELETE }, @@ -307,7 +307,7 @@ IsRequiredOnPublish: false, IsHalfWidth: false }, - _links: { + Links: { delete: { Method: DELETE }, @@ -326,7 +326,7 @@ } } ], - _links: { + Links: { contents: { Method: GET }, @@ -375,7 +375,7 @@ } } ], - _links: { + Links: { create: { Method: POST }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_add_custom_language.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_add_custom_language.verified.txt index f2b50a8962..357d85c363 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_add_custom_language.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_add_custom_language.verified.txt @@ -11,7 +11,7 @@ EnglishName: , IsMaster: false, IsOptional: false, - _links: { + Links: { delete: { Method: DELETE }, @@ -25,7 +25,7 @@ EnglishName: , IsMaster: false, IsOptional: false, - _links: { + Links: { delete: { Method: DELETE }, @@ -35,7 +35,7 @@ } } ], - _links: { + Links: { create: { Method: POST }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_add_language.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_add_language.verified.txt index aeeadda5e7..3214647e16 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_add_language.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_add_language.verified.txt @@ -11,7 +11,7 @@ EnglishName: German, IsMaster: false, IsOptional: false, - _links: { + Links: { delete: { Method: DELETE }, @@ -25,7 +25,7 @@ EnglishName: Italian, IsMaster: false, IsOptional: false, - _links: { + Links: { delete: { Method: DELETE }, @@ -35,7 +35,7 @@ } } ], - _links: { + Links: { create: { Method: POST }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_delete_language.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_delete_language.verified.txt index e6110cb071..5dae4fe5a4 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_delete_language.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_delete_language.verified.txt @@ -11,7 +11,7 @@ EnglishName: Italian, IsMaster: false, IsOptional: true, - _links: { + Links: { delete: { Method: DELETE }, @@ -21,7 +21,7 @@ } } ], - _links: { + Links: { create: { Method: POST }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_update_language.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_update_language.verified.txt index 2caf932c79..bdf9ede6dc 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_update_language.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_update_language.verified.txt @@ -14,7 +14,7 @@ ], IsMaster: false, IsOptional: true, - _links: { + Links: { delete: { Method: DELETE }, @@ -28,7 +28,7 @@ EnglishName: Italian, IsMaster: false, IsOptional: false, - _links: { + Links: { delete: { Method: DELETE }, @@ -38,7 +38,7 @@ } } ], - _links: { + Links: { create: { Method: POST }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_update_master_language.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_update_master_language.verified.txt index 27cb180f4e..133ce2a67b 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_update_master_language.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppLanguagesTests.Should_update_master_language.verified.txt @@ -11,7 +11,7 @@ EnglishName: German, IsMaster: false, IsOptional: false, - _links: { + Links: { delete: { Method: DELETE }, @@ -25,7 +25,7 @@ EnglishName: English, IsMaster: false, IsOptional: false, - _links: { + Links: { delete: { Method: DELETE }, @@ -35,7 +35,7 @@ } } ], - _links: { + Links: { create: { Method: POST }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppRolesTests.Should_create_role.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppRolesTests.Should_create_role.verified.txt index cb5b819568..27827aeddb 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppRolesTests.Should_create_role.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppRolesTests.Should_create_role.verified.txt @@ -1,6 +1,6 @@ { IsDefaultRole: false, - _links: { + Links: { delete: { Method: DELETE }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppRolesTests.Should_create_role_with_buggy_name.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppRolesTests.Should_create_role_with_buggy_name.verified.txt index cb5b819568..27827aeddb 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppRolesTests.Should_create_role_with_buggy_name.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppRolesTests.Should_create_role_with_buggy_name.verified.txt @@ -1,6 +1,6 @@ { IsDefaultRole: false, - _links: { + Links: { delete: { Method: DELETE }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppRolesTests.Should_update_role.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppRolesTests.Should_update_role.verified.txt index 4b54beda85..aea8c02f43 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppRolesTests.Should_update_role.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppRolesTests.Should_update_role.verified.txt @@ -4,7 +4,7 @@ a, b ], - _links: { + Links: { delete: { Method: DELETE }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppTests.Should_update_settings.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppTests.Should_update_settings.verified.txt index 7cc9932f15..6dbdd310e1 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppTests.Should_update_settings.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppTests.Should_update_settings.verified.txt @@ -13,7 +13,7 @@ ], HideScheduler: false, HideDateTimeModeButton: false, - _links: { + Links: { self: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppWorkflowsTests.Should_create_workflow.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppWorkflowsTests.Should_create_workflow.verified.txt index 8aeea140cf..113307c7af 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppWorkflowsTests.Should_create_workflow.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppWorkflowsTests.Should_create_workflow.verified.txt @@ -30,7 +30,7 @@ } }, Initial: Draft, - _links: { + Links: { delete: { Method: DELETE }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppWorkflowsTests.Should_delete_workflow.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppWorkflowsTests.Should_delete_workflow.verified.txt index bbc44edade..596d11ec02 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppWorkflowsTests.Should_delete_workflow.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppWorkflowsTests.Should_delete_workflow.verified.txt @@ -1,5 +1,5 @@ { - _links: { + Links: { create: { Method: POST }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AppWorkflowsTests.Should_update_workflow.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AppWorkflowsTests.Should_update_workflow.verified.txt index 9265eccd22..1536a50551 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AppWorkflowsTests.Should_update_workflow.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AppWorkflowsTests.Should_update_workflow.verified.txt @@ -17,7 +17,7 @@ } }, Initial: Draft, - _links: { + Links: { delete: { Method: DELETE }, @@ -27,7 +27,7 @@ } } ], - _links: { + Links: { create: { Method: POST }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFoldersTests.Should_create_folder.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFoldersTests.Should_create_folder.verified.txt index 8bfb269a53..86d081db25 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFoldersTests.Should_create_folder.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFoldersTests.Should_create_folder.verified.txt @@ -2,7 +2,7 @@ Id: Guid_1, ParentId: Guid_Empty, FolderName: Guid_2, - _links: { + Links: { delete: { Method: DELETE }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFoldersTests.Should_update_folder.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFoldersTests.Should_update_folder.verified.txt index d5f3d47ccd..968c1c488f 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFoldersTests.Should_update_folder.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFoldersTests.Should_update_folder.verified.txt @@ -3,7 +3,7 @@ ParentId: Guid_Empty, FolderName: Guid_2, Version: 1, - _links: { + Links: { delete: { Method: DELETE }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_fix_orientation.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_fix_orientation.verified.txt index 905ae46415..e0fcca598a 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_fix_orientation.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_fix_orientation.verified.txt @@ -21,7 +21,7 @@ ], FileSize: 15425, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_audio_mp3.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_audio_mp3.verified.txt index 348826fa40..7148b58535 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_audio_mp3.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_audio_mp3.verified.txt @@ -20,7 +20,7 @@ ], FileSize: 443926, Type: Audio, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_bmp_and_encode_to_webp.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_bmp_and_encode_to_webp.verified.txt index 80cd35c62e..439073397f 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_bmp_and_encode_to_webp.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_bmp_and_encode_to_webp.verified.txt @@ -19,7 +19,7 @@ ], FileSize: 720054, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_bmp_and_resize.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_bmp_and_resize.verified.txt index 80cd35c62e..439073397f 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_bmp_and_resize.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_bmp_and_resize.verified.txt @@ -19,7 +19,7 @@ ], FileSize: 720054, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_gif_and_resize.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_gif_and_resize.verified.txt index bd0e094052..349034a697 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_gif_and_resize.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_gif_and_resize.verified.txt @@ -20,7 +20,7 @@ ], FileSize: 157934, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_gif_without_extension.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_gif_without_extension.verified.txt index cfe32de8f2..daa210d615 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_gif_without_extension.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_gif_without_extension.verified.txt @@ -16,7 +16,7 @@ ], FileSize: 157934, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_jpg_and_resize.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_jpg_and_resize.verified.txt index d515b71253..f37fad9692 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_jpg_and_resize.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_jpg_and_resize.verified.txt @@ -21,7 +21,7 @@ ], FileSize: 63507, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_png_and_resize.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_png_and_resize.verified.txt index 642afe1648..8026aef249 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_png_and_resize.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_png_and_resize.verified.txt @@ -20,7 +20,7 @@ ], FileSize: 439244, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_tga_and_resize.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_tga_and_resize.verified.txt index bdcc1cae0d..25069d9e01 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_tga_and_resize.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_tga_and_resize.verified.txt @@ -19,7 +19,7 @@ ], FileSize: 631995, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_tiff_and_resize.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_tiff_and_resize.verified.txt index 7c1607f976..d36c9875b3 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_tiff_and_resize.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_tiff_and_resize.verified.txt @@ -20,7 +20,7 @@ ], FileSize: 485012, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_webp_and_resize.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_webp_and_resize.verified.txt index 410aef50ee..3cbf0c9529 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_webp_and_resize.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_image_webp_and_resize.verified.txt @@ -19,7 +19,7 @@ ], FileSize: 112138, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_3gp.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_3gp.verified.txt index 7ee063de56..814dd113a2 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_3gp.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_3gp.verified.txt @@ -12,7 +12,7 @@ type/3gp ], FileSize: 1038741, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_flv.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_flv.verified.txt index a6ec1cc30f..5f94bf4ec4 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_flv.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_flv.verified.txt @@ -12,7 +12,7 @@ type/flv ], FileSize: 1051185, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_mkv.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_mkv.verified.txt index aad62acc67..504d8ab975 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_mkv.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_mkv.verified.txt @@ -12,7 +12,7 @@ type/flv ], FileSize: 1051185, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_mp4.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_mp4.verified.txt index 7bd91f5c2a..ef99fdf555 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_mp4.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetFormatTests.Should_upload_video_mp4.verified.txt @@ -22,7 +22,7 @@ ], FileSize: 1055736, Type: Video, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annotate_asset_in_parallel.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annotate_asset_in_parallel.verified.txt index ef78a31f7c..69e1debf76 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annotate_asset_in_parallel.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annotate_asset_in_parallel.verified.txt @@ -15,7 +15,7 @@ }, FileSize: 19430, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_file_name.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_file_name.verified.txt index 3888a0ec96..a3ff25c1ee 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_file_name.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_file_name.verified.txt @@ -21,7 +21,7 @@ FileSize: 19430, Type: Image, Version: 1, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_metadata.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_metadata.verified.txt index a650a0f840..0c17d3a0a5 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_metadata.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_metadata.verified.txt @@ -20,7 +20,7 @@ FileSize: 19430, Type: Image, Version: 1, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_slug.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_slug.verified.txt index 23ee5dda4d..4d98c2bdfe 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_slug.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_slug.verified.txt @@ -21,7 +21,7 @@ FileSize: 19430, Type: Image, Version: 1, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_tags.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_tags.verified.txt index f4fe03fd3b..736724527a 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_tags.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_annote_asset_tags.verified.txt @@ -20,7 +20,7 @@ FileSize: 19430, Type: Image, Version: 1, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_protect_asset.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_protect_asset.verified.txt index 42e5746f0e..83154ca7e3 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_protect_asset.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_protect_asset.verified.txt @@ -21,7 +21,7 @@ FileSize: 19430, Type: Image, Version: 1, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_protect_asset_with_script.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_protect_asset_with_script.verified.txt index a7471850b5..704f2b8928 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_protect_asset_with_script.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_protect_asset_with_script.verified.txt @@ -20,7 +20,7 @@ ], FileSize: 19430, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_replace_asset.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_replace_asset.verified.txt index 19c598cfc0..3b4a593ee0 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_replace_asset.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_replace_asset.verified.txt @@ -22,7 +22,7 @@ FileVersion: 1, Type: Image, Version: 1, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_upload_asset.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_upload_asset.verified.txt index d5969db731..c325fcd885 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_upload_asset.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_upload_asset.verified.txt @@ -20,7 +20,7 @@ ], FileSize: 19430, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_upload_asset_with_custom_id.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_upload_asset_with_custom_id.verified.txt index d5969db731..c325fcd885 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_upload_asset_with_custom_id.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/AssetTests.Should_upload_asset_with_custom_id.verified.txt @@ -20,7 +20,7 @@ ], FileSize: 19430, Type: Image, - _links: { + Links: { content: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/RuleTests.Should_create_rule.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/RuleTests.Should_create_rule.verified.txt index d1014a3b11..e6445446a6 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/RuleTests.Should_create_rule.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/RuleTests.Should_create_rule.verified.txt @@ -7,7 +7,7 @@ Action: { Url: http://squidex.io }, - _links: { + Links: { delete: { Method: DELETE }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/RuleTests.Should_update_rule.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/RuleTests.Should_update_rule.verified.txt index 20c9c11c30..c29f6c84bd 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/RuleTests.Should_update_rule.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/RuleTests.Should_update_rule.verified.txt @@ -9,7 +9,7 @@ Action: { Url: http://squidex.io }, - _links: { + Links: { delete: { Method: DELETE }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/SchemaTests.Should_create_singleton_schema.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/SchemaTests.Should_create_singleton_schema.verified.txt index 771396fd48..bbc5ce19ed 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/SchemaTests.Should_create_singleton_schema.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/SchemaTests.Should_create_singleton_schema.verified.txt @@ -6,7 +6,7 @@ }, IsPublished: true, Scripts: {}, - _links: { + Links: { contents: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.ApiTests/Verify/SchemaTests.Should_create_singleton_schema_with_obsolete_property.verified.txt b/tools/TestSuite/TestSuite.ApiTests/Verify/SchemaTests.Should_create_singleton_schema_with_obsolete_property.verified.txt index 771396fd48..bbc5ce19ed 100644 --- a/tools/TestSuite/TestSuite.ApiTests/Verify/SchemaTests.Should_create_singleton_schema_with_obsolete_property.verified.txt +++ b/tools/TestSuite/TestSuite.ApiTests/Verify/SchemaTests.Should_create_singleton_schema_with_obsolete_property.verified.txt @@ -6,7 +6,7 @@ }, IsPublished: true, Scripts: {}, - _links: { + Links: { contents: { Method: GET }, diff --git a/tools/TestSuite/TestSuite.Shared/ClientExtensions.cs b/tools/TestSuite/TestSuite.Shared/ClientExtensions.cs index ff43a34bfd..a2dce3c5a5 100644 --- a/tools/TestSuite/TestSuite.Shared/ClientExtensions.cs +++ b/tools/TestSuite/TestSuite.Shared/ClientExtensions.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Fixtures; namespace TestSuite; @@ -25,7 +24,7 @@ public static async Task WaitForDeletionAsync(this IAssetsClient assetsCli { await assetsClient.GetAssetAsync(id, cts.Token); } - catch (SquidexManagementException ex) when (ex.StatusCode == 404) + catch (SquidexException ex) when (ex.StatusCode == 404) { return true; } @@ -198,7 +197,7 @@ public static async Task DownloadAsync(this ClientFixture fixture, { httpClient.BaseAddress = new Uri(fixture.Url); - var url = asset._links["content"].Href[1..]; + var url = asset.Links["content"].Href[1..]; if (version > 0) { diff --git a/tools/TestSuite/TestSuite.Shared/Fixtures/ClientFixture.cs b/tools/TestSuite/TestSuite.Shared/Fixtures/ClientFixture.cs index 662de46797..62a32f8276 100644 --- a/tools/TestSuite/TestSuite.Shared/Fixtures/ClientFixture.cs +++ b/tools/TestSuite/TestSuite.Shared/Fixtures/ClientFixture.cs @@ -7,7 +7,6 @@ using Microsoft.Extensions.DependencyInjection; using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using Xunit; namespace TestSuite.Fixtures; diff --git a/tools/TestSuite/TestSuite.Shared/Fixtures/CreatedAppFixture.cs b/tools/TestSuite/TestSuite.Shared/Fixtures/CreatedAppFixture.cs index b83a0826e1..cbdfac1cef 100644 --- a/tools/TestSuite/TestSuite.Shared/Fixtures/CreatedAppFixture.cs +++ b/tools/TestSuite/TestSuite.Shared/Fixtures/CreatedAppFixture.cs @@ -5,7 +5,7 @@ // All rights reserved. Licensed under the MIT license. // ========================================================================== -using Squidex.ClientLibrary.Management; +using Squidex.ClientLibrary; namespace TestSuite.Fixtures; @@ -26,7 +26,7 @@ async Task CreateLanguageAsync(string name) await Client.Apps.PostLanguageAsync(createRequest); } - catch (SquidexManagementException ex) + catch (SquidexException ex) { if (ex.StatusCode != 400) { @@ -44,7 +44,7 @@ await Client.Apps.PostAppAsync(new CreateAppDto Name = AppName }); } - catch (SquidexManagementException ex) + catch (SquidexException ex) { if (ex.StatusCode != 400) { diff --git a/tools/TestSuite/TestSuite.Shared/Fixtures/TestSchemaFixtureBase.cs b/tools/TestSuite/TestSuite.Shared/Fixtures/TestSchemaFixtureBase.cs index f828de363d..77a60c276c 100644 --- a/tools/TestSuite/TestSuite.Shared/Fixtures/TestSchemaFixtureBase.cs +++ b/tools/TestSuite/TestSuite.Shared/Fixtures/TestSchemaFixtureBase.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Model; namespace TestSuite.Fixtures; @@ -32,7 +31,7 @@ await Factories.CreateAsync($"{nameof(TestEntity)}_{SchemaName}", async () => { await TestEntity.CreateSchemaAsync(Client.Schemas, SchemaName); } - catch (SquidexManagementException ex) + catch (SquidexException ex) { if (ex.StatusCode != 400) { diff --git a/tools/TestSuite/TestSuite.Shared/Fixtures/TestSchemaWithReferencesFixtureBase.cs b/tools/TestSuite/TestSuite.Shared/Fixtures/TestSchemaWithReferencesFixtureBase.cs index 4ca3a7ac91..e5063b1853 100644 --- a/tools/TestSuite/TestSuite.Shared/Fixtures/TestSchemaWithReferencesFixtureBase.cs +++ b/tools/TestSuite/TestSuite.Shared/Fixtures/TestSchemaWithReferencesFixtureBase.cs @@ -6,7 +6,6 @@ // ========================================================================== using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; using TestSuite.Model; namespace TestSuite.Fixtures; @@ -32,7 +31,7 @@ await Factories.CreateAsync($"{nameof(TestEntityWithReferences)}_{SchemaName}", { await TestEntityWithReferences.CreateSchemaAsync(Client.Schemas, SchemaName); } - catch (SquidexManagementException ex) + catch (SquidexException ex) { if (ex.StatusCode != 400) { diff --git a/tools/TestSuite/TestSuite.Shared/Model/TestEntity.cs b/tools/TestSuite/TestSuite.Shared/Model/TestEntity.cs index 35f92b5ae7..fc99fced88 100644 --- a/tools/TestSuite/TestSuite.Shared/Model/TestEntity.cs +++ b/tools/TestSuite/TestSuite.Shared/Model/TestEntity.cs @@ -9,7 +9,6 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; #pragma warning disable MA0048 // File name must match type name diff --git a/tools/TestSuite/TestSuite.Shared/Model/TestEntityWithReferences.cs b/tools/TestSuite/TestSuite.Shared/Model/TestEntityWithReferences.cs index 351676aaa9..dcf13e5050 100644 --- a/tools/TestSuite/TestSuite.Shared/Model/TestEntityWithReferences.cs +++ b/tools/TestSuite/TestSuite.Shared/Model/TestEntityWithReferences.cs @@ -7,7 +7,6 @@ using Newtonsoft.Json; using Squidex.ClientLibrary; -using Squidex.ClientLibrary.Management; #pragma warning disable MA0048 // File name must match type name diff --git a/tools/TestSuite/TestSuite.Shared/TestSuite.Shared.csproj b/tools/TestSuite/TestSuite.Shared/TestSuite.Shared.csproj index 41156df2f0..3507220460 100644 --- a/tools/TestSuite/TestSuite.Shared/TestSuite.Shared.csproj +++ b/tools/TestSuite/TestSuite.Shared/TestSuite.Shared.csproj @@ -16,8 +16,8 @@ - - + +