/*
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
 */

#include <catch2/catch_all.hpp>
#include "Host/SystemFontResolver.hpp"
#include "Base/Logger.hpp"
#include <filesystem>

using namespace OpenVulkano;

TEST_CASE("Search system fonts")
{ 
    Logger::SetupLogger("", "tests.log");

	std::array<std::string, 4> fontFiles;
	fontFiles.fill("/usr/share/fonts/truetype/ubuntu/");
	fontFiles[0] += "Ubuntu-R.ttf";
	fontFiles[1] += "Ubuntu[wdth,wght].ttf";
	fontFiles[2] += "UbuntuMono-BI.ttf";
	fontFiles[3] += "UbuntuMono-Italic[wght].ttf";
	
    // assume these fonts are present since they are default
	std::string path = SystemFontResolver::GetSystemFontPath("Ubuntu Regular");
	REQUIRE((path == fontFiles[0] || path == fontFiles[1]));

	path = SystemFontResolver::GetSystemFontPath("ubuntu regular");
	REQUIRE((path == fontFiles[0] || path == fontFiles[1]));

	path = SystemFontResolver::GetSystemFontPath("Ubuntu Mono Bold Italic");
	REQUIRE((path == fontFiles[2] || path == fontFiles[3]));

	path = SystemFontResolver::GetSystemFontPath("ubuntu mono bold italic");
	REQUIRE((path == fontFiles[2] || path == fontFiles[3]));

	path = SystemFontResolver::GetSystemFontPath("NON-EXISTING Font");
	REQUIRE(path.empty());
}
