예제 #1
0
        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");
        }
예제 #2
0
        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");
        }
예제 #3
0
        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");
        }
예제 #4
0
        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");
        }
예제 #5
0
        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");
        }
예제 #6
0
        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");
        }
예제 #7
0
        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");
        }
예제 #8
0
        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");
        }
예제 #9
0
        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");
        }
예제 #10
0
        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");
        }
예제 #11
0
        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);
        }
예제 #12
0
        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");
        }
예제 #13
0
        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.");
        }