Kaydet (Commit) 77004e1a authored tarafından Miklos Vajna's avatar Miklos Vajna

CppunitTest_desktop_lib: test absolute positions for row/column headers

Change-Id: If2526647221fef2c6b18b21b589192239d8a89ad
(cherry picked from commit 2bed1867)
üst e0d0614d
...@@ -369,6 +369,35 @@ void DesktopLOKTest::testPasteWriter() ...@@ -369,6 +369,35 @@ void DesktopLOKTest::testPasteWriter()
void DesktopLOKTest::testRowColumnHeaders() void DesktopLOKTest::testRowColumnHeaders()
{ {
/*
* Payload example:
*
* {
* "rows": [
* {
* "size": "254.987250637468",
* "text": "1"
* },
* {
* "size": "509.974501274936",
* "text": "2"
* }
* ],
* "columns": [
* {
* "size": "1274.93625318734",
* "text": "A"
* },
* {
* "size": "2549.87250637468",
* "text": "B"
* }
* ]
* }
*
* "size" defines the bottom/right boundary of a row/column in twips (size between 0 and boundary)
* "text" has the header label in UTF-8
*/
LibLODocument_Impl* pDocument = loadDoc("search.ods"); LibLODocument_Impl* pDocument = loadDoc("search.ods");
boost::property_tree::ptree aTree; boost::property_tree::ptree aTree;
char* pJSON = pDocument->m_pDocumentClass->getCommandValues(pDocument, ".uno:ViewRowColumnHeaders"); char* pJSON = pDocument->m_pDocumentClass->getCommandValues(pDocument, ".uno:ViewRowColumnHeaders");
...@@ -377,23 +406,38 @@ void DesktopLOKTest::testRowColumnHeaders() ...@@ -377,23 +406,38 @@ void DesktopLOKTest::testRowColumnHeaders()
CPPUNIT_ASSERT(!aStream.str().empty()); CPPUNIT_ASSERT(!aStream.str().empty());
boost::property_tree::read_json(aStream, aTree); boost::property_tree::read_json(aStream, aTree);
sal_Int32 nPrevious = 0;
for (boost::property_tree::ptree::value_type& rValue : aTree.get_child("rows")) for (boost::property_tree::ptree::value_type& rValue : aTree.get_child("rows"))
{ {
sal_Int32 nSize = OString(rValue.second.get<std::string>("size").c_str()).toInt32(); sal_Int32 nSize = OString(rValue.second.get<std::string>("size").c_str()).toInt32();
CPPUNIT_ASSERT(nSize > 0); CPPUNIT_ASSERT(nSize > 0);
OString aText(rValue.second.get<std::string>("text").c_str()); OString aText(rValue.second.get<std::string>("text").c_str());
// This failed, as the first item did not contain the text of the first row. if (!nPrevious)
CPPUNIT_ASSERT_EQUAL(OString("1"), aText); // This failed, as the first item did not contain the text of the first row.
break; CPPUNIT_ASSERT_EQUAL(OString("1"), aText);
else
{
// Make sure that size is absolute: the first two items have the same relative size.
CPPUNIT_ASSERT(nPrevious < nSize);
break;
}
nPrevious = nSize;
} }
nPrevious = 0;
for (boost::property_tree::ptree::value_type& rValue : aTree.get_child("columns")) for (boost::property_tree::ptree::value_type& rValue : aTree.get_child("columns"))
{ {
sal_Int32 nSize = OString(rValue.second.get<std::string>("size").c_str()).toInt32(); sal_Int32 nSize = OString(rValue.second.get<std::string>("size").c_str()).toInt32();
CPPUNIT_ASSERT(nSize > 0); CPPUNIT_ASSERT(nSize > 0);
OString aText(rValue.second.get<std::string>("text").c_str()); OString aText(rValue.second.get<std::string>("text").c_str());
CPPUNIT_ASSERT_EQUAL(OString("A"), aText); if (!nPrevious)
break; CPPUNIT_ASSERT_EQUAL(OString("A"), aText);
else
{
CPPUNIT_ASSERT(nPrevious < nSize);
break;
}
nPrevious = nSize;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment