Kaydet (Commit) b607f62f authored tarafından Markus Mohrhard's avatar Markus Mohrhard

external data: add HTML data provider test

Change-Id: I594581ce388221760554f6272ee3af761f172c05
Reviewed-on: https://gerrit.libreoffice.org/41197Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMarkus Mohrhard <markus.mohrhard@googlemail.com>
üst 03b55edc
<html>
<table>
<thead>
<tr>
<th>Col1</th>
<th>Col2</th>
<th>Col3</th>
<th>Col4</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>Audi</td>
<td>Berlin</td>
</tr>
<tr>
<td>10</td>
<td>2.1</td>
<td>GM</td>
<td>San Francisco</td>
</tr>
<tr>
<td>-100</td>
<td>2010-1-1</td>
<td>Nissan</td>
<td>Tokyo</td>
</tr>
<tr>
<td>-0.11111</td>
<td>2</td>
<td>Ferrari</td>
<td>Rome</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>Peugeot</td>
<td>Paris</td>
</tr>
</tbody>
</table>
</html>
...@@ -28,10 +28,12 @@ public: ...@@ -28,10 +28,12 @@ public:
void testCSVImport(); void testCSVImport();
void testDataLargerThanDB(); void testDataLargerThanDB();
void testHTMLImport();
CPPUNIT_TEST_SUITE(ScDataProvidersTest); CPPUNIT_TEST_SUITE(ScDataProvidersTest);
CPPUNIT_TEST(testCSVImport); CPPUNIT_TEST(testCSVImport);
CPPUNIT_TEST(testDataLargerThanDB); CPPUNIT_TEST(testDataLargerThanDB);
CPPUNIT_TEST(testHTMLImport);
CPPUNIT_TEST_SUITE_END(); CPPUNIT_TEST_SUITE_END();
private: private:
...@@ -95,6 +97,46 @@ void ScDataProvidersTest::testDataLargerThanDB() ...@@ -95,6 +97,46 @@ void ScDataProvidersTest::testDataLargerThanDB()
CPPUNIT_ASSERT_EQUAL(OUString(), m_pDoc->GetString(2, 1, 0)); CPPUNIT_ASSERT_EQUAL(OUString(), m_pDoc->GetString(2, 1, 0));
} }
void ScDataProvidersTest::testHTMLImport()
{
ScDBData* pDBData = new ScDBData("testDB", 0, 0, 0, 10, 10);
bool bInserted = m_pDoc->GetDBCollection()->getNamedDBs().insert(pDBData);
CPPUNIT_ASSERT(bInserted);
OUString aFileURL;
createFileURL("test1.", "html", aFileURL);
sc::ExternalDataSource aDataSource(aFileURL, "org.libreoffice.calc.html", m_pDoc);
aDataSource.setID("//table");
aDataSource.setDBData(pDBData);
m_pDoc->GetExternalDataMapper().insertDataSource(aDataSource);
auto& rDataSources = m_pDoc->GetExternalDataMapper().getDataSources();
CPPUNIT_ASSERT(!rDataSources.empty());
rDataSources[0].refresh(m_pDoc, true);
Scheduler::ProcessEventsToIdle();
std::vector<OUString> aCarManufacturers = {"Audi", "GM", "Nissan", "Ferrari", "Peugeot"};
std::vector<OUString> aCities = {"Berlin", "San Francisco", "Tokyo", "Rome", "Paris"};
std::vector<double> aFirstCol = {1, 10, -100, -0.11111, 1};
std::vector<double> aSecondCol = {2, 2.1, 40179, 2, 2,}; // 40179 is equal to 2010-1-1
CPPUNIT_ASSERT_EQUAL(OUString("Col1"), m_pDoc->GetString(0, 0, 0));
CPPUNIT_ASSERT_EQUAL(OUString("Col2"), m_pDoc->GetString(1, 0, 0));
CPPUNIT_ASSERT_EQUAL(OUString("Col3"), m_pDoc->GetString(2, 0, 0));
CPPUNIT_ASSERT_EQUAL(OUString("Col4"), m_pDoc->GetString(3, 0, 0));
for (SCROW nRow = 0; nRow <= 4; ++nRow)
{
ASSERT_DOUBLES_EQUAL(aFirstCol[nRow], m_pDoc->GetValue(0, nRow + 1, 0));
ASSERT_DOUBLES_EQUAL(aSecondCol[nRow], m_pDoc->GetValue(1, nRow + 1, 0));
CPPUNIT_ASSERT_EQUAL(aCarManufacturers[nRow], m_pDoc->GetString(2, nRow + 1, 0));
CPPUNIT_ASSERT_EQUAL(aCities[nRow], m_pDoc->GetString(3, nRow + 1, 0));
}
}
ScDataProvidersTest::ScDataProvidersTest() : ScDataProvidersTest::ScDataProvidersTest() :
ScBootstrapFixture( "/sc/qa/unit/data/dataprovider" ), ScBootstrapFixture( "/sc/qa/unit/data/dataprovider" ),
m_pDoc(nullptr) m_pDoc(nullptr)
......
...@@ -91,6 +91,16 @@ void MergeColumnTransformation::Transform(ScDocument& rDoc) ...@@ -91,6 +91,16 @@ void MergeColumnTransformation::Transform(ScDocument& rDoc)
rDoc.DeleteCol(0, 0, MAXROW, 0, mnCol2, 1); rDoc.DeleteCol(0, 0, MAXROW, 0, mnCol2, 1);
} }
SortTransformation::SortTransformation(const ScSortParam& rSortParam):
maSortParam(rSortParam)
{
}
void SortTransformation::Transform(ScDocument& rDoc)
{
rDoc.Sort(0, maSortParam, false, false, nullptr, nullptr);
}
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
#include <address.hxx> #include <address.hxx>
#include <scdllapi.h> #include <scdllapi.h>
#include <sortparam.hxx>
class ScDocument; class ScDocument;
namespace sc { namespace sc {
...@@ -65,6 +67,16 @@ public: ...@@ -65,6 +67,16 @@ public:
virtual void Transform(ScDocument& rDoc) override; virtual void Transform(ScDocument& rDoc) override;
}; };
class SC_DLLPUBLIC SortTransformation : public DataTransformation
{
ScSortParam maSortParam;
public:
SortTransformation(const ScSortParam& rParam);
virtual void Transform(ScDocument& rDoc) override;
};
} }
#endif #endif
......
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