Merge remote-tracking branch 'origin/fix/odf-tests' into develop

This commit is contained in:
Elena.Subbotina
2024-02-06 11:00:28 +03:00
6 changed files with 68 additions and 43 deletions

View File

@ -461,6 +461,7 @@ const std::vector<std::wstring>& pptx_conversion_context::get_page_names() const
{
create_new_slide(pageName);
get_slide_context().start_slide();//pageName, pageStyleName);
get_slide_context().get_animation_context().clear();
current_master_page_name_ = pageMasterName;
current_layout_page_name_ = pageLayoutName;

View File

@ -207,7 +207,6 @@ void draw_page::pptx_convert(oox::pptx_conversion_context & Context)
}
Context.end_page();
Context.get_slide_context().get_animation_context().clear();
if (presentation_notes_)
{

View File

@ -104,36 +104,40 @@ const cpdoccore::oox::pptx_animation_context::Impl::_animation_element_array& OD
return actions;
}
TEST_F(ODP2OOX_AnimationAudioTest, r_embed_id)
TEST_F(ODP2OOX_AnimationAudioTest, set)
{
using namespace cpdoccore::oox;
const auto& mainArray = GetMainSequenceArray();
ASSERT_GE(mainArray.size(), 1);
const auto& actions = GetInnermostPar(mainArray[0])->AnimationActionArray;
ASSERT_EQ(actions.size(), 4);
const auto audio = dynamic_cast<pptx_animation_context::Impl::_audio*>(actions[3].get()); ;
ASSERT_NE(audio, nullptr);
const std::wstring rIdExp = L"aId1";
EXPECT_EQ(audio->RId.value(), rIdExp);
ASSERT_EQ(actions.size(), 3);
const auto set = dynamic_cast<pptx_animation_context::Impl::_set*>(actions[0].get());
ASSERT_NE(set, nullptr);
}
TEST_F(ODP2OOX_AnimationAudioTest, name)
TEST_F(ODP2OOX_AnimationAudioTest, anim_1)
{
using namespace cpdoccore::oox;
const auto& mainArray = GetMainSequenceArray();
ASSERT_GE(mainArray.size(), 1);
const auto& actions = GetInnermostPar(mainArray[0])->AnimationActionArray;
ASSERT_EQ(actions.size(), 4);
const auto audio = dynamic_cast<pptx_animation_context::Impl::_audio*>(actions[3].get()); ;
ASSERT_NE(audio, nullptr);
ASSERT_EQ(actions.size(), 3);
const auto anim = dynamic_cast<pptx_animation_context::Impl::_anim*>(actions[1].get());
ASSERT_NE(anim, nullptr);
}
const std::wstring nameExp = L"apert.wav";
TEST_F(ODP2OOX_AnimationAudioTest, anim_2)
{
using namespace cpdoccore::oox;
EXPECT_EQ(audio->Name.value(), nameExp);
const auto& mainArray = GetMainSequenceArray();
ASSERT_GE(mainArray.size(), 1);
const auto& actions = GetInnermostPar(mainArray[0])->AnimationActionArray;
ASSERT_EQ(actions.size(), 3);
const auto anim = dynamic_cast<pptx_animation_context::Impl::_anim*>(actions[2].get());
ASSERT_NE(anim, nullptr);
}
//////////////////////////////////////////////////////////////////////////

View File

@ -191,7 +191,10 @@ const cpdoccore::odf_writer::anim_par* OOX2ODP_AnimationTest::GetInnerPar(const
if (!par)
return nullptr;
const anim_par* inner_par = dynamic_cast<anim_par*>(par->anim_par_.get());
if (par->anim_par_.size() == 0)
return nullptr;
const anim_par* inner_par = dynamic_cast<anim_par*>(par->anim_par_[0].get());
if (!inner_par)
return nullptr;
@ -208,9 +211,9 @@ const cpdoccore::odf_writer::anim_par* OOX2ODP_AnimationTest::GetInnermostPar(co
const anim_par* innermost = GetInnerPar(par);
while (innermost->anim_par_)
while (innermost->anim_par_.size())
{
innermost = dynamic_cast<anim_par*>(innermost->anim_par_.get());
innermost = dynamic_cast<anim_par*>(innermost->anim_par_[0].get());
if (!innermost)
return nullptr;
}

View File

@ -432,8 +432,8 @@ TEST_F(ODP2OOX_EntranceAnimationTest, entrance_fly_in_action_animate_1_key_point
const pptx_animation_context::Impl::_anim* animate1 = dynamic_cast<pptx_animation_context::Impl::_anim*>(actions[1].get());
std::vector<pptx_animation_context::Impl::_anim::_keypoint> keypointsExp;
keypointsExp.push_back(pptx_animation_context::Impl::_anim::_keypoint(0, L"#ppt_x", boost::none));
keypointsExp.push_back(pptx_animation_context::Impl::_anim::_keypoint(100000, L"#ppt_x", boost::none));
keypointsExp.push_back(pptx_animation_context::Impl::_anim::_keypoint(0, L"ppt_x", boost::none));
keypointsExp.push_back(pptx_animation_context::Impl::_anim::_keypoint(100000, L"ppt_x", boost::none));
EXPECT_EQ(animate1->KeypointArray->size(), keypointsExp.size());
for (size_t i = 0; i < animate1->KeypointArray->size(); i++)
@ -513,8 +513,8 @@ TEST_F(ODP2OOX_EntranceAnimationTest, entrance_fly_in_action_animate_2_key_point
const pptx_animation_context::Impl::_anim* animate2 = dynamic_cast<pptx_animation_context::Impl::_anim*>(actions[2].get());
std::vector<pptx_animation_context::Impl::_anim::_keypoint> keypointsExp;
keypointsExp.push_back(pptx_animation_context::Impl::_anim::_keypoint(0, L"1+#ppt_h/2", boost::none));
keypointsExp.push_back(pptx_animation_context::Impl::_anim::_keypoint(100000, L"#ppt_y", boost::none));
keypointsExp.push_back(pptx_animation_context::Impl::_anim::_keypoint(0, L"1+ppt_h/2", boost::none));
keypointsExp.push_back(pptx_animation_context::Impl::_anim::_keypoint(100000, L"ppt_y", boost::none));
EXPECT_EQ(animate2->KeypointArray->size(), keypointsExp.size());
for (size_t i = 0; i < animate2->KeypointArray->size(); i++)
@ -576,9 +576,7 @@ TEST_F(ODP2OOX_EntranceAnimationTest, entrance_venetian_blinds_anim_effect_trans
const pptx_animation_context::Impl::_animation_element_array& actions = GetAnimationActionsByIndex(animationIndex);
const pptx_animation_context::Impl::_anim_effect* animEffect = dynamic_cast<pptx_animation_context::Impl::_anim_effect*>(actions[1].get());
const std::wstring transitionExp = L"in";
EXPECT_EQ(animEffect->Transition.value(), transitionExp);
EXPECT_FALSE(animEffect->Transition.has_value());
}
TEST_F(ODP2OOX_EntranceAnimationTest, entrance_venetian_blinds_anim_effect_duration)

View File

@ -197,49 +197,69 @@ TEST_F(ODP2OOX_AnimationPlayAudioTest, rels_size)
ASSERT_NE(mConversionContext, nullptr);
auto rels_ = mConversionContext->current_slide().Rels().relationships();
const size_t relsSizeExp = 3;
const size_t relsSizeExp = 2;
EXPECT_EQ(rels_.size(), 3);
EXPECT_EQ(rels_.size(), relsSizeExp);
}
TEST_F(ODP2OOX_AnimationPlayAudioTest, audio_rel_id)
TEST_F(ODP2OOX_AnimationPlayAudioTest, audio_slide_rel_type)
{
ASSERT_NE(mConversionContext, nullptr);
auto audioRel = mConversionContext->current_slide().Rels().relationships()[1];
const std::wstring idExp = L"hId1";
auto slideRel = mConversionContext->current_slide().Rels().relationships()[0];
const std::wstring typeExp = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout";
EXPECT_EQ(audioRel.id(), idExp);
EXPECT_EQ(slideRel.type(), typeExp);
}
TEST_F(ODP2OOX_AnimationPlayAudioTest, audio_rel_type)
TEST_F(ODP2OOX_AnimationPlayAudioTest, audio_slide_rel_target)
{
ASSERT_NE(mConversionContext, nullptr);
auto audioRel = mConversionContext->current_slide().Rels().relationships()[1];
const std::wstring typeExp = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink";
auto slideRel = mConversionContext->current_slide().Rels().relationships()[0];
const std::wstring targetExp = L"../slideLayouts/slideLayout1.xml";
EXPECT_EQ(audioRel.type(), typeExp);
EXPECT_EQ(slideRel.target(), targetExp);
}
TEST_F(ODP2OOX_AnimationPlayAudioTest, audio_rel_target)
TEST_F(ODP2OOX_AnimationPlayAudioTest, audio_slide_rel_target_mode)
{
ASSERT_NE(mConversionContext, nullptr);
auto audioRel = mConversionContext->current_slide().Rels().relationships()[1];
const std::wstring targetExp = L"../../../../X2tConverter/test/win32Test/Res/media_example.wav";
auto slideRel = mConversionContext->current_slide().Rels().relationships()[0];
const std::wstring targetModeExp = L"";
EXPECT_EQ(audioRel.target(), targetExp);
EXPECT_EQ(slideRel.target_mode(), targetModeExp);
}
TEST_F(ODP2OOX_AnimationPlayAudioTest, audio_rel_target_mode)
TEST_F(ODP2OOX_AnimationPlayAudioTest, audio_notes_rel_type)
{
ASSERT_NE(mConversionContext, nullptr);
auto audioRel = mConversionContext->current_slide().Rels().relationships()[1];
const std::wstring targetModeExp = L"External";
auto notesRel = mConversionContext->current_slide().Rels().relationships()[1];
const std::wstring typeExp = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide";
EXPECT_EQ(audioRel.target_mode(), targetModeExp);
EXPECT_EQ(notesRel.type(), typeExp);
}
TEST_F(ODP2OOX_AnimationPlayAudioTest, audio_notes_rel_target)
{
ASSERT_NE(mConversionContext, nullptr);
auto notesRel = mConversionContext->current_slide().Rels().relationships()[1];
const std::wstring targetExp = L"../notesSlides/notesSlide1.xml";
EXPECT_EQ(notesRel.target(), targetExp);
}
TEST_F(ODP2OOX_AnimationPlayAudioTest, audio_notes_rel_target_mode)
{
ASSERT_NE(mConversionContext, nullptr);
auto notesRel = mConversionContext->current_slide().Rels().relationships()[1];
const std::wstring targetModeExp = L"";
EXPECT_EQ(notesRel.target_mode(), targetModeExp);
}
//////////////////////////////////////////////////////////////////////////