tdf#45636: test for no-alt and table split/merge access. check
Change-Id: I6474b5e0db90143efa1ea066142961c2fe250ae6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86492
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
diff --git a/include/sfx2/AccessibilityIssue.hxx b/include/sfx2/AccessibilityIssue.hxx
index 250594e..8e0d85c 100644
--- a/include/sfx2/AccessibilityIssue.hxx
+++ b/include/sfx2/AccessibilityIssue.hxx
@@ -23,7 +23,11 @@
UNSPECIFIED, // TODO: remove - temporary
DOCUMENT_TITLE,
DOCUMENT_LANGUAGE,
STYLE_LANGUAGE
STYLE_LANGUAGE,
NO_ALT_OLE,
NO_ALT_GRAPHIC,
NO_ALT_SHAPE,
TABLE_MERGE_SPLIT,
};
class SFX2_DLLPUBLIC AccessibilityIssue
diff --git a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx
index 7360ccd..61902aa 100644
--- a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx
+++ b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx
@@ -23,7 +23,7 @@
}
};
CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, testCheck)
CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, testCheckDocumentIssues)
{
SwDoc* pDoc = createDoc("DocumentTest.odt");
CPPUNIT_ASSERT(pDoc);
@@ -35,6 +35,24 @@
CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::DOCUMENT_TITLE, aIssues[1]->m_eIssueID);
}
CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, testTableSplitMergeAndAltText)
{
SwDoc* pDoc = createDoc("AccessibilityTests1.odt");
CPPUNIT_ASSERT(pDoc);
sw::AccessibilityCheck aCheck(pDoc);
aCheck.check();
auto& aIssues = aCheck.getIssueCollecton().getIssues();
CPPUNIT_ASSERT_EQUAL(size_t(7), aIssues.size());
CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::NO_ALT_GRAPHIC, aIssues[0]->m_eIssueID);
CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::NO_ALT_OLE, aIssues[1]->m_eIssueID);
CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TABLE_MERGE_SPLIT, aIssues[2]->m_eIssueID);
CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TABLE_MERGE_SPLIT, aIssues[3]->m_eIssueID);
CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TABLE_MERGE_SPLIT, aIssues[4]->m_eIssueID);
CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::TABLE_MERGE_SPLIT, aIssues[5]->m_eIssueID);
CPPUNIT_ASSERT_EQUAL(sfx::AccessibilityIssueID::NO_ALT_SHAPE, aIssues[6]->m_eIssueID);
}
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/qa/core/accessibilitycheck/data/AccessibilityTests1.odt b/sw/qa/core/accessibilitycheck/data/AccessibilityTests1.odt
new file mode 100644
index 0000000..2e319f5
--- /dev/null
+++ b/sw/qa/core/accessibilitycheck/data/AccessibilityTests1.odt
Binary files differ
diff --git a/sw/source/core/access/AccessibilityCheck.cxx b/sw/source/core/access/AccessibilityCheck.cxx
index 06a90e9..aaeacae 100644
--- a/sw/source/core/access/AccessibilityCheck.cxx
+++ b/sw/source/core/access/AccessibilityCheck.cxx
@@ -83,16 +83,18 @@
OUString sIssueText = SwResId(STR_NO_ALT).replaceAll("%OBJECT_NAME%", sName);
auto pIssue = lclAddIssue(m_rIssueCollection, sIssueText);
if (pNoTextNode->IsOLENode())
{
auto pIssue = lclAddIssue(m_rIssueCollection, sIssueText,
sfx::AccessibilityIssueID::NO_ALT_OLE);
pIssue->setDoc(pNoTextNode->GetDoc());
pIssue->setIssueObject(IssueObject::OLE);
pIssue->setObjectID(pNoTextNode->GetFlyFormat()->GetName());
}
else if (pNoTextNode->IsGrfNode())
{
auto pIssue = lclAddIssue(m_rIssueCollection, sIssueText,
sfx::AccessibilityIssueID::NO_ALT_GRAPHIC);
pIssue->setDoc(pNoTextNode->GetDoc());
pIssue->setIssueObject(IssueObject::GRAPHIC);
pIssue->setObjectID(pNoTextNode->GetFlyFormat()->GetName());
@@ -126,7 +128,8 @@
const SwTableFormat* pFormat = rTable.GetFrameFormat();
OUString sName = pFormat->GetName();
OUString sIssueText = SwResId(STR_TABLE_MERGE_SPLIT).replaceAll("%OBJECT_NAME%", sName);
auto pIssue = lclAddIssue(m_rIssueCollection, sIssueText);
auto pIssue = lclAddIssue(m_rIssueCollection, sIssueText,
sfx::AccessibilityIssueID::TABLE_MERGE_SPLIT);
pIssue->setDoc(pDoc);
pIssue->setIssueObject(IssueObject::TABLE);
pIssue->setObjectID(sName);
@@ -617,7 +620,7 @@
{
OUString sName = pObject->GetName();
OUString sIssueText = SwResId(STR_NO_ALT).replaceAll("%OBJECT_NAME%", sName);
lclAddIssue(m_aIssueCollection, sIssueText);
lclAddIssue(m_aIssueCollection, sIssueText, sfx::AccessibilityIssueID::NO_ALT_SHAPE);
}
}
}