diff options
author | Vikas Mahato <vikasmahato0@gmail.com> | 2018-06-24 20:53:01 +0530 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2018-07-08 23:32:44 +0200 |
commit | e300efd3a029672e24114914355c5c690fb725d5 (patch) | |
tree | 46c7f0c0623ee129c308007fb202926e48cf0026 /sc/qa/unit/dataproviders_test.cxx | |
parent | 510073cf047101cf6297fcec2ad8296f9e63c486 (diff) |
Added XML data provider
Change-Id: Ib5727912977eb79cdf1f84bf874919beafc693eb
Reviewed-on: https://gerrit.libreoffice.org/56356
Tested-by: Jenkins
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'sc/qa/unit/dataproviders_test.cxx')
-rw-r--r-- | sc/qa/unit/dataproviders_test.cxx | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/sc/qa/unit/dataproviders_test.cxx b/sc/qa/unit/dataproviders_test.cxx index 1960fa59eecf..aef3ec6abb05 100644 --- a/sc/qa/unit/dataproviders_test.cxx +++ b/sc/qa/unit/dataproviders_test.cxx @@ -14,6 +14,7 @@ #include <address.hxx> #include <dataprovider.hxx> #include <vcl/scheduler.hxx> +#include <orcusxml.hxx> #include <memory> @@ -29,11 +30,13 @@ public: void testCSVImport(); void testDataLargerThanDB(); void testHTMLImport(); + void testXMLImport(); CPPUNIT_TEST_SUITE(ScDataProvidersTest); CPPUNIT_TEST(testCSVImport); CPPUNIT_TEST(testDataLargerThanDB); CPPUNIT_TEST(testHTMLImport); + CPPUNIT_TEST(testXMLImport); CPPUNIT_TEST_SUITE_END(); private: @@ -137,6 +140,47 @@ void ScDataProvidersTest::testHTMLImport() } } +void ScDataProvidersTest::testXMLImport() +{ + ScDBData* pDBData = new ScDBData("testDB", 0, 0, 0, 10, 10); + bool bInserted = m_pDoc->GetDBCollection()->getNamedDBs().insert(pDBData); + CPPUNIT_ASSERT(bInserted); + + OUString aFileURL; + ScOrcusImportXMLParam aParam; + + ScOrcusImportXMLParam::RangeLink aRangeLink; + aRangeLink.maPos = ScAddress(0,0,0); + aRangeLink.maFieldPaths.push_back("/bookstore/book/title"); + aRangeLink.maFieldPaths.push_back("/bookstore/book/author"); + aParam.maRangeLinks.push_back(aRangeLink); + + createFileURL("test1.", "xml", aFileURL); + sc::ExternalDataSource aDataSource(aFileURL, "org.libreoffice.calc.xml", m_pDoc); + aDataSource.setDBData("testDB"); + aDataSource.setXMLImportParam(aParam); + + + m_pDoc->GetExternalDataMapper().insertDataSource(aDataSource); + auto& rDataSources = m_pDoc->GetExternalDataMapper().getDataSources(); + CPPUNIT_ASSERT(!rDataSources.empty()); + + rDataSources[0].refresh(m_pDoc, true); + Scheduler::ProcessEventsToIdle(); + + CPPUNIT_ASSERT_EQUAL(OUString("title"), m_pDoc->GetString(0, 0, 0)); + CPPUNIT_ASSERT_EQUAL(OUString("author"), m_pDoc->GetString(1, 0, 0)); + CPPUNIT_ASSERT_EQUAL(1.0, m_pDoc->GetValue(0, 1, 0)); + CPPUNIT_ASSERT_EQUAL(OUString("test1"), m_pDoc->GetString(1, 1, 0)); + CPPUNIT_ASSERT_EQUAL(2.0, m_pDoc->GetValue(0, 2, 0)); + CPPUNIT_ASSERT_EQUAL(OUString("test2"), m_pDoc->GetString(1, 2, 0)); + CPPUNIT_ASSERT_EQUAL(3.0, m_pDoc->GetValue(0, 3, 0)); + CPPUNIT_ASSERT_EQUAL(OUString("test3"), m_pDoc->GetString(1, 3, 0)); + CPPUNIT_ASSERT_EQUAL(4.0, m_pDoc->GetValue(0, 4, 0)); + CPPUNIT_ASSERT_EQUAL(OUString("test4"), m_pDoc->GetString(1, 4, 0)); +} + + ScDataProvidersTest::ScDataProvidersTest() : ScBootstrapFixture( "sc/qa/unit/data/dataprovider" ), m_pDoc(nullptr) |