tmRoot par animation test

This commit is contained in:
Kamil Kerimov
2023-08-15 11:03:20 +03:00
parent b24c771a36
commit e3d5921c83
4 changed files with 338 additions and 277 deletions

Binary file not shown.

View File

@ -10,76 +10,127 @@
#include "../../DesktopEditor/common/Directory.h"
#include "../../OfficeUtils/src/OfficeUtils.h"
#define CH_DIR(x) FILE_SEPARATOR_STR + _T(x)
class TestEnvironment : public ::testing::Environment {
public:
~TestEnvironment() override {}
void SetUp() override
{
Init();
mInputOdf = ReadOdfDocument();
mConverionContext = Convert(mInputOdf);
}
void TearDown() override
{ }
static boost::shared_ptr<cpdoccore::oox::pptx_conversion_context> GetConversionContext()
{
return mConverionContext;
}
static const cpdoccore::oox::pptx_animation_context& GetAnimationContext()
{
return mConverionContext->get_slide_context().get_animation_context();
}
private:
void Init()
{
std::wstring exampleFilename = L"enter_exit";
std::wstring rootDir = NSFile::GetProcessDirectory() + CH_DIR("..");
std::wstring sExampleFilesDirectory = rootDir + CH_DIR("ExampleFiles");
sFrom = sExampleFilesDirectory + FILE_SEPARATOR_STR + exampleFilename + L".odp";
sTo = sExampleFilesDirectory + FILE_SEPARATOR_STR + exampleFilename + L".pptx";
sTemp = rootDir + CH_DIR("tmp");
sTempUnpackedOdf = sTemp + CH_DIR("odf_unpacked");
sTempUnpackedOox = sTemp + CH_DIR("oox_unpacked");
NSDirectory::CreateDirectory(sTemp);
NSDirectory::CreateDirectory(sTempUnpackedOdf);
NSDirectory::CreateDirectory(sTempUnpackedOox);
mOutputPptx = boost::make_shared<cpdoccore::oox::package::pptx_document>();
}
boost::shared_ptr<cpdoccore::odf_reader::odf_document> ReadOdfDocument()
{
COfficeUtils oCOfficeUtils(NULL);
if (S_OK == oCOfficeUtils.ExtractToDirectory(sFrom, sTempUnpackedOdf, NULL, 0))
return boost::make_shared<cpdoccore::odf_reader::odf_document>(sTempUnpackedOdf, sTemp, L"");
else
return nullptr;
}
boost::shared_ptr<cpdoccore::oox::pptx_conversion_context> Convert(boost::shared_ptr<cpdoccore::odf_reader::odf_document> inputOdf)
{
boost::shared_ptr<cpdoccore::oox::pptx_conversion_context> conversionContext = boost::make_shared<cpdoccore::oox::pptx_conversion_context>(mInputOdf.get());
conversionContext->set_output_document(mOutputPptx.get());
conversionContext->set_font_directory(L"");
mInputOdf->pptx_convert(*conversionContext);
return conversionContext;
}
private:
std::wstring sFrom;
std::wstring sTo;
std::wstring sTemp;
std::wstring sTempUnpackedOdf;
std::wstring sTempUnpackedOox;
static boost::shared_ptr<cpdoccore::oox::package::pptx_document> mOutputPptx;
static boost::shared_ptr<cpdoccore::oox::pptx_conversion_context> mConverionContext;
static boost::shared_ptr<cpdoccore::odf_reader::odf_document> mInputOdf;
};
boost::shared_ptr<cpdoccore::oox::package::pptx_document> TestEnvironment::mOutputPptx;
boost::shared_ptr<cpdoccore::oox::pptx_conversion_context> TestEnvironment::mConverionContext;
boost::shared_ptr<cpdoccore::odf_reader::odf_document> TestEnvironment::mInputOdf;
class ODP2OOX_EnterExitAnimationTest : public testing::Test
{
public:
void SetUp() override
{
Init();
mAnimationContext = &TestEnvironment::GetAnimationContext();
}
void TearDown() override
{
}
public:
const cpdoccore::oox::pptx_animation_context* mAnimationContext;
void Init()
{
sTmpDirectory = NSFile::GetProcessDirectory() + FILE_SEPARATOR_STR + _T("../tmp");
sExampleFilesDirectory = NSFile::GetProcessDirectory() + FILE_SEPARATOR_STR + _T("../ExampleFiles");
sExampleFile = sExampleFilesDirectory + FILE_SEPARATOR_STR + _T("enter_exit.odp");
NSDirectory::CreateDirectory(sTmpDirectory);
mOdfDocument = ReadOdfDocument();
mContext = Convert(mOdfDocument);
}
boost::shared_ptr<cpdoccore::odf_reader::odf_document> ReadOdfDocument()
{
std::wstring sTempUnpackedOdf = sTmpDirectory + FILE_SEPARATOR_STR + _T("odf_unpacked");
std::wstring sTempUnpackedOox = sTmpDirectory + FILE_SEPARATOR_STR + _T("oox_unpacked");
NSDirectory::CreateDirectory(sTempUnpackedOdf);
NSDirectory::CreateDirectory(sTempUnpackedOox);
COfficeUtils oCOfficeUtils(NULL);
if (S_OK == oCOfficeUtils.ExtractToDirectory(sExampleFile, sTempUnpackedOdf, NULL, 0))
{
return boost::make_shared<cpdoccore::odf_reader::odf_document>(sTempUnpackedOdf, sTmpDirectory, L"");
}
else
{
return nullptr;
}
}
boost::shared_ptr<cpdoccore::oox::pptx_conversion_context> Convert(boost::shared_ptr<cpdoccore::odf_reader::odf_document> inputOdf)
{
mOutputPptx = boost::make_shared<cpdoccore::oox::package::pptx_document>();
boost::shared_ptr<cpdoccore::oox::pptx_conversion_context> context = boost::make_shared<cpdoccore::oox::pptx_conversion_context>(inputOdf.get());
context->set_output_document(mOutputPptx.get());
context->set_font_directory(L"");
inputOdf->pptx_convert(*(context.get()));
return context;
}
private:
std::wstring sTmpDirectory;
std::wstring sExampleFilesDirectory;
std::wstring sExampleFile;
boost::shared_ptr<cpdoccore::oox::package::pptx_document> mOutputPptx;
boost::shared_ptr<cpdoccore::oox::pptx_conversion_context> mContext;
boost::shared_ptr<cpdoccore::odf_reader::odf_document> mOdfDocument;
};
TEST_F(ODP2OOX_EnterExitAnimationTest, qwe)
TEST_F(ODP2OOX_EnterExitAnimationTest, timing_root_par)
{
using namespace cpdoccore::oox;
const pptx_animation_context::Impl::_par_animation_ptr& root = mAnimationContext->get_root_par_animation();
EXPECT_EQ(1, 1);
const std::wstring expectedNodeType = L"tmRoot";
EXPECT_EQ(root->Delay.value(), expectedNodeType);
}
TEST_F(ODP2OOX_EnterExitAnimationTest, asd)
{
EXPECT_EQ(1, 2);
}
int main(int argc, char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
::testing::AddGlobalTestEnvironment(new TestEnvironment);
return RUN_ALL_TESTS();
}