summaryrefslogtreecommitdiff
path: root/sc/qa/unit/dataproviders_test.cxx
diff options
context:
space:
mode:
authorVikas Mahato <vikasmahato0@gmail.com>2018-06-24 20:53:01 +0530
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2018-07-08 23:32:44 +0200
commite300efd3a029672e24114914355c5c690fb725d5 (patch)
tree46c7f0c0623ee129c308007fb202926e48cf0026 /sc/qa/unit/dataproviders_test.cxx
parent510073cf047101cf6297fcec2ad8296f9e63c486 (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.cxx44
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)