diff options
author | Oliver Bolte <obo@openoffice.org> | 2007-07-17 14:21:51 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2007-07-17 14:21:51 +0000 |
commit | dbb2420f91409494900e9d282fc71850b6e525a6 (patch) | |
tree | fc87ca31b53744f27357e455ae45aa4a078364ee /slideshow/test | |
parent | c5e7b26f638d965f943ef0a636941a5fdc58cb33 (diff) |
INTEGRATION: CWS presfixes12 (1.1.2); FILE ADDED
2007/02/25 01:10:29 thb 1.1.2.2: #i37778# Cleared up error handling a lot: no longer quenching RuntimeExceptions; reporting assertions in the debug case; ViewLayer now reports resized sprite (which needs re-render from all shapes); fixed missing subset area reduction for glyph-level animations; added return of resize state from Layer::commitLayerBounds(); adapted unit tests to corrected behaviour
2007/02/10 23:23:53 thb 1.1.2.1: #i37778# Renamed setMouseCursor() to setCursorShape() at View interface (name clash with API method otherwise); added LayerManager/Layer unit tests; fixed a bunch of bugs/glitches found during unit testing
Diffstat (limited to 'slideshow/test')
-rw-r--r-- | slideshow/test/tests.hxx | 80 | ||||
-rw-r--r-- | slideshow/test/testshape.cxx | 229 |
2 files changed, 309 insertions, 0 deletions
diff --git a/slideshow/test/tests.hxx b/slideshow/test/tests.hxx new file mode 100644 index 000000000000..3f8cea8e9694 --- /dev/null +++ b/slideshow/test/tests.hxx @@ -0,0 +1,80 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: tests.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: obo $ $Date: 2007-07-17 15:21:41 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + +#ifndef INCLUDED_TESTS_HXX +#define INCLUDED_TESTS_HXX + +#include "animatableshape.hxx" +#include "unoview.hxx" +#include <boost/shared_ptr.hpp> + +namespace basegfx{ class B1DRange; class B2DRange; class B2DVector; } + +class TestView : public slideshow::internal::UnoView +{ +public: + /// true iff clear() has been called + virtual bool isClearCalled() const = 0; + virtual std::vector<std::pair<basegfx::B2DVector,double> > getCreatedSprites() const = 0; + virtual basegfx::B1DRange getPriority() const = 0; + /// true iff setClip was called (on and off) + virtual bool wasClipSet() const = 0; + virtual basegfx::B2DRange getBounds() const = 0; + + virtual std::vector<boost::shared_ptr<TestView> > getViewLayers() const = 0; +}; + +typedef boost::shared_ptr<TestView> TestViewSharedPtr; +TestViewSharedPtr createTestView(); + + +/////////////////////////////////////////////////////////////////////////////////////// + + +class TestShape : public slideshow::internal::AnimatableShape +{ +public: + virtual std::vector< + std::pair<slideshow::internal::ViewLayerSharedPtr,bool> > getViewLayers() const = 0; + virtual sal_Int32 getNumUpdates() const = 0; + virtual sal_Int32 getNumRenders() const = 0; + virtual sal_Int32 getAnimationCount() const = 0; +}; + +typedef boost::shared_ptr<TestShape> TestShapeSharedPtr; +TestShapeSharedPtr createTestShape(const basegfx::B2DRange& rRect, + double nPrio); + +#endif /* INCLUDED_TESTS_HXX */ diff --git a/slideshow/test/testshape.cxx b/slideshow/test/testshape.cxx new file mode 100644 index 000000000000..e99380730f6f --- /dev/null +++ b/slideshow/test/testshape.cxx @@ -0,0 +1,229 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: testshape.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: obo $ $Date: 2007-07-17 15:21:51 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + +#include <cppunit/simpleheader.hxx> +#include <cppuhelper/compbase1.hxx> +#include <cppuhelper/basemutex.hxx> +#include <comphelper/make_shared_from_uno.hxx> + +#include <basegfx/matrix/b2dhommatrix.hxx> +#include <basegfx/range/b2drange.hxx> + +#include "shape.hxx" +#include "tests.hxx" +#include "com/sun/star/presentation/XSlideShowView.hpp" + +#include <boost/bind.hpp> + +namespace target = slideshow::internal; +using namespace ::com::sun::star; + +// our test shape subject +typedef ::cppu::WeakComponentImplHelper1< drawing::XShape > ShapeBase; +class ImplTestShape : public TestShape, + private cppu::BaseMutex, + public ShapeBase +{ + typedef std::vector<std::pair<target::ViewLayerSharedPtr,bool> > ViewVector; + ViewVector maViewLayers; + const basegfx::B2DRange maRect; + const double mnPrio; + sal_Int32 mnAnimated; + mutable sal_Int32 mnNumUpdates; + mutable sal_Int32 mnNumRenders; + +public: + ImplTestShape( const basegfx::B2DRange& rRect, + double nPrio ) : + ShapeBase( m_aMutex ), + maViewLayers(), + maRect( rRect ), + mnPrio( nPrio ), + mnAnimated(0), + mnNumUpdates(0), + mnNumRenders(0) + {} + + +private: + // TestShape + virtual std::vector<std::pair<target::ViewLayerSharedPtr,bool> > getViewLayers() const + { + return maViewLayers; + } + virtual sal_Int32 getNumUpdates() const + { + return mnNumUpdates; + } + virtual sal_Int32 getNumRenders() const + { + return mnNumRenders; + } + virtual sal_Int32 getAnimationCount() const + { + return mnAnimated; + } + + + // XShape + virtual ::rtl::OUString SAL_CALL getShapeType( ) throw (uno::RuntimeException) + { + CPPUNIT_ASSERT_MESSAGE( "TestShape::getShapeType: unexpected method call", false ); + return ::rtl::OUString(); + } + + virtual awt::Point SAL_CALL getPosition( ) throw (uno::RuntimeException) + { + CPPUNIT_ASSERT_MESSAGE( "TestShape::getPosition: unexpected method call", false ); + return awt::Point(); + } + + virtual void SAL_CALL setPosition( const awt::Point& ) throw (uno::RuntimeException) + { + CPPUNIT_ASSERT_MESSAGE( "TestShape::setPosition: unexpected method call", false ); + } + + virtual awt::Size SAL_CALL getSize( ) throw (uno::RuntimeException) + { + CPPUNIT_ASSERT_MESSAGE( "TestShape::getSize: unexpected method call", false ); + return awt::Size(); + } + + virtual void SAL_CALL setSize( const awt::Size& /*aSize*/ ) throw (beans::PropertyVetoException, uno::RuntimeException) + { + CPPUNIT_ASSERT_MESSAGE( "TestShape::setSize: unexpected method call", false ); + } + + + ////////////////////////////////////////////////////////////////////////// + + + // Shape + virtual uno::Reference< drawing::XShape > getXShape() const + { + return uno::Reference< drawing::XShape >( const_cast<ImplTestShape*>(this) ); + } + virtual void addViewLayer( const target::ViewLayerSharedPtr& rNewLayer, + bool bRedrawLayer ) + { + maViewLayers.push_back( std::make_pair(rNewLayer,bRedrawLayer) ); + } + virtual bool removeViewLayer( const target::ViewLayerSharedPtr& rNewLayer ) + { + if( std::find_if( + maViewLayers.begin(), + maViewLayers.end(), + boost::bind( std::equal_to< target::ViewLayerSharedPtr >(), + boost::cref( rNewLayer ), + boost::bind( std::select1st<ViewVector::value_type>(), + _1 ))) == maViewLayers.end() ) + throw std::exception(); + + maViewLayers.erase( + std::remove_if( + maViewLayers.begin(), + maViewLayers.end(), + boost::bind( std::equal_to< target::ViewLayerSharedPtr >(), + boost::cref( rNewLayer ), + boost::bind( std::select1st<ViewVector::value_type>(), + _1 )))); + return true; + } + virtual bool clearAllViewLayers() + { + maViewLayers.clear(); + return true; + } + + virtual bool update() const + { + ++mnNumUpdates; + return true; + } + virtual bool render() const + { + ++mnNumRenders; + return true; + } + virtual bool isContentChanged() const + { + return true; + } + virtual ::basegfx::B2DRectangle getBounds() const + { + return maRect; + } + virtual ::basegfx::B2DRectangle getDomBounds() const + { + return maRect; + } + virtual ::basegfx::B2DRectangle getUpdateArea() const + { + return maRect; + } + + virtual bool isVisible() const + { + return true; + } + virtual double getPriority() const + { + return mnPrio; + } + virtual bool isBackgroundDetached() const + { + return mnAnimated != 0; + } + + // AnimatableShape + virtual void enterAnimationMode() + { + ++mnAnimated; + } + + virtual void leaveAnimationMode() + { + --mnAnimated; + } +}; + + +TestShapeSharedPtr createTestShape(const basegfx::B2DRange& rRect, + double nPrio) +{ + return TestShapeSharedPtr( + comphelper::make_shared_from_UNO( + new ImplTestShape(rRect,nPrio)) ); +} |