mirror of
https://github.com/radzenhq/radzen-blazor.git
synced 2026-02-04 05:35:44 +00:00
* Initial commit Update spacing css classes in demos Update spacing css classes in demos Improve Notification layout and styles Fix Notification with custom position in RTL mode Update spacing css classes in demos Add box-sizing: border-box to components Remove bootstrap css from App.razor Fix text-align in tabs demos Rename CSS classes and update markup in RadzenDatePicker Remove bootstrap scss Tabs anchor element should inherit the text color Update margins in typography Remove bootstrap instructions from get started page Remove bootstrap css from demos Update premium themes Add variable fonts Remove legacy color tokens and token maps Remove --rz-form-group-margin-bottom as it is not used Add base color tokens Add Base style values Remove -styles scss map and use and styles maps instead Remove -styles scss map and use and styles maps instead Remove -styles scss map and use and styles maps instead Remove -styles scss map and use and styles maps instead Format button's styles Reset body margin to 0 Splitter icons should use --rz-icon-font-family Add styles for image and svg Replace MaterialIcons font with MaterialSymbols variable font Update RadzenButton's demos Update RadzenBadge's demos Update Colors demo page Update RadzenProgressBars' demos Use Base instead of Secondary button style in Confirm Dialog Update DataGrid Hierarchy demos Unify DataGrid filter buttons Replace light with base button styles Replace secondary with base button style RadzenTheme, RadzenThemeSwitch and ThemeService. Reorder base color variables Add rtl mode animation to ProgressBar Update SpeechToTextButton default button style and animation Add CookieThemeService. Fix base color variable value in software theme Add Software Dark and Humanistic Dark themes Update RadzenThemeSwitch Default base text button should inherit color from its parent element Update ColoPicker background for transparent color preview Add Material Dark theme Material Dark theme is now free Remove ambiguous method name. Update demos configurator Update premium themes Update the services to follow the options pattern for DI registration. Improve RadzenThemeSwitch to use the current theme. Rename ThemeSwitch to AppearanceToggle and add a demo page Update SplitButton's dropdown icon demo Create getting-started.html Update getting-started.html Update getting-started.html Add --rz-grid-group-header-item-color and fix column footer color Fix demos code snippet colors Add changelog and update demo status badges Update Changelog Persist the current theme. Update getting-started.html Rename getting-started.html to md. Render the theme CSS class at RadzenLayout level. Hide the right sidebar by default. Isolate CSS variables in a single rule Revamp the getting started help article. Remove nested README.md. Link getting started instructions. Add Scheduler highlight background color css variable Sidebar border right should be inline-end Inputs should inherit font-family Buttons in code viewer and event console should use base button style Add Standard Dark theme Update Changelog Sidebar border right in themes should be inline-end Render RadzenTheme only when needed. Add cursor pointer to SidebarToggle Fix AppearanceToggle margin Update default theme colors Update standard theme colors Fix filter color in humanistic dark theme Update software dark theme colors Add humanistic dark wcag theme Add software dark wcag theme Add standard dark wcag theme Buttons for add and remove now use base button style Update Get Started styling Update Dark WCAG theme colors Update SideBar transition styles Remove theme name css class Add premium themes code fixed more code fixes * Update Icon demo page content * Fix --rz-grid-filter-buttons-background-color in Standard theme * Remove obsolete fonts * tests fixed --------- Co-authored-by: yordanov <vasil@yordanov.info>
315 lines
11 KiB
C#
315 lines
11 KiB
C#
using Bunit;
|
|
using Radzen.Blazor.Rendering;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Xunit;
|
|
|
|
namespace Radzen.Blazor.Tests
|
|
{
|
|
public class DataListTests
|
|
{
|
|
[Fact]
|
|
public void DataList_Renders_CssClass()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, new[] { 1,2,3}));
|
|
|
|
Assert.Contains(@$"rz-datalist-content", component.Markup);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_Renders_AllowPagingParameter()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
component.SetParametersAndRender(parameters => parameters.Add<bool>(p => p.AllowPaging, true));
|
|
|
|
Assert.Contains(@$"rz-pager-bottom", component.Markup);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_Renders_PagerPositionTopParameter()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
parameters.Add<PagerPosition>(p => p.PagerPosition, PagerPosition.Top);
|
|
});
|
|
|
|
Assert.Contains(@$"rz-pager", component.Markup);
|
|
Assert.DoesNotContain(@$"rz-pager-bottom", component.Markup);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_Renders_PagerPositionTopAndBottomParameter()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
parameters.Add<PagerPosition>(p => p.PagerPosition, PagerPosition.TopAndBottom);
|
|
});
|
|
|
|
Assert.Contains(@$"rz-pager", component.Markup);
|
|
Assert.Contains(@$"rz-pager-bottom", component.Markup);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_Renders_PagerDensityDefault()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
component.SetParametersAndRender(parameters =>
|
|
{
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
parameters.Add<PagerPosition>(p => p.PagerPosition, PagerPosition.Top);
|
|
parameters.Add<Density>(p => p.Density, Density.Default);
|
|
});
|
|
|
|
Assert.DoesNotContain(@$"rz-density-compact", component.Markup);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_Renders_PagerDensityCompact()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
component.SetParametersAndRender(parameters =>
|
|
{
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
parameters.Add<PagerPosition>(p => p.PagerPosition, PagerPosition.Top);
|
|
parameters.Add<Density>(p => p.Density, Density.Compact);
|
|
});
|
|
|
|
Assert.Contains(@$"rz-density-compact", component.Markup);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_Renders_WrapItemsParameter()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, new[] { 1, 2, 3 }));
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<bool>(p => p.WrapItems, true);
|
|
});
|
|
|
|
Assert.Contains(@$"rz-g", component.Markup);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_Raises_LoadDataEventOnNextPageClick()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
var raised = false;
|
|
LoadDataArgs newArgs = null;
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
parameters.Add<LoadDataArgs>(p => p.LoadData, args => { raised = true; newArgs = args; });
|
|
});
|
|
|
|
component.Find(".rz-pager-next").Click();
|
|
|
|
Assert.True(raised);
|
|
Assert.True(newArgs.Skip == 10);
|
|
Assert.True(newArgs.Top == 10);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_Raises_LoadDataEventOnLastPageClick()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
var raised = false;
|
|
LoadDataArgs newArgs = null;
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
parameters.Add<LoadDataArgs>(p => p.LoadData, args => { raised = true; newArgs = args; });
|
|
});
|
|
|
|
component.Find(".rz-pager-last").Click();
|
|
|
|
Assert.True(raised);
|
|
Assert.True(newArgs.Skip == 90);
|
|
Assert.True(newArgs.Top == 10);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_Raises_LoadDataEventOnPrevPageClick()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
var raised = false;
|
|
LoadDataArgs newArgs = null;
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
parameters.Add<LoadDataArgs>(p => p.LoadData, args => { raised = true; newArgs = args; });
|
|
});
|
|
|
|
component.Find(".rz-pager-next").Click();
|
|
component.Find(".rz-pager-prev").Click();
|
|
|
|
Assert.True(raised);
|
|
Assert.True(newArgs.Skip == 0);
|
|
Assert.True(newArgs.Top == 10);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_Raises_LoadDataEventOnFirstPageClick()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
var raised = false;
|
|
LoadDataArgs newArgs = null;
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
parameters.Add<LoadDataArgs>(p => p.LoadData, args => { raised = true; newArgs = args; });
|
|
});
|
|
|
|
component.Find(".rz-pager-next").Click();
|
|
component.Find(".rz-pager-first").Click();
|
|
|
|
Assert.True(raised);
|
|
Assert.True(newArgs.Skip == 0);
|
|
Assert.True(newArgs.Top == 10);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_NotRaises_LoadDataEventOnFirstPageClickWhenOnFirstPage()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
var raised = false;
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
parameters.Add<LoadDataArgs>(p => p.LoadData, args => { raised = true; });
|
|
});
|
|
|
|
component.Find(".rz-pager-first").Click();
|
|
|
|
Assert.False(raised);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_NotRaises_LoadDataEventOnPrevPageClickWhenOnFirstPage()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
var raised = false;
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
parameters.Add<LoadDataArgs>(p => p.LoadData, args => { raised = true; });
|
|
});
|
|
|
|
component.Find(".rz-pager-prev").Click();
|
|
|
|
Assert.False(raised);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_NotRaises_LoadDataEventOnLastPageClickWhenOnLastPage()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
var raised = false;
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
});
|
|
|
|
component.Find(".rz-pager-last").Click();
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<LoadDataArgs>(p => p.LoadData, args => { raised = true; });
|
|
});
|
|
|
|
component.Find(".rz-pager-last").Click();
|
|
|
|
Assert.False(raised);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_NotRaises_LoadDataEventOnNextPageClickWhenOnLastPage()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
var raised = false;
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
});
|
|
|
|
component.Find(".rz-pager-last").Click();
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<LoadDataArgs>(p => p.LoadData, args => { raised = true; });
|
|
});
|
|
|
|
component.Find(".rz-pager-next").Click();
|
|
|
|
Assert.False(raised);
|
|
}
|
|
|
|
[Fact]
|
|
public void DataList_Respects_PageSizeParameter()
|
|
{
|
|
using var ctx = new TestContext();
|
|
|
|
var component = ctx.RenderComponent<RadzenDataList<int>>(parameterBuilder => parameterBuilder.Add<IEnumerable<int>>(p => p.Data, Enumerable.Range(0, 100)));
|
|
|
|
var raised = false;
|
|
LoadDataArgs newArgs = null;
|
|
|
|
component.SetParametersAndRender(parameters => {
|
|
parameters.Add<bool>(p => p.AllowPaging, true);
|
|
parameters.Add<int>(p => p.PageSize, 20);
|
|
parameters.Add<LoadDataArgs>(p => p.LoadData, args => { raised = true; newArgs = args; });
|
|
});
|
|
|
|
component.Find(".rz-pager-next").Click();
|
|
|
|
Assert.True(raised);
|
|
Assert.True(newArgs.Skip == 20);
|
|
Assert.True(newArgs.Top == 20);
|
|
}
|
|
}
|
|
}
|