1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
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/.
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
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();
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
;
53 xErrorBarYProps
->getPropertyValue("ErrorBarStyle")
56 static_cast<sal_Int32
>(chart::ErrorBarStyle::RELATIVE
),
61 xErrorBarYProps
->getPropertyValue("PositiveError") >>= nVal
);
62 CPPUNIT_ASSERT_DOUBLES_EQUAL(5.0, nVal
, 1e-8);
65 xErrorBarYProps
->getPropertyValue("NegativeError") >>= nVal
);
66 CPPUNIT_ASSERT_DOUBLES_EQUAL(5.0, nVal
, 1e-8);
70 xErrorBarYProps
->getPropertyValue("ShowPositiveError") >>= bVal
);
71 CPPUNIT_ASSERT_EQUAL(bVal
, true);
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
;
103 xErrorBarYProps
->getPropertyValue("ErrorBarStyle")
105 CPPUNIT_ASSERT_EQUAL(
106 static_cast<sal_Int32
>(chart::ErrorBarStyle::FROM_DATA
),
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: */