public void CheckDescriptionsForAllImages_MutliplePages() { var divWithoutCorrectLangDescription = $@"<div class='bloom-translationGroup bloom-imageDescription'> <div class='bloom-editable' lang='{_bookData.Language1.Iso639Code}'> <p> </p> </div> </div>" ; var divWithDescription = $@"<div class='bloom-translationGroup bloom-imageDescription'> <div class='bloom-editable' lang='{_bookData.Language1.Iso639Code}'> <p>A nice flower</p> </div> </div>" ; var html = $@"<html> <body> {MakeHtmlForPageWithImage(divWithDescription)} {MakeHtmlForPageWithImage(divWithoutCorrectLangDescription)} {MakeHtmlForPageWithImage(divWithDescription)} {MakeHtmlForPageWithImage(divWithoutCorrectLangDescription)} </body> </html>" ; var testBook = CreateBookWithPhysicalFile(html); var results = AccessibilityCheckers.CheckDescriptionsForAllImages(testBook); Assert.AreEqual(2, results.Count(), "Should point out missing image description"); }
public void CheckDescriptionsForAllImages_DescriptionInWrongLang() { var testBook = GetBookWithImage(@"<div class='bloom-translationGroup bloom-imageDescription'> <div class='bloom-editable normal-style bloom-content1 bloom-contentNational1 bloom-visibility-code-on' lang='a2b'> <p>A flower.</p> </div> </div> </div>" ); var results = AccessibilityCheckers.CheckDescriptionsForAllImages(testBook); Assert.AreEqual(1, results.Count(), "Should point out missing language description"); }
public void CheckDescriptionsForAllImages_DescriptionInCorrectLang() { var testBook = GetBookWithImage( $@"<div class='bloom-translationGroup bloom-imageDescription'> <div class='bloom-editable' lang='{_bookData.Language1.Iso639Code}'> <p>A flower.</p> </div> </div>" ); var results = AccessibilityCheckers.CheckDescriptionsForAllImages(testBook); Assert.AreEqual(0, results.Count(), "No problems were expected"); }
public void CheckAudioForAllText_TextInRandomLangButVisibleAndNotRecorded_GivesError() { var testBook = MakeBookWithOneAudioFile($@"<div class='bloom-translationGroup'> <div class='bloom-editable bloom-visibility-code-on' lang=''> <p>hello</p> </div> </div> </div>" ); var results = AccessibilityCheckers.CheckAudioForAllText(testBook); Assert.AreEqual(1, results.Count(), "The text has to be recorded because it is visible"); }
public void CheckAudioForAllImageDescriptions_AudioMissing(int numberOfErrorsExpected, string content) { var testBook = MakeBookWithOneAudioFile($@"<div class='bloom-translationGroup bloom-imageDescription'> <div class='bloom-editable normal-style bloom-content1 bloom-contentNational1 bloom-visibility-code-on' lang='{ _bookData.Language1.Iso639Code }'> {content} </div> </div> </div>" ); var results = AccessibilityCheckers.CheckAudioForAllImageDescriptions(testBook); Assert.AreEqual(numberOfErrorsExpected, results.Count(), "Number of errors does not match expected"); }
public void CheckAudioForAllText_AudioMissingInImageDescriptionOnly_DoesNotReport() { var testBook = GetBookWithImage($@"<div class='bloom-translationGroup bloom-imageDescription'> <div class='bloom-editable normal-style bloom-content1 bloom-contentNational1 bloom-visibility-code-on' lang='{ _bookData.Language1.Iso639Code }'> <p>record me!</p> </div> </div> </div>" ); var results = AccessibilityCheckers.CheckAudioForAllText(testBook); Assert.AreEqual(0, results.Count(), "No error should have been reported"); }
public void CheckAudioForAllText_TextInNationalLanguageNotVisible_NotRecorded() { var testBook = MakeBookWithOneAudioFile($@"<div class='bloom-translationGroup'> <div class='bloom-editable bloom-visibility-code-off' lang='{ _bookData.MetadataLanguage1IsoCode }'> <p>hello</p> </div> </div> </div>" ); var results = AccessibilityCheckers.CheckAudioForAllText(testBook); Assert.AreEqual(0, results.Count(), "Since the text is not visible, should not give error if not recorded"); }
public void CheckAudioForAllText_SpansAudioMissing(string content) { var testBook = MakeBookWithOneAudioFile($@"<div class='bloom-translationGroup'> <div class='bloom-editable normal-style bloom-content1 bloom-contentNational1 bloom-visibility-code-on' lang='{ _bookData.Language1.Iso639Code }'> {content} </div> </div> </div>" ); var results = AccessibilityCheckers.CheckAudioForAllText(testBook); Assert.Greater(results.Count(), 0, "Error should have been reported"); }
public void CheckAudioForAllText_RecordingOnBloomEditable_NoErrors() { var testBook = MakeBookWithOneAudioFile($@"<div class='bloom-translationGroup'> <div class='bloom-editable normal-style bloom-content1 bloom-contentNational1 bloom-visibility-code-on audio-sentence' id='iExist' lang='{ _bookData.Language1.Iso639Code }'> <p>This is the text</p> </div> </div> </div>" ); var results = AccessibilityCheckers.CheckAudioForAllText(testBook); Assert.AreEqual(0, results.Count(), "No errors were expected"); }
public void CheckAudioForAllText_NoErrors(string content) { var testBook = MakeBookWithOneAudioFile($@"<div class='bloom-translationGroup'> <div class='bloom-editable normal-style bloom-content1 bloom-contentNational1 bloom-visibility-code-on' lang='{ _bookData.Language1.Iso639Code }'> {content} </div> </div> </div>" ); var results = AccessibilityCheckers.CheckAudioForAllText(testBook); Assert.AreEqual(0, results.Count(), "No errors were expected"); }
public void CheckDescriptionsForAllImages_DescriptionEmpty(string pageNumber, string pageLabel) { var testBook = GetBookWithImage( $@"<div class='bloom-translationGroup bloom-imageDescription'> <div class='bloom-editable' lang='{_bookData.Language1.Iso639Code}'> <p> </p> </div> </div>" , pageNumber, pageLabel); var results = AccessibilityCheckers.CheckDescriptionsForAllImages(testBook); Assert.AreEqual(1, results.Count(), "Should point out missing image description"); var expected = pageNumber ?? pageLabel; Assert.AreEqual($"Missing image description on page {expected}", results.First().message); }
public void CheckAudioForAllImageDescriptions_AudioFolderMissing_JustReturnsNormalMissingAudioError() { var testBook = MakeBookWithOneAudioFile($@"<div class='bloom-translationGroup bloom-imageDescription'> <div class='bloom-editable normal-style bloom-content1 bloom-contentNational1 bloom-visibility-code-on' lang='{ _bookData.Language1.Iso639Code }'> {"<p><span id='bogus123' class='audio-sentence'>A flower.</span></p>"} </div> </div> </div>" ); SIL.IO.RobustIO.DeleteDirectoryAndContents(AudioProcessor.GetAudioFolderPath(testBook.FolderPath)); var results = AccessibilityCheckers.CheckAudioForAllImageDescriptions(testBook); Assert.AreEqual(1, results.Count(), "Number of errors does not match expected"); }
public void CheckDescriptionsForAllImages_No_Images_NoProblems() { var html = @"<html> <body> <div class='bloom-page'> <div class='marginBox'> <div class='bloom-translationGroup normal-style'> <div class='bloom-editable normal-style bloom-content1 bloom-contentNational1 bloom-visibility-code-on' lang='en'> </div> </div> </div> </div> </body> </html>" ; var testBook = CreateBookWithPhysicalFile(html); var results = AccessibilityCheckers.CheckDescriptionsForAllImages(testBook); Assert.AreEqual(0, results.Count(), "No problems were expected."); }