Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
marcin mikołajczak 2022-11-03 22:43:20 +01:00
parent 32994bb9c3
commit 9932aeffc5
3 changed files with 51 additions and 2 deletions

View file

@ -11,7 +11,7 @@ defmodule Pleroma.Language.LanguageDetector do
if provider do
provider.missing_dependencies()
else
nil
[]
end
end
@ -28,7 +28,7 @@ defmodule Pleroma.Language.LanguageDetector do
end
end
defp get_provider() do
defp get_provider do
Pleroma.Config.get([__MODULE__, :provider])
end
end

View file

@ -0,0 +1,31 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Language.LanguageDetectorTest do
use Pleroma.Web.ConnCase
alias Pleroma.Language.LanguageDetector
setup do: clear_config([Pleroma.Language.LanguageDetector, :provider], LanguageDetectorMock)
test "it detects text language" do
detected_language = LanguageDetector.detect("Je viens d'atterrir en Tchéquie.")
assert detected_language == "fr"
end
test "it returns nil if text is not long enough" do
detected_language = LanguageDetector.detect("it returns nil")
assert detected_language == nil
end
test "it returns nil if no provider specified" do
clear_config([Pleroma.Language.LanguageDetector, :provider], nil)
detected_language = LanguageDetector.detect("this should also return nil")
assert detected_language == nil
end
end

View file

@ -0,0 +1,18 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule LanguageDetectorMock do
alias Pleroma.Language.LanguageDetector.Provider
@behaviour Provider
@impl Provider
def missing_dependencies, do: []
@impl Provider
def configured?, do: true
@impl Provider
def detect(text), do: "fr"
end