Browse Source

Added test for MVC data annotation localization

pull/400/head
Halil ibrahim Kalkan 8 years ago
parent
commit
118e674342
  1. 4
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj
  2. 22
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/LocalizationTestController.cs
  3. 0
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/Views/LocalizationTest/HelloJohn.cshtml
  4. 8
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/Views/LocalizationTest/PersonForm.cshtml
  5. 3
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/Views/_ViewImports.cshtml
  6. 29
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs
  7. 19
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/MvcLocalization_Tests.cs
  8. 7
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/MvcTestResource.cs
  9. 6
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/en.json
  10. 6
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/tr.json

4
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj

@ -15,6 +15,10 @@
<RootNamespace />
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Include="Volo\Abp\AspNetCore\Mvc\Localization\Resource\*.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.1.0" />

22
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/LocalizationTestController.cs

@ -1,13 +1,31 @@
using Microsoft.AspNetCore.Mvc;
using System;
using System.ComponentModel.DataAnnotations;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;
namespace Volo.Abp.AspNetCore.App
{
public class LocalizationTestController : AbpController
{
public IActionResult Index1()
public IActionResult HelloJohn()
{
return View();
}
public IActionResult PersonForm()
{
return View(new PersonModel());
}
public class PersonModel
{
[Display(Name = nameof(BirthDate))]
public string BirthDate { get; set; }
public PersonModel()
{
BirthDate = DateTime.Now.ToString("yyyy-MM-dd");
}
}
}
}

0
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/Views/LocalizationTest/Index1.cshtml → framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/Views/LocalizationTest/HelloJohn.cshtml

8
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/Views/LocalizationTest/PersonForm.cshtml

@ -0,0 +1,8 @@
@using Microsoft.AspNetCore.Mvc.Localization
@using Volo.Abp.AspNetCore.App
@inject IViewLocalizer Localizer
@model Volo.Abp.AspNetCore.App.LocalizationTestController.PersonModel
<form>
<label asp-for="BirthDate"></label>
<input asp-for="BirthDate" />
</form>

3
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/App/Views/_ViewImports.cshtml

@ -0,0 +1,3 @@
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap
@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling

29
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs

@ -3,12 +3,16 @@ using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.AspNetCore.Modularity;
using Volo.Abp.AspNetCore.Mvc.Authorization;
using Volo.Abp.AspNetCore.Mvc.Localization;
using Volo.Abp.AspNetCore.Mvc.Localization.Resource;
using Volo.Abp.AspNetCore.TestBase;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Autofac;
using Volo.Abp.Localization;
using Volo.Abp.MemoryDb;
using Volo.Abp.Modularity;
using Volo.Abp.TestApp;
using Volo.Abp.VirtualFileSystem;
namespace Volo.Abp.AspNetCore.Mvc
{
@ -20,10 +24,19 @@ namespace Volo.Abp.AspNetCore.Mvc
)]
public class AbpAspNetCoreMvcTestModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
public override void PreConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddLocalization(); //TODO: Move to the framework..?
context.Services.PreConfigure<AbpMvcDataAnnotationsLocalizationOptions>(options =>
{
options.AddAssemblyResource(
typeof(MvcTestResource),
typeof(AbpAspNetCoreMvcTestModule).Assembly
);
});
}
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddAuthorization(options =>
{
options.AddPolicy("MyClaimTestPolicy", policy =>
@ -48,6 +61,18 @@ namespace Volo.Abp.AspNetCore.Mvc
options.DefinitionProviders.Add<TestPermissionDefinitionProvider>();
});
context.Services.Configure<VirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<AbpAspNetCoreMvcTestModule>();
});
context.Services.Configure<AbpLocalizationOptions>(options =>
{
options.Resources
.Add<MvcTestResource>("en")
.AddVirtualJson("/Volo/Abp/AspNetCore/Mvc/Localization/Resource");
});
context.Services.AddAssemblyOf<AbpAspNetCoreMvcTestModule>();
}

19
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/MvcLocalization_Tests.cs

@ -2,6 +2,7 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization;
using Shouldly;
using Volo.Abp.Localization;
using Xunit;
namespace Volo.Abp.AspNetCore.Mvc.Localization
@ -26,8 +27,24 @@ namespace Volo.Abp.AspNetCore.Mvc.Localization
[Fact]
public async Task Should_Get_Same_Text_If_Not_Defined_In_Razor_View()
{
var result = await GetResponseAsStringAsync("/LocalizationTest/Index1");
var result = await GetResponseAsStringAsync("/LocalizationTest/HelloJohn");
result.ShouldBe("Hello <b>John</b>.");
}
[Fact]
public async Task Should_Localize_Display_Attribute()
{
using (AbpCultureHelper.Use("en"))
{
var result = await GetResponseAsStringAsync("/LocalizationTest/PersonForm");
result.ShouldContain("<label for=\"BirthDate\">Birth date</label>");
}
using (AbpCultureHelper.Use("tr"))
{
var result = await GetResponseAsStringAsync("/LocalizationTest/PersonForm");
result.ShouldContain("<label for=\"BirthDate\">Dogum gunu</label>");
}
}
}
}

7
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/MvcTestResource.cs

@ -0,0 +1,7 @@
namespace Volo.Abp.AspNetCore.Mvc.Localization.Resource
{
public class MvcTestResource
{
}
}

6
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/en.json

@ -0,0 +1,6 @@
{
"culture": "en",
"texts": {
"BirthDate": "Birth date"
}
}

6
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/tr.json

@ -0,0 +1,6 @@
{
"culture": "tr",
"texts": {
"BirthDate": "Dogum gunu"
}
}
Loading…
Cancel
Save