BloomTests.Publish.ExportEpubTests.BookWithAudio_ProducesOverlay_OmitsInvalidAttrs C# (CSharp) Method

BookWithAudio_ProducesOverlay_OmitsInvalidAttrs() private method

private BookWithAudio_ProducesOverlay_OmitsInvalidAttrs ( ) : void
return void
        public void BookWithAudio_ProducesOverlay_OmitsInvalidAttrs()
        {
            var book = SetupBook("<span id='a123' recordingmd5='undefined'>This is some text.</span><span id='a23'>Another sentence</span>", "xyz");
            MakeFakeAudio(book.FolderPath.CombineForPath("audio", "a123.mp4"));
            MakeFakeAudio(book.FolderPath.CombineForPath("audio", "a23.mp3"));
            MakeEpub("output", "BookWithAudio_ProducesOverlay", book);
            CheckBasicsInManifest();
            CheckBasicsInPage();
            CheckNavPage();
            CheckFontStylesheet();

            // xpath search for slash in attribute value fails (something to do with interpreting it as a namespace reference?)
            var assertThatManifest = AssertThatXmlIn.String(_manifestContent.Replace("application/smil", "application^slash^smil").Replace("audio/", "audio^slash^"));
            assertThatManifest.HasAtLeastOneMatchForXpath("package/manifest/item[@id='f1' and @href='1.xhtml' and @media-overlay='f1_overlay']");
            assertThatManifest.HasAtLeastOneMatchForXpath("package/manifest/item[@id='f1_overlay' and @href='1_overlay.smil' and @media-type='application^slash^smil+xml']");
            assertThatManifest.HasAtLeastOneMatchForXpath("package/manifest/item[@id='audio_2fa23' and @href='audio_2fa23.mp3' and @media-type='audio^slash^mpeg']");
            assertThatManifest.HasAtLeastOneMatchForXpath("package/manifest/item[@id='audio_2fa123' and @href='audio_2fa123.mp4' and @media-type='audio^slash^mp4']");

            var smilData = StripXmlHeader(GetZipContent(_epub, "content/1_overlay.smil"));
            var assertThatSmil = AssertThatXmlIn.String(smilData);
            assertThatSmil.HasAtLeastOneMatchForXpath("smil:smil/smil:body/smil:seq[@epub:textref='1.xhtml' and @epub:type='bodymatter chapter']", _ns);
            assertThatSmil.HasAtLeastOneMatchForXpath("smil:smil/smil:body/smil:seq/smil:par[@id='s1']/smil:text[@src='1.xhtml#a123']", _ns);
            assertThatSmil.HasAtLeastOneMatchForXpath("smil:smil/smil:body/smil:seq/smil:par[@id='s2']/smil:text[@src='1.xhtml#a23']", _ns);
            assertThatSmil.HasAtLeastOneMatchForXpath("smil:smil/smil:body/smil:seq/smil:par[@id='s1']/smil:audio[@src='audio_2fa123.mp4']", _ns);
            assertThatSmil.HasAtLeastOneMatchForXpath("smil:smil/smil:body/smil:seq/smil:par[@id='s2']/smil:audio[@src='audio_2fa23.mp3']", _ns);

            AssertThatXmlIn.String(_page1Data).HasAtLeastOneMatchForXpath("//span[@id='a123' and not(@recordingmd5)]");

            GetZipEntry(_epub, "content/audio_2fa123.mp4");
            GetZipEntry(_epub, "content/audio_2fa23.mp3");
        }