mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
- ShellTopology to be returned from ExtensionsManager. It contains types from active extensions.
- Modifying some unit tests accordingly. --HG-- branch : dev
This commit is contained in:
@@ -77,7 +77,7 @@ namespace Orchard.Tests.Environment {
|
||||
return Enumerable.Empty<ExtensionEntry>();
|
||||
}
|
||||
|
||||
public IEnumerable<Type> GetExtensionsTopology() {
|
||||
public ShellTopology GetExtensionsTopology() {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
|
@@ -178,14 +178,14 @@ features:
|
||||
public void ExtensionManagerShouldReturnTopology() {
|
||||
var topology = _manager.GetExtensionsTopology();
|
||||
|
||||
Assert.That(topology.Count(), Is.Not.EqualTo(0));
|
||||
Assert.That(topology.Types.Count(), Is.Not.EqualTo(0));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ExtensionManagerTopologyShouldContainNonAbstractClasses() {
|
||||
var topology = _manager.GetExtensionsTopology();
|
||||
|
||||
foreach (var type in topology) {
|
||||
foreach (var type in topology.Types) {
|
||||
Assert.That(type.IsClass);
|
||||
Assert.That(!type.IsAbstract);
|
||||
}
|
||||
|
@@ -54,7 +54,7 @@ namespace Orchard.Tests.Mvc.Routes {
|
||||
};
|
||||
}
|
||||
|
||||
public IEnumerable<Type> GetExtensionsTopology() {
|
||||
public ShellTopology GetExtensionsTopology() {
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
|
@@ -31,11 +31,11 @@ namespace Orchard.Environment {
|
||||
}
|
||||
|
||||
public IEnumerable<Type> GetModuleTypes() {
|
||||
return _extensionManager.GetExtensionsTopology().Where(t => typeof(IModule).IsAssignableFrom(t));
|
||||
return _extensionManager.GetExtensionsTopology().Types.Where(t => typeof(IModule).IsAssignableFrom(t));
|
||||
}
|
||||
|
||||
public IEnumerable<Type> GetDependencyTypes() {
|
||||
return _extensionManager.GetExtensionsTopology().Where(t => typeof(IDependency).IsAssignableFrom(t));
|
||||
return _extensionManager.GetExtensionsTopology().Types.Where(t => typeof(IDependency).IsAssignableFrom(t));
|
||||
}
|
||||
|
||||
public IEnumerable<RecordDescriptor> GetRecordDescriptors() {
|
||||
|
@@ -101,10 +101,10 @@ namespace Orchard.Extensions {
|
||||
return _activeExtensions;
|
||||
}
|
||||
|
||||
public IEnumerable<Type> GetExtensionsTopology() {
|
||||
public ShellTopology GetExtensionsTopology() {
|
||||
var types = ActiveExtensions().SelectMany(x => x.ExportedTypes);
|
||||
types = types.Concat(typeof(IOrchardHost).Assembly.GetExportedTypes());
|
||||
return types.Where(t => t.IsClass && !t.IsAbstract);
|
||||
return new ShellTopology { Types = types.Where(t => t.IsClass && !t.IsAbstract) };
|
||||
}
|
||||
|
||||
public void InstallExtension(string extensionType, HttpPostedFileBase extensionBundle) {
|
||||
|
@@ -1,12 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Web;
|
||||
|
||||
namespace Orchard.Extensions {
|
||||
public interface IExtensionManager {
|
||||
IEnumerable<ExtensionDescriptor> AvailableExtensions();
|
||||
IEnumerable<ExtensionEntry> ActiveExtensions();
|
||||
IEnumerable<Type> GetExtensionsTopology();
|
||||
ShellTopology GetExtensionsTopology();
|
||||
void InstallExtension(string extensionType, HttpPostedFileBase extensionBundle);
|
||||
void UninstallExtension(string extensionType, string extensionName);
|
||||
}
|
||||
|
8
src/Orchard/Extensions/ShellTopology.cs
Normal file
8
src/Orchard/Extensions/ShellTopology.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Orchard.Extensions {
|
||||
public class ShellTopology {
|
||||
public IEnumerable<Type> Types { get; set; }
|
||||
}
|
||||
}
|
@@ -176,6 +176,7 @@
|
||||
<Compile Include="Extensions\FeatureDescriptor.cs" />
|
||||
<Compile Include="Extensions\Loaders\AreaExtensionLoader.cs" />
|
||||
<Compile Include="Extensions\Records\ExtensionRecord.cs" />
|
||||
<Compile Include="Extensions\ShellTopology.cs" />
|
||||
<Compile Include="Mvc\AntiForgery\ValidateAntiForgeryTokenOrchardAttribute.cs" />
|
||||
<Compile Include="Mvc\FollowReturnUrl\FollowReturnUrlFilter.cs" />
|
||||
<Compile Include="Mvc\Html\FileRegistrationContextExtensions.cs" />
|
||||
|
Reference in New Issue
Block a user