//===-- clang-doc/HTMLGeneratorTest.cpp -----------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "ClangDocTest.h" #include "Generators.h" #include "Representation.h" #include "config.h" #include "support/Utils.h" #include "clang/Basic/Version.h" #include "llvm/Testing/Support/Error.h" #include "gmock/gmock.h" #include "gtest/gtest.h" using namespace llvm; using namespace testing; using namespace clang; using namespace clang::doc; static const std::string ClangDocVersion = getClangToolFullVersion("clang-doc"); static std::unique_ptr getHTMLGenerator() { auto G = findGeneratorByName("html"); if (!G) return nullptr; return std::move(G.get()); } class HTMLGeneratorTest : public ClangDocContextTest { protected: ClangDocContext getClangDocContext(std::vector UserStylesheets = {}, StringRef RepositoryUrl = "", StringRef RepositoryLinePrefix = "", StringRef Base = "") { ClangDocContext CDCtx{nullptr, "test-project", false, "", "", RepositoryUrl, RepositoryLinePrefix, Base, UserStylesheets, Diags, OutputFormatTy::html, false}; CDCtx.UserStylesheets.insert( CDCtx.UserStylesheets.begin(), "../share/clang/clang-doc-default-stylesheet.css"); CDCtx.JsScripts.emplace_back("index.js"); return CDCtx; } }; TEST_F(HTMLGeneratorTest, createResources) { auto G = getHTMLGenerator(); ASSERT_THAT(G, NotNull()) << "Could not find HTMLGenerator"; ClangDocContext CDCtx = getClangDocContext(); EXPECT_THAT_ERROR(G->createResources(CDCtx), Failed()) << "Empty UserStylesheets or JsScripts should fail!"; }