70 lines
2.5 KiB
C#
70 lines
2.5 KiB
C#
using System.Linq;
|
|
using Paca.Browser.Tabs;
|
|
using Xunit;
|
|
|
|
namespace Paca.Tests.Browser;
|
|
|
|
public class ChromeOmniboxSiteSearchTests
|
|
{
|
|
[Theory]
|
|
[InlineData("@tabs youtube", SiteSearchScope.Tabs, "youtube")]
|
|
[InlineData("@탭 네이버", SiteSearchScope.Tabs, "네이버")]
|
|
[InlineData("@history github", SiteSearchScope.History, "github")]
|
|
[InlineData("@기록 flutter", SiteSearchScope.History, "flutter")]
|
|
[InlineData("@bookmarks 개발", SiteSearchScope.Bookmarks, "개발")]
|
|
[InlineData("@북마크 paca", SiteSearchScope.Bookmarks, "paca")]
|
|
[InlineData("@즐겨찾기 news", SiteSearchScope.Bookmarks, "news")]
|
|
public void Parse_Recognizes_Valid_SiteSearch_Scopes(string input, SiteSearchScope expectedScope, string expectedFilter)
|
|
{
|
|
var result = OmniboxSiteSearchEvaluator.Parse(input);
|
|
Assert.NotNull(result);
|
|
Assert.Equal(expectedScope, result.Scope);
|
|
Assert.Equal(expectedFilter, result.FilterText);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("@tabs", SiteSearchScope.Tabs, "")]
|
|
[InlineData("@history", SiteSearchScope.History, "")]
|
|
[InlineData("@bookmarks", SiteSearchScope.Bookmarks, "")]
|
|
public void Parse_Handles_Empty_Filter(string input, SiteSearchScope expectedScope, string expectedFilter)
|
|
{
|
|
var result = OmniboxSiteSearchEvaluator.Parse(input);
|
|
Assert.NotNull(result);
|
|
Assert.Equal(expectedScope, result.Scope);
|
|
Assert.Equal(expectedFilter, result.FilterText);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("hello world")]
|
|
[InlineData("https://example.com")]
|
|
[InlineData("@unknown something")]
|
|
[InlineData("")]
|
|
[InlineData(null)]
|
|
public void Parse_Returns_Null_For_Non_SiteSearch_Input(string? input)
|
|
{
|
|
var result = OmniboxSiteSearchEvaluator.Parse(input);
|
|
Assert.Null(result);
|
|
}
|
|
|
|
[Fact]
|
|
public void Scopes_Contain_Proper_Glyphs_And_Descriptions()
|
|
{
|
|
Assert.NotEmpty(OmniboxSiteSearchEvaluator.Scopes);
|
|
Assert.All(OmniboxSiteSearchEvaluator.Scopes, s =>
|
|
{
|
|
Assert.StartsWith("@", s.Keyword);
|
|
Assert.NotEmpty(s.DisplayTitle);
|
|
Assert.NotEmpty(s.Description);
|
|
Assert.NotEmpty(s.Glyph);
|
|
});
|
|
}
|
|
|
|
[Fact]
|
|
public void MainWindow_Integrates_OmniboxSiteSearch()
|
|
{
|
|
var csPath = Paca.Tests.Infrastructure.SourceTree.AppPath("MainWindow.xaml.cs");
|
|
Assert.True(System.IO.File.Exists(csPath));
|
|
var code = System.IO.File.ReadAllText(csPath);
|
|
Assert.Contains("OmniboxSiteSearchEvaluator.Parse", code);
|
|
}
|
|
}
|