diff --git a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo/Abp/Ui/Navigation/AbpUiNavigationTestModule.cs b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo/Abp/Ui/Navigation/AbpUiNavigationTestModule.cs index 35b368cc1b..8d1cde2336 100644 --- a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo/Abp/Ui/Navigation/AbpUiNavigationTestModule.cs +++ b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo/Abp/Ui/Navigation/AbpUiNavigationTestModule.cs @@ -15,6 +15,9 @@ namespace Volo.Abp.UI.Navigation { options.MenuContributors.Add(new MenuManager_Tests.TestMenuContributor1()); options.MenuContributors.Add(new MenuManager_Tests.TestMenuContributor2()); + options.MenuContributors.Add(new MenuManager_Tests.TestMenuContributor3()); + + options.MainMenuNames.Add(MenuManager_Tests.TestMenuContributor3.MenuName); }); } } diff --git a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo/Abp/Ui/Navigation/MenuManager_Tests.cs b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo/Abp/Ui/Navigation/MenuManager_Tests.cs index d641969f9a..ab68f38a06 100644 --- a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo/Abp/Ui/Navigation/MenuManager_Tests.cs +++ b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo/Abp/Ui/Navigation/MenuManager_Tests.cs @@ -56,6 +56,19 @@ namespace Volo.Abp.UI.Navigation // Administration.SubMenu1.1 and Administration.SubMenu1.2 are removed because of don't have permissions. } + [Fact] + public async Task GetMainMenuAsync_ShouldMergeMultipleMenus() + { + var mainMenu = await _menuManager.GetMainMenuAsync(); + + mainMenu.Name.ShouldBe(StandardMenus.Main); + + mainMenu.Items.Count.ShouldBe(3); + + mainMenu.Items.ShouldContain(x => x.Name == "Products"); + mainMenu.Items.ShouldContain(x => x.Name == "Dashboard"); + } + /* Adds menu items: * - Administration * - User Management @@ -110,5 +123,31 @@ namespace Volo.Abp.UI.Navigation return Task.CompletedTask; } } + + /* Adds menu items: + * - Products + * - AspNetZero + * - ABP + */ + public class TestMenuContributor3 : IMenuContributor + { + public const string MenuName = "MenuThree"; + public Task ConfigureMenuAsync(MenuConfigurationContext context) + { + if (context.Menu.Name != MenuName) + { + return Task.CompletedTask; + } + + var products = new ApplicationMenuItem("Products", "Products", "/products"); + context.Menu.Items.Add(products); + + products.AddItem(new ApplicationMenuItem("AspNetZero", "AspNetZero", url: "/products/aspnetzero")); + + products.AddItem(new ApplicationMenuItem("ABP", "ABP", url: "/products/abp")); + + return Task.CompletedTask; + } + } } }