diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln
index e71b58eba0..088a9437a8 100644
--- a/framework/Volo.Abp.sln
+++ b/framework/Volo.Abp.sln
@@ -250,7 +250,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.MailKit.Tests", "t
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.ObjectMapping.Tests", "test\Volo.Abp.ObjectMapping.Tests\Volo.Abp.ObjectMapping.Tests.csproj", "{667F5544-C1EB-447C-96FD-9B757F04DE2B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Ddd.Application.Contracts", "src\Volo.Abp.Ddd.Application.Contracts\Volo.Abp.Ddd.Application.Contracts.csproj", "{73559227-EBF0-475F-835B-1FF0CD9132AA}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Ddd.Application.Contracts", "src\Volo.Abp.Ddd.Application.Contracts\Volo.Abp.Ddd.Application.Contracts.csproj", "{73559227-EBF0-475F-835B-1FF0CD9132AA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Minify", "src\Volo.Abp.Minify\Volo.Abp.Minify.csproj", "{928DC30D-C078-4BB4-A9F8-FE7252C67DC6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Minify.Tests", "test\Volo.Abp.Minify.Tests\Volo.Abp.Minify.Tests.csproj", "{E69182B3-350A-43F5-A935-5EBBEBECEF97}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -750,6 +754,14 @@ Global
{73559227-EBF0-475F-835B-1FF0CD9132AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{73559227-EBF0-475F-835B-1FF0CD9132AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{73559227-EBF0-475F-835B-1FF0CD9132AA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {928DC30D-C078-4BB4-A9F8-FE7252C67DC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {928DC30D-C078-4BB4-A9F8-FE7252C67DC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {928DC30D-C078-4BB4-A9F8-FE7252C67DC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {928DC30D-C078-4BB4-A9F8-FE7252C67DC6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E69182B3-350A-43F5-A935-5EBBEBECEF97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E69182B3-350A-43F5-A935-5EBBEBECEF97}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E69182B3-350A-43F5-A935-5EBBEBECEF97}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E69182B3-350A-43F5-A935-5EBBEBECEF97}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -878,6 +890,8 @@ Global
{70DD6E17-B98B-4B00-8F38-C489E291BB53} = {447C8A77-E5F0-4538-8687-7383196D04EA}
{667F5544-C1EB-447C-96FD-9B757F04DE2B} = {447C8A77-E5F0-4538-8687-7383196D04EA}
{73559227-EBF0-475F-835B-1FF0CD9132AA} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
+ {928DC30D-C078-4BB4-A9F8-FE7252C67DC6} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
+ {E69182B3-350A-43F5-A935-5EBBEBECEF97} = {447C8A77-E5F0-4538-8687-7383196D04EA}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5}
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj
index 4427b40dd6..04158b461a 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj
+++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj
@@ -13,6 +13,7 @@
+
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs
index a0f0e65f1e..3a99953f25 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs
+++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs
@@ -1,9 +1,10 @@
using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap;
+using Volo.Abp.Minify;
using Volo.Abp.Modularity;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling
{
- [DependsOn(typeof(AbpAspNetCoreMvcUiBootstrapModule))]
+ [DependsOn(typeof(AbpAspNetCoreMvcUiBootstrapModule), typeof(AbpMinifyModule))]
public class AbpAspNetCoreMvcUiBundlingModule : AbpModule
{
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs
index 8c2258e1eb..115029dbe5 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs
+++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/BundlerBase.cs
@@ -3,9 +3,9 @@ using System.Text;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
-using Volo.Abp.AspNetCore.Mvc.UI.Minification;
using Volo.Abp.AspNetCore.VirtualFileSystem;
using Volo.Abp.DependencyInjection;
+using Volo.Abp.Minify;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling
{
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Scripts/ScriptBundler.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Scripts/ScriptBundler.cs
index 7b2887eb90..ec997a5aac 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Scripts/ScriptBundler.cs
+++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Scripts/ScriptBundler.cs
@@ -1,6 +1,6 @@
using System;
-using Volo.Abp.AspNetCore.Mvc.UI.Minification.Scripts;
using Volo.Abp.AspNetCore.VirtualFileSystem;
+using Volo.Abp.Minify.Scripts;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.Scripts
{
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/StyleBundler.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/StyleBundler.cs
index ac33211860..9651e7d5aa 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/StyleBundler.cs
+++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/Styles/StyleBundler.cs
@@ -1,8 +1,8 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
-using Volo.Abp.AspNetCore.Mvc.UI.Minification.Styles;
using Volo.Abp.AspNetCore.VirtualFileSystem;
+using Volo.Abp.Minify.Styles;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.Styles
{
diff --git a/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj b/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj
new file mode 100644
index 0000000000..6abb3fcc37
--- /dev/null
+++ b/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj
@@ -0,0 +1,24 @@
+
+
+
+
+
+ netstandard2.0
+ Volo.Abp.Minify
+ Volo.Abp.Minify
+ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/AbpMinifyModule.cs b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/AbpMinifyModule.cs
new file mode 100644
index 0000000000..3670eb5e42
--- /dev/null
+++ b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/AbpMinifyModule.cs
@@ -0,0 +1,8 @@
+using Volo.Abp.Modularity;
+
+namespace Volo.Abp.Minify
+{
+ public class AbpMinifyModule : AbpModule
+ {
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Html/IHtmlMinifier.cs b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Html/IHtmlMinifier.cs
new file mode 100644
index 0000000000..f09a378bb9
--- /dev/null
+++ b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Html/IHtmlMinifier.cs
@@ -0,0 +1,7 @@
+namespace Volo.Abp.Minify.Html
+{
+ public interface IHtmlMinifier : IMinifier
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/IMinifier.cs b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/IMinifier.cs
similarity index 67%
rename from framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/IMinifier.cs
rename to framework/src/Volo.Abp.Minify/Volo/Abp/Minify/IMinifier.cs
index 8b2390d7bb..6e298d4d82 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/IMinifier.cs
+++ b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/IMinifier.cs
@@ -1,4 +1,4 @@
-namespace Volo.Abp.AspNetCore.Mvc.UI.Minification
+namespace Volo.Abp.Minify
{
public interface IMinifier
{
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyCssMinifier.cs b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyCssMinifier.cs
similarity index 69%
rename from framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyCssMinifier.cs
rename to framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyCssMinifier.cs
index e1e0ba4236..a84f8b6e5d 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyCssMinifier.cs
+++ b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyCssMinifier.cs
@@ -1,7 +1,7 @@
using NUglify;
-using Volo.Abp.AspNetCore.Mvc.UI.Minification.Styles;
+using Volo.Abp.Minify.Styles;
-namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify
+namespace Volo.Abp.Minify.NUglify
{
public class NUglifyCssMinifier : NUglifyMinifierBase, ICssMinifier
{
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyException.cs b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyException.cs
similarity index 91%
rename from framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyException.cs
rename to framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyException.cs
index a5f36340a8..cb24f7812e 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyException.cs
+++ b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyException.cs
@@ -2,7 +2,7 @@ using System.Collections.Generic;
using System.Runtime.Serialization;
using NUglify;
-namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify
+namespace Volo.Abp.Minify.NUglify
{
public class NUglifyException : AbpException
{
diff --git a/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyHtmlMinifier.cs b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyHtmlMinifier.cs
new file mode 100644
index 0000000000..4947644278
--- /dev/null
+++ b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyHtmlMinifier.cs
@@ -0,0 +1,13 @@
+using NUglify;
+using Volo.Abp.Minify.Html;
+
+namespace Volo.Abp.Minify.NUglify
+{
+ public class NUglifyHtmlMinifier : NUglifyMinifierBase, IHtmlMinifier
+ {
+ protected override UglifyResult UglifySource(string source, string fileName)
+ {
+ return Uglify.Html(source, sourceFileName: fileName);
+ }
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyJavascriptMinifier.cs b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyJavascriptMinifier.cs
similarity index 60%
rename from framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyJavascriptMinifier.cs
rename to framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyJavascriptMinifier.cs
index 7224acd5a0..8a4a7a9dd4 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyJavascriptMinifier.cs
+++ b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyJavascriptMinifier.cs
@@ -1,9 +1,7 @@
using NUglify;
-using NUglify.JavaScript;
-using Volo.Abp.AspNetCore.Mvc.UI.Minification.Scripts;
-using Volo.Abp.DependencyInjection;
+using Volo.Abp.Minify.Scripts;
-namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify
+namespace Volo.Abp.Minify.NUglify
{
public class NUglifyJavascriptMinifier : NUglifyMinifierBase, IJavascriptMinifier
{
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyMinifierBase.cs b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyMinifierBase.cs
similarity index 94%
rename from framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyMinifierBase.cs
rename to framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyMinifierBase.cs
index b6fd576603..6f52e383a6 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/NUglifyMinifierBase.cs
+++ b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/NUglify/NUglifyMinifierBase.cs
@@ -4,7 +4,7 @@ using System.Linq;
using NUglify;
using Volo.Abp.DependencyInjection;
-namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify
+namespace Volo.Abp.Minify.NUglify
{
public abstract class NUglifyMinifierBase : IMinifier, ITransientDependency
{
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/Scripts/IJavascriptMinifier.cs b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Scripts/IJavascriptMinifier.cs
similarity index 53%
rename from framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/Scripts/IJavascriptMinifier.cs
rename to framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Scripts/IJavascriptMinifier.cs
index 84dfe9dd4e..319cc3e9ba 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/Scripts/IJavascriptMinifier.cs
+++ b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Scripts/IJavascriptMinifier.cs
@@ -1,4 +1,4 @@
-namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.Scripts
+namespace Volo.Abp.Minify.Scripts
{
public interface IJavascriptMinifier : IMinifier
{
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/Styles/ICssMinifier.cs b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Styles/ICssMinifier.cs
similarity index 51%
rename from framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/Styles/ICssMinifier.cs
rename to framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Styles/ICssMinifier.cs
index 42935b7c65..4e231ca0e4 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Minification/Styles/ICssMinifier.cs
+++ b/framework/src/Volo.Abp.Minify/Volo/Abp/Minify/Styles/ICssMinifier.cs
@@ -1,4 +1,4 @@
-namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.Styles
+namespace Volo.Abp.Minify.Styles
{
public interface ICssMinifier : IMinifier
{
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/JavascriptMinifier_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/JavascriptMinifier_Tests.cs
deleted file mode 100644
index ca04a8c929..0000000000
--- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo/Abp/AspNetCore/Mvc/UI/Minification/NUglify/JavascriptMinifier_Tests.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using Shouldly;
-using Xunit;
-
-namespace Volo.Abp.AspNetCore.Mvc.UI.Minification.NUglify
-{
- public class NUglifyJavascriptMinifier_Tests : AbpAspNetCoreMvcUiTestBase
- {
- private readonly NUglifyJavascriptMinifier _nUglifyJavascriptMinifier;
-
- public NUglifyJavascriptMinifier_Tests()
- {
- _nUglifyJavascriptMinifier = GetRequiredService();
- }
-
- [Fact]
- public void Should_Minify_Simple_Code()
- {
- const string source = "var x = 5; var y = 6;";
-
- var minified = _nUglifyJavascriptMinifier.Minify(source);
-
- minified.Length.ShouldBeGreaterThan(0);
- minified.Length.ShouldBeLessThan(source.Length);
- }
- }
-}
diff --git a/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj b/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj
new file mode 100644
index 0000000000..57a7f4ea01
--- /dev/null
+++ b/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj
@@ -0,0 +1,16 @@
+
+
+
+
+
+ netcoreapp3.0
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/AbpMinifyTestModule.cs b/framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/AbpMinifyTestModule.cs
new file mode 100644
index 0000000000..625d06c950
--- /dev/null
+++ b/framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/AbpMinifyTestModule.cs
@@ -0,0 +1,11 @@
+using Volo.Abp.Modularity;
+
+namespace Volo.Abp.Minify
+{
+ [DependsOn(
+ typeof(AbpMinifyModule),
+ typeof(AbpTestBaseModule))]
+ public class AbpMinifyTestModule : AbpModule
+ {
+ }
+}
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/CssMinifier_Tests.cs b/framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/CssMinifier_Tests.cs
new file mode 100644
index 0000000000..c71be3450b
--- /dev/null
+++ b/framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/CssMinifier_Tests.cs
@@ -0,0 +1,28 @@
+using Shouldly;
+using Volo.Abp.Minify.Styles;
+using Xunit;
+
+namespace Volo.Abp.Minify.NUglify
+{
+ public class CssMinifier_Tests : AbpIntegratedTest
+ {
+ private readonly ICssMinifier _cssMinifier;
+
+ public CssMinifier_Tests()
+ {
+ _cssMinifier = GetRequiredService();
+ }
+
+ [Fact]
+ public void Should_Minify_Simple_Code()
+ {
+ const string source = "div { color: #FFF; }";
+
+ var minified = _cssMinifier.Minify(source);
+
+ minified.Length.ShouldBeGreaterThan(0);
+ minified.Length.ShouldBeLessThan(source.Length);
+ }
+ }
+
+}
diff --git a/framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/HtmlMinifier_Tests.cs b/framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/HtmlMinifier_Tests.cs
new file mode 100644
index 0000000000..88da207d0c
--- /dev/null
+++ b/framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/HtmlMinifier_Tests.cs
@@ -0,0 +1,27 @@
+using Shouldly;
+using Volo.Abp.Minify.Html;
+using Xunit;
+
+namespace Volo.Abp.Minify.NUglify
+{
+ public class HtmlMinifier_Tests : AbpIntegratedTest
+ {
+ private readonly IHtmlMinifier _htmlMinifier;
+
+ public HtmlMinifier_Tests()
+ {
+ _htmlMinifier = GetRequiredService();
+ }
+
+ [Fact]
+ public void Should_Minify_Simple_Code()
+ {
+ const string source = "";
+
+ var minified = _htmlMinifier.Minify(source);
+
+ minified.Length.ShouldBeGreaterThan(0);
+ minified.Length.ShouldBeLessThan(source.Length);
+ }
+ }
+}
\ No newline at end of file
diff --git a/framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/JavascriptMinifier_Tests.cs b/framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/JavascriptMinifier_Tests.cs
new file mode 100644
index 0000000000..7ebcd65fc3
--- /dev/null
+++ b/framework/test/Volo.Abp.Minify.Tests/Volo/Abp/Minify/NUglify/JavascriptMinifier_Tests.cs
@@ -0,0 +1,28 @@
+using Shouldly;
+using Volo.Abp.Minify.Scripts;
+using Xunit;
+
+namespace Volo.Abp.Minify.NUglify
+{
+ public class JavascriptMinifier_Tests : AbpIntegratedTest
+ {
+ private readonly IJavascriptMinifier _javascriptMinifier;
+
+ public JavascriptMinifier_Tests()
+ {
+ _javascriptMinifier = GetRequiredService();
+ }
+
+ [Fact]
+ public void Should_Minify_Simple_Code()
+ {
+ const string source = "var x = 5; var y = 6;";
+
+ var minified = _javascriptMinifier.Minify(source);
+
+ minified.Length.ShouldBeGreaterThan(0);
+ minified.Length.ShouldBeLessThan(source.Length);
+ }
+ }
+
+}