Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/Core/Components/Search/FluentSearch.razor.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ο»Ώfluent-search[readonly]::part(clear-button),
fluent-search[disabled]::part(clear-button) {
pointer-events: none;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" additional-attribute-name="additional-attribute-value" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="xxx" appearance="filled" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search autofocus="" id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

<fluent-search id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx">
<div>Child content</div>
</fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search list="datalist-id" id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="xxx" disabled="" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id=" " appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search maxlength="10" id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search minlength="5" id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="xxx" name="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search pattern="[A-Za-z]{3}" id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search placeholder="Enter text here" id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search readonly="" id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="xxx" required="" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search size="10" id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search spellcheck="" id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="xxx" value="" current-value="" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="xxx" value=" " current-value=" " appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

<fluent-search id="xxx" value="some-value" current-value="some-value" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

<label for="xxx" class="fluent-input-label" b-hum22yrq17="">With a label
</label>
<fluent-search id="xxx" appearance="outline" blazor:onchange="1" blazor:oninput="2" blazor:elementreference="xxx"></fluent-search>
278 changes: 278 additions & 0 deletions tests/Core/Search/FluentSearchTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,278 @@
using Bunit;
using Microsoft.Extensions.DependencyInjection;
using Xunit;

namespace Microsoft.FluentUI.AspNetCore.Components.Tests.Search;

public class FluentSearchTests : TestContext
{
public FluentSearchTests()
{
JSInterop.Mode = JSRuntimeMode.Loose;
Services.AddSingleton(LibraryConfiguration.ForUnitTests);
}


[Fact]
public void FluentSearch_Default()
{
//Arrange
var cut = RenderComponent<FluentSearch>();

//Act

//Assert
cut.Verify();
}

[Fact]
public void FluentSearch_WithLabel()
{
//Arrange
string label = "With a label";
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(s => s.Label, label);
});

//Act

//Assert
cut.Verify();
}

[Theory]
[InlineData(FluentInputAppearance.Outline)]
[InlineData(FluentInputAppearance.Filled)]
public void FluentSearch_AppearanceAttribute(FluentInputAppearance appearance)
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Appearance, appearance);
});

// Assert
cut.Verify(suffix: appearance.ToString());
}

[Fact]
public void FluentSearch_MaxLengthAttribute()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Maxlength, 10);
});

// Assert
cut.Verify();
}

[Fact]
public void FluentSearch_MinLengthAttribute()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Minlength, 5);
});

// Assert
cut.Verify();
}

[Fact]
public void FluentSearch_PatternAttribute()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Pattern, "[A-Za-z]{3}");
});

// Assert
cut.Verify();
}

[Fact]
public void FluentSearch_SizeAttribute()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Size, 10);
});

// Assert
cut.Verify();
}

[Fact]
public void FluentSearch_SpellcheckAttribute()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Spellcheck, true);
});

// Assert
cut.Verify();
}


[Fact]
public void FluentSearch_DataListAttribute()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.DataList, "datalist-id");
});

// Assert
cut.Verify();
}

[Fact]
public void FluentSearch_ChildContent()
{
// Arrange & Act

var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.AddChildContent("<div>Child content</div>");
});

// Assert
cut.Verify();
}

[Theory]
[InlineData("id-value")]
[InlineData(null)]
[InlineData("")]
[InlineData(" ")]
public void FluentSearch_IdAttribute(string id)
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Id, id);
});

// Assert
cut.Verify(suffix: id);
}

[Theory]
[InlineData("some-value")]
[InlineData(null)]
[InlineData("")]
[InlineData(" ")]
public void FluentSearch_ValueAttribute(string value)
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Value, value);
});

// Assert
cut.Verify(suffix: value);
}

[Fact]
public void FluentSearch_RequiredAttribute()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Required, true);
});

// Assert
cut.Verify();
}

[Fact]
public void FluentSearch_DisabledAttribute()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Disabled, true);
});

// Assert
cut.Verify();
}

[Fact]
public void FluentSearch_ReadOnlyAttribute()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.ReadOnly, true);
});

// Assert
cut.Verify();
}

[Fact]
public void FluentSearch_AutoFocusAttribute()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Autofocus, true);
});

// Assert
cut.Verify();
}

[Fact]
public void FluentSearch_PlaceholderAttribute()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Placeholder, "Enter text here");
});

// Assert
cut.Verify();
}

[Fact]
public void FluentSearch_NameAttribute()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.Add(p => p.Name, "name");
});

// Assert
cut.Verify();
}

[Fact]
public void FluentSearch_AdditionalAttributes()
{
// Arrange & Act
var cut = RenderComponent<FluentSearch>(parameters =>
{
parameters.AddUnmatched("additional-attribute-name", "additional-attribute-value");
});

// Assert
cut.Verify();
}

}

Loading
Loading