summaryrefslogtreecommitdiff
path: root/slideshow/test
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2007-07-17 14:22:01 +0000
committerOliver Bolte <obo@openoffice.org>2007-07-17 14:22:01 +0000
commitb714a1f57ba57731a3dd26e398bc8479b325dcae (patch)
treed56d0f63fa36b6fa512c4fa7136e53e85a74351b /slideshow/test
parentdbb2420f91409494900e9d282fc71850b6e525a6 (diff)
INTEGRATION: CWS presfixes12 (1.1.2); FILE ADDED
2007/05/10 20:32:41 thb 1.1.2.3: #i37778# Reworked LayerManager::updateShapeLayers - now much better aligned with general shape update, and avoids superfluous rendering; made unit tests work again; passing down slide background repaint status to LayerManager; relaxed preconditions for Shape::getUpdateArea() - no longer requires views to work; now catching singular view matrix and using sensible default at API border 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:54 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/testview.cxx294
1 files changed, 294 insertions, 0 deletions
diff --git a/slideshow/test/testview.cxx b/slideshow/test/testview.cxx
new file mode 100644
index 000000000000..9495c6f2c266
--- /dev/null
+++ b/slideshow/test/testview.cxx
@@ -0,0 +1,294 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: testview.cxx,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: obo $ $Date: 2007-07-17 15:22:01 $
+ *
+ * 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/b1drange.hxx>
+#include <basegfx/range/b2drectangle.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <cppcanvas/spritecanvas.hxx>
+
+#include "tests.hxx"
+#include "view.hxx"
+#include "unoview.hxx"
+#include "com/sun/star/presentation/XSlideShowView.hpp"
+
+#include <vector>
+#include <exception>
+
+
+namespace target = slideshow::internal;
+using namespace ::com::sun::star;
+
+// our test view subject
+typedef ::cppu::WeakComponentImplHelper1< presentation::XSlideShowView > ViewBase;
+class ImplTestView : public TestView,
+ private cppu::BaseMutex,
+ public ViewBase
+{
+ mutable std::vector<std::pair<basegfx::B2DVector,double> > maCreatedSprites;
+ mutable std::vector<TestViewSharedPtr> maViewLayers;
+ basegfx::B2DRange maBounds;
+ basegfx::B1DRange maPriority;
+ bool mbIsClipSet;
+ bool mbIsClipEmptied;
+ bool mbIsClearCalled;
+ bool mbDisposed;
+
+
+public:
+ ImplTestView() :
+ ViewBase(m_aMutex),
+ maCreatedSprites(),
+ maViewLayers(),
+ maBounds(),
+ maPriority(),
+ mbIsClipSet(false),
+ mbIsClipEmptied(false),
+ mbIsClearCalled(false),
+ mbDisposed( false )
+ {
+ }
+
+ virtual ~ImplTestView()
+ {
+ }
+
+ // XSlideShowView
+ virtual uno::Reference< rendering::XSpriteCanvas > SAL_CALL getCanvas( ) throw (uno::RuntimeException)
+ {
+ return uno::Reference< rendering::XSpriteCanvas >();
+ }
+
+ virtual void SAL_CALL clear( ) throw (uno::RuntimeException)
+ {
+ }
+
+ virtual geometry::AffineMatrix2D SAL_CALL getTransformation( ) throw (uno::RuntimeException)
+ {
+ return geometry::AffineMatrix2D();
+ }
+
+ virtual void SAL_CALL addTransformationChangedListener( const uno::Reference< util::XModifyListener >& ) throw (uno::RuntimeException)
+ {
+ }
+
+ virtual void SAL_CALL removeTransformationChangedListener( const uno::Reference< util::XModifyListener >& ) throw (uno::RuntimeException)
+ {
+ }
+
+ virtual void SAL_CALL addPaintListener( const uno::Reference< awt::XPaintListener >& ) throw (uno::RuntimeException)
+ {
+ }
+
+ virtual void SAL_CALL removePaintListener( const uno::Reference< awt::XPaintListener >& ) throw (uno::RuntimeException)
+ {
+ }
+
+ virtual void SAL_CALL addMouseListener( const uno::Reference< awt::XMouseListener >& ) throw (uno::RuntimeException)
+ {
+ }
+
+ virtual void SAL_CALL removeMouseListener( const uno::Reference< awt::XMouseListener >& ) throw (uno::RuntimeException)
+ {
+ }
+
+ virtual void SAL_CALL addMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& ) throw (uno::RuntimeException)
+ {
+ }
+
+ virtual void SAL_CALL removeMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& ) throw (uno::RuntimeException)
+ {
+ }
+
+ virtual void SAL_CALL setMouseCursor( ::sal_Int16 ) throw (uno::RuntimeException)
+ {
+ }
+
+ // TestView
+ virtual bool isClearCalled() const
+ {
+ return mbIsClearCalled;
+ }
+
+ virtual std::vector<std::pair<basegfx::B2DVector,double> > getCreatedSprites() const
+ {
+ return maCreatedSprites;
+ }
+
+ virtual basegfx::B1DRange getPriority() const
+ {
+ return maPriority;
+ }
+
+ virtual bool wasClipSet() const
+ {
+ return mbIsClipEmptied;
+ }
+
+ virtual basegfx::B2DRange getBounds() const
+ {
+ return maBounds;
+ }
+
+ virtual std::vector<boost::shared_ptr<TestView> > getViewLayers() const
+ {
+ return maViewLayers;
+ }
+
+ // ViewLayer
+ virtual bool isOnView(target::ViewSharedPtr const& /*rView*/) const
+ {
+ return true;
+ }
+
+ virtual ::cppcanvas::CanvasSharedPtr getCanvas() const
+ {
+ return ::cppcanvas::CanvasSharedPtr();
+ }
+
+ virtual ::cppcanvas::CustomSpriteSharedPtr createSprite( const ::basegfx::B2DSize& rSpriteSizePixel,
+ double nPriority ) const
+ {
+ maCreatedSprites.push_back( std::make_pair(rSpriteSizePixel,nPriority) );
+
+ return ::cppcanvas::CustomSpriteSharedPtr();
+ }
+
+ virtual void setPriority( const basegfx::B1DRange& rRange )
+ {
+ maPriority = rRange;
+ }
+
+ virtual ::basegfx::B2DHomMatrix getTransformation() const
+ {
+ return ::basegfx::B2DHomMatrix();
+ }
+
+ virtual ::basegfx::B2DHomMatrix getSpriteTransformation() const
+ {
+ return ::basegfx::B2DHomMatrix();
+ }
+
+ virtual void setClip( const ::basegfx::B2DPolyPolygon& rClip )
+ {
+ if( !mbIsClipSet )
+ {
+ if( rClip.count() > 0 )
+ mbIsClipSet = true;
+ }
+ else if( !mbIsClipEmptied )
+ {
+ if( rClip.count() == 0 )
+ mbIsClipEmptied = true;
+ }
+ else if( rClip.count() > 0 )
+ {
+ mbIsClipSet = true;
+ mbIsClipEmptied = false;
+ }
+ else
+ {
+ // unexpected call
+ throw std::exception();
+ }
+ }
+
+ virtual bool resize( const basegfx::B2DRange& rArea )
+ {
+ const bool bRet( maBounds != rArea );
+ maBounds = rArea;
+ return bRet;
+ }
+
+ virtual target::ViewLayerSharedPtr createViewLayer(
+ const basegfx::B2DRange& rLayerBounds ) const
+ {
+ maViewLayers.push_back( TestViewSharedPtr(new ImplTestView()));
+ maViewLayers.back()->resize( rLayerBounds );
+
+ return maViewLayers.back();
+ }
+
+ virtual bool updateScreen() const
+ {
+ // misusing updateScreen for state reporting
+ return !mbDisposed;
+ }
+
+ virtual bool paintScreen() const
+ {
+ // misusing updateScreen for state reporting
+ return !mbDisposed;
+ }
+
+ virtual void clear() const
+ {
+ }
+
+ virtual void clearAll() const
+ {
+ }
+
+ virtual void setViewSize( const ::basegfx::B2DSize& )
+ {
+ }
+
+ virtual void setCursorShape( sal_Int16 /*nPointerShape*/ )
+ {
+ }
+
+ virtual uno::Reference< presentation::XSlideShowView > getUnoView() const
+ {
+ return uno::Reference< presentation::XSlideShowView >( const_cast<ImplTestView*>(this) );
+ }
+
+ virtual void _dispose()
+ {
+ mbDisposed = true;
+ }
+};
+
+
+TestViewSharedPtr createTestView()
+{
+ return TestViewSharedPtr(
+ comphelper::make_shared_from_UNO(
+ new ImplTestView()) );
+}