Skip to content

Commit a87ee09

Browse files
Added support and examples for progress #11
1 parent 4150da3 commit a87ee09

17 files changed

+287
-41
lines changed

src/AspNetCore.Utilities.Bootstrap5TagHelpers.Sample/Views/Home/Index.cshtml

Lines changed: 72 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -324,50 +324,50 @@
324324

325325
<table class="table table-striped table-hover">
326326
<thead>
327-
<tr>
328-
<th>Example</th>
329-
<th>Code</th>
330-
</tr>
327+
<tr>
328+
<th>Example</th>
329+
<th>Code</th>
330+
</tr>
331331
</thead>
332332
<tbody>
333-
<tr>
334-
<td>
335-
<modal-toggle Target="testing">
336-
Launch Demo
337-
</modal-toggle>
333+
<tr>
334+
<td>
335+
<modal-toggle Target="testing">
336+
Launch Demo
337+
</modal-toggle>
338338

339-
<modal id="testing" class="im-weird" vertically-centered="true" >
340-
<modal-header Title="Testing Modal Header">
341-
<modal-header-dismiss></modal-header-dismiss>
342-
</modal-header>
343-
<modal-body>
344-
<form-input asp-for="FirstName"></form-input>
345-
</modal-body>
346-
<modal-footer>
347-
<bs-button bs-color="Secondary" dismisses="modal">Close</bs-button>
348-
</modal-footer>
349-
</modal>
350-
</td>
351-
<td>
352-
<code>
353-
&lt;modal-toggle Target=&quot;testing&quot;&gt;
354-
Launch Demo
355-
&lt;/modal-toggle&gt;
339+
<modal id="testing" class="im-weird" vertically-centered="true" >
340+
<modal-header Title="Testing Modal Header">
341+
<modal-header-dismiss></modal-header-dismiss>
342+
</modal-header>
343+
<modal-body>
344+
<form-input asp-for="FirstName"></form-input>
345+
</modal-body>
346+
<modal-footer>
347+
<bs-button bs-color="Secondary" dismisses="modal">Close</bs-button>
348+
</modal-footer>
349+
</modal>
350+
</td>
351+
<td>
352+
<code>
353+
&lt;modal-toggle Target=&quot;testing&quot;&gt;
354+
Launch Demo
355+
&lt;/modal-toggle&gt;
356356

357-
&lt;modal id=&quot;testing&quot;&gt;
358-
&lt;modal-header Title=&quot;Testing Modal Header&quot;&gt;
359-
&lt;modal-header-dismiss&gt;&lt;/modal-header-dismiss&gt;
360-
&lt;/modal-header&gt;
361-
&lt;modal-body&gt;
362-
&lt;form-input asp-for=&quot;FirstName&quot;&gt;&lt;/form-input&gt;
363-
&lt;/modal-body&gt;
364-
&lt;modal-footer&gt;
365-
&lt;button type=&quot;button&quot; class=&quot;btn btn-secondary&quot; data-dismiss=&quot;modal&quot;&gt;Close&lt;/button&gt;
366-
&lt;/modal-footer&gt;
367-
&lt;/modal&gt;
368-
</code>
369-
</td>
370-
</tr>
357+
&lt;modal id=&quot;testing&quot;&gt;
358+
&lt;modal-header Title=&quot;Testing Modal Header&quot;&gt;
359+
&lt;modal-header-dismiss&gt;&lt;/modal-header-dismiss&gt;
360+
&lt;/modal-header&gt;
361+
&lt;modal-body&gt;
362+
&lt;form-input asp-for=&quot;FirstName&quot;&gt;&lt;/form-input&gt;
363+
&lt;/modal-body&gt;
364+
&lt;modal-footer&gt;
365+
&lt;button type=&quot;button&quot; class=&quot;btn btn-secondary&quot; data-dismiss=&quot;modal&quot;&gt;Close&lt;/button&gt;
366+
&lt;/modal-footer&gt;
367+
&lt;/modal&gt;
368+
</code>
369+
</td>
370+
</tr>
371371
<tr>
372372
<td>
373373
<modal-toggle Target="testing-secondary">
@@ -409,6 +409,38 @@
409409
</tbody>
410410
</table>
411411

412+
<h2>Progress</h2>
413+
<table class="table table-striped table-hover">
414+
<thead>
415+
<tr>
416+
<th>Description</th>
417+
<th>Display</th>
418+
</tr>
419+
</thead>
420+
<tbody>
421+
<tr>
422+
<th>Simple Progress</th>
423+
<th><progress progress-value="75" ></progress></th>
424+
</tr>
425+
<tr>
426+
<th>With Background</th>
427+
<th><progress progress-value="75" background-color="BootstrapColor.Danger"></progress></th>
428+
</tr>
429+
<tr>
430+
<th>With Background, Striped</th>
431+
<th><progress progress-value="75" background-color="BootstrapColor.Danger" is-striped="true"></progress></th>
432+
</tr>
433+
<tr>
434+
<th>With Background, Striped, Animated</th>
435+
<th><progress progress-value="75" background-color="BootstrapColor.Danger" is-striped="true" is-animated="true"></progress></th>
436+
</tr>
437+
<tr>
438+
<th>With Background, Striped, Animated, Label</th>
439+
<th><progress progress-value="75" background-color="BootstrapColor.Danger" is-striped="true" is-animated="true" progress-display-label="75%"></progress></th>
440+
</tr>
441+
</tbody>
442+
</table>
443+
412444
<style>
413445
code {
414446
white-space: pre;

src/AspNetCore.Utilities.Bootstrap5TagHelpers.Tests/ButtonTagHelperTests.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ public async Task Sets_Button_Size_If_Not_Normal(ButtonSize size, string expecte
105105
public async Task Throws_Error_If_Invalid_ButtonSize()
106106
{
107107
var error = await Assert.ThrowsAsync<ArgumentOutOfRangeException>(async () => await (new ButtonTagHelper { Size = (ButtonSize)Int16.MaxValue }).Render());
108-
109108
}
110109

111110
[Fact]
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Drawing;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
using Xunit.Abstractions;
8+
9+
namespace ICG.AspNetCore.Utilities.Bootstrap5TagHelpers.Tests;
10+
11+
[UsesVerify]
12+
public class ProgressTagHelperTests : LoggingTagHelperTest
13+
{
14+
public ProgressTagHelperTests(ITestOutputHelper output) : base(output)
15+
{
16+
17+
}
18+
19+
[Theory]
20+
[InlineData(-1)]
21+
[InlineData(101)]
22+
public async Task Throws_Error_If_Invalid_ProgressValue(int value)
23+
{
24+
//Arrange
25+
var helper = new ProgressTagHelper { ProgressValue = value };
26+
27+
//Act/Assert
28+
await Assert.ThrowsAsync<ArgumentOutOfRangeException>(async () => await helper.Render());
29+
}
30+
31+
[Theory]
32+
[InlineData(null)]
33+
[InlineData(BootstrapColor.Info)]
34+
[InlineData(BootstrapColor.Success)]
35+
[InlineData(BootstrapColor.Danger)]
36+
[InlineData(BootstrapColor.Warning)]
37+
public async Task Properly_Sets_BackgroundColor_IfProvided(BootstrapColor? color)
38+
{
39+
var output = await (new ProgressTagHelper() { BackgroundColor = color }).Render();
40+
await VerifyTagHelper(output).UseParameters(color);
41+
}
42+
43+
[Theory]
44+
[InlineData("")]
45+
[InlineData("Test Label")]
46+
public async Task Properly_Adds_AriaLabel_IfProvided(string ariaLabel)
47+
{
48+
var output = await (new ProgressTagHelper() { AriaLabel = ariaLabel }).Render();
49+
await VerifyTagHelper(output).UseParameters(ariaLabel);
50+
}
51+
52+
[Theory]
53+
[InlineData("")]
54+
[InlineData("25%")]
55+
public async Task Properly_Adds_ProgressDisplayLabel_IfProvided(string progressLabel)
56+
{
57+
var output = await (new ProgressTagHelper() { ProgressDisplayLabel = progressLabel }).Render();
58+
await VerifyTagHelper(output).UseParameters(progressLabel);
59+
}
60+
61+
[Theory]
62+
[InlineData(0)]
63+
[InlineData(15)]
64+
public async Task Properly_Adds_ProgressValue(int progressValue)
65+
{
66+
var output = await (new ProgressTagHelper() { ProgressValue = progressValue }).Render();
67+
await VerifyTagHelper(output).UseParameters(progressValue);
68+
}
69+
70+
[Fact]
71+
public async Task Properly_Adds_StripedClass()
72+
{
73+
var output = await (new ProgressTagHelper() { IsStriped = true}).Render();
74+
await VerifyTagHelper(output);
75+
}
76+
77+
[Fact]
78+
public async Task Properly_Adds_AnimatedClass()
79+
{
80+
var output = await (new ProgressTagHelper() { IsAnimated = true }).Render();
81+
await VerifyTagHelper(output);
82+
}
83+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+

2+
<div class="HtmlEncode[[progress]]" role="HtmlEncode[[progressbar]]" aria-valuenow="HtmlEncode[[0]]" aria-valuemin="HtmlEncode[[0]]" aria-valuemax="HtmlEncode[[100]]">
3+
<div class="HtmlEncode[[progress-bar progress-bar-animated]]" style="HtmlEncode[[width: 0%]]"></div>
4+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+

2+
<div class="HtmlEncode[[progress]]" role="HtmlEncode[[progressbar]]" aria-valuenow="HtmlEncode[[0]]" aria-valuemin="HtmlEncode[[0]]" aria-valuemax="HtmlEncode[[100]]">
3+
<div class="HtmlEncode[[progress-bar]]" style="HtmlEncode[[width: 0%]]"></div>
4+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+

2+
<div class="HtmlEncode[[progress]]" role="HtmlEncode[[progressbar]]" aria-label="HtmlEncode[[Test Label]]" aria-valuenow="HtmlEncode[[0]]" aria-valuemin="HtmlEncode[[0]]" aria-valuemax="HtmlEncode[[100]]">
3+
<div class="HtmlEncode[[progress-bar]]" style="HtmlEncode[[width: 0%]]"></div>
4+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+

2+
<div class="HtmlEncode[[progress]]" role="HtmlEncode[[progressbar]]" aria-valuenow="HtmlEncode[[0]]" aria-valuemin="HtmlEncode[[0]]" aria-valuemax="HtmlEncode[[100]]">
3+
<div class="HtmlEncode[[progress-bar]]" style="HtmlEncode[[width: 0%]]"></div>
4+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+

2+
<div class="HtmlEncode[[progress]]" role="HtmlEncode[[progressbar]]" aria-valuenow="HtmlEncode[[0]]" aria-valuemin="HtmlEncode[[0]]" aria-valuemax="HtmlEncode[[100]]">
3+
<div class="HtmlEncode[[progress-bar]]" style="HtmlEncode[[width: 0%]]">HtmlEncode[[25%]]</div>
4+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+

2+
<div class="HtmlEncode[[progress]]" role="HtmlEncode[[progressbar]]" aria-valuenow="HtmlEncode[[0]]" aria-valuemin="HtmlEncode[[0]]" aria-valuemax="HtmlEncode[[100]]">
3+
<div class="HtmlEncode[[progress-bar]]" style="HtmlEncode[[width: 0%]]"></div>
4+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+

2+
<div class="HtmlEncode[[progress]]" role="HtmlEncode[[progressbar]]" aria-valuenow="HtmlEncode[[15]]" aria-valuemin="HtmlEncode[[0]]" aria-valuemax="HtmlEncode[[100]]">
3+
<div class="HtmlEncode[[progress-bar]]" style="HtmlEncode[[width: 15%]]"></div>
4+
</div>

0 commit comments

Comments
 (0)