update credits
[LibreOffice.git] / chart2 / qa / extras / chart2import.cxx
blob074b232505707a4065c4f3bcb6014d7c7b9bd302
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
10 #include "charttest.hxx"
12 #include <com/sun/star/chart2/CurveStyle.hpp>
13 #include <com/sun/star/chart/ErrorBarStyle.hpp>
15 class Chart2ImportTest : public ChartTest
17 public:
18 void Fdo60083();
19 void testSteppedLines();
20 void testErrorBarRange();
22 CPPUNIT_TEST_SUITE(Chart2ImportTest);
23 CPPUNIT_TEST(Fdo60083);
24 CPPUNIT_TEST(testSteppedLines);
25 CPPUNIT_TEST(testErrorBarRange);
26 CPPUNIT_TEST_SUITE_END();
28 private:
32 // error bar import
33 // split method up into smaller chunks for more detailed tests
34 void Chart2ImportTest::Fdo60083()
36 load("/chart2/qa/extras/data/ods/", "fdo60083.ods");
37 uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet( 0, mxComponent );
38 CPPUNIT_ASSERT(xChartDoc.is());
40 Reference< chart2::XDataSeries > xDataSeries = getDataSeriesFromDoc( xChartDoc, 0 );
41 CPPUNIT_ASSERT( xDataSeries.is() );
43 Reference< beans::XPropertySet > xPropSet( xDataSeries, UNO_QUERY_THROW );
44 CPPUNIT_ASSERT( xPropSet.is() );
46 // test that y error bars are there
47 Reference< beans::XPropertySet > xErrorBarYProps;
48 xPropSet->getPropertyValue("ErrorBarY") >>= xErrorBarYProps;
49 CPPUNIT_ASSERT(xErrorBarYProps.is());
51 sal_Int32 nErrorBarStyle;
52 CPPUNIT_ASSERT(
53 xErrorBarYProps->getPropertyValue("ErrorBarStyle")
54 >>= nErrorBarStyle);
55 CPPUNIT_ASSERT_EQUAL(
56 static_cast<sal_Int32>(chart::ErrorBarStyle::RELATIVE),
57 nErrorBarStyle);
59 double nVal = 0.0;
60 CPPUNIT_ASSERT(
61 xErrorBarYProps->getPropertyValue("PositiveError") >>= nVal);
62 CPPUNIT_ASSERT_DOUBLES_EQUAL(5.0, nVal, 1e-8);
64 CPPUNIT_ASSERT(
65 xErrorBarYProps->getPropertyValue("NegativeError") >>= nVal);
66 CPPUNIT_ASSERT_DOUBLES_EQUAL(5.0, nVal, 1e-8);
68 bool bVal;
69 CPPUNIT_ASSERT(
70 xErrorBarYProps->getPropertyValue("ShowPositiveError") >>= bVal);
71 CPPUNIT_ASSERT_EQUAL(bVal, true);
73 CPPUNIT_ASSERT(
74 xErrorBarYProps->getPropertyValue("ShowNegativeError") >>= bVal);
75 CPPUNIT_ASSERT_EQUAL(bVal, true);
78 // test that x error bars are not imported
79 Reference< beans::XPropertySet > xErrorBarXProps;
80 xPropSet->getPropertyValue("ErrorBarX") >>= xErrorBarXProps;
81 CPPUNIT_ASSERT(!xErrorBarXProps.is());
84 void Chart2ImportTest::testErrorBarRange()
86 load("/chart2/qa/extras/data/ods/", "error_bar_range.ods");
87 uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet( 0, mxComponent );
88 CPPUNIT_ASSERT(xChartDoc.is());
90 Reference< chart2::XDataSeries > xDataSeries = getDataSeriesFromDoc( xChartDoc, 0 );
91 CPPUNIT_ASSERT( xDataSeries.is() );
93 Reference< beans::XPropertySet > xPropSet( xDataSeries, UNO_QUERY_THROW );
94 CPPUNIT_ASSERT( xPropSet.is() );
96 // test that y error bars are there
97 Reference< beans::XPropertySet > xErrorBarYProps;
98 xPropSet->getPropertyValue("ErrorBarY") >>= xErrorBarYProps;
99 CPPUNIT_ASSERT(xErrorBarYProps.is());
101 sal_Int32 nErrorBarStyle;
102 CPPUNIT_ASSERT(
103 xErrorBarYProps->getPropertyValue("ErrorBarStyle")
104 >>= nErrorBarStyle);
105 CPPUNIT_ASSERT_EQUAL(
106 static_cast<sal_Int32>(chart::ErrorBarStyle::FROM_DATA),
107 nErrorBarStyle);
109 OUString aRangePos;
110 CPPUNIT_ASSERT(xErrorBarYProps->getPropertyValue("ErrorBarRangePositive") >>= aRangePos);
111 CPPUNIT_ASSERT_EQUAL(aRangePos, OUString("$Sheet1.$C$2:$C$4"));
115 // stepped line interpolation
116 void Chart2ImportTest::testSteppedLines()
118 const sal_Int32 MAXSHEET = 14;
119 chart2::CurveStyle curveStyle[] = {
120 chart2::CurveStyle_LINES,
121 chart2::CurveStyle_CUBIC_SPLINES,
122 chart2::CurveStyle_B_SPLINES,
123 chart2::CurveStyle_STEP_START,
124 chart2::CurveStyle_STEP_END,
125 chart2::CurveStyle_STEP_CENTER_X,
126 chart2::CurveStyle_STEP_CENTER_Y,
127 chart2::CurveStyle_LINES,
128 chart2::CurveStyle_CUBIC_SPLINES,
129 chart2::CurveStyle_B_SPLINES,
130 chart2::CurveStyle_STEP_START,
131 chart2::CurveStyle_STEP_END,
132 chart2::CurveStyle_STEP_CENTER_X,
133 chart2::CurveStyle_STEP_CENTER_Y
136 load("/chart2/qa/extras/data/ods/", "stepped_lines.ods");
137 for(sal_Int32 nSheet = 0; nSheet < MAXSHEET; ++nSheet)
139 uno::Reference< chart2::XChartDocument > xChart2Doc = getChartDocFromSheet( nSheet, mxComponent );
140 CPPUNIT_ASSERT(xChart2Doc.is());
142 Reference< chart2::XChartType > xChartType = getChartTypeFromDoc( xChart2Doc, 0 );
143 CPPUNIT_ASSERT(xChartType.is());
145 Reference< beans::XPropertySet > xPropSet( xChartType, UNO_QUERY );
146 CPPUNIT_ASSERT(xPropSet.is());
148 chart2::CurveStyle eCurveStyle;
149 xPropSet->getPropertyValue("CurveStyle") >>= eCurveStyle;
150 CPPUNIT_ASSERT_EQUAL(eCurveStyle, curveStyle[nSheet]);
154 CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ImportTest);
156 CPPUNIT_PLUGIN_IMPLEMENT();
158 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */