xref: /aoo42x/main/slideshow/test/slidetest.cxx (revision df3f5cbc)
170f497fbSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
370f497fbSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
470f497fbSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
570f497fbSAndrew Rist  * distributed with this work for additional information
670f497fbSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
770f497fbSAndrew Rist  * to you under the Apache License, Version 2.0 (the
870f497fbSAndrew Rist  * "License"); you may not use this file except in compliance
970f497fbSAndrew Rist  * with the License.  You may obtain a copy of the License at
1070f497fbSAndrew Rist  *
1170f497fbSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
1270f497fbSAndrew Rist  *
1370f497fbSAndrew Rist  * Unless required by applicable law or agreed to in writing,
1470f497fbSAndrew Rist  * software distributed under the License is distributed on an
1570f497fbSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
1670f497fbSAndrew Rist  * KIND, either express or implied.  See the License for the
1770f497fbSAndrew Rist  * specific language governing permissions and limitations
1870f497fbSAndrew Rist  * under the License.
1970f497fbSAndrew Rist  *
2070f497fbSAndrew Rist  *************************************************************/
2170f497fbSAndrew Rist 
22cdf0e10cSrcweir #include <cppuhelper/compbase1.hxx>
23cdf0e10cSrcweir #include <comphelper/broadcasthelper.hxx>
24cdf0e10cSrcweir 
25cdf0e10cSrcweir #include <basegfx/matrix/b2dhommatrix.hxx>
26cdf0e10cSrcweir #include <basegfx/range/b2drectangle.hxx>
27cdf0e10cSrcweir #include <cppcanvas/spritecanvas.hxx>
28cdf0e10cSrcweir 
29cdf0e10cSrcweir #include "view.hxx"
30cdf0e10cSrcweir #include "unoview.hxx"
31cdf0e10cSrcweir #include "unoviewcontainer.hxx"
32cdf0e10cSrcweir #include "shape.hxx"
33cdf0e10cSrcweir #include "tests.hxx"
34cdf0e10cSrcweir #include "../engine/slide/layermanager.hxx"
35cdf0e10cSrcweir #include "../engine/slide/layer.hxx"
36*d9ee14b8SDamjan Jovanovic #include "gtest/gtest.h"
37cdf0e10cSrcweir #include "com/sun/star/presentation/XSlideShowView.hpp"
38cdf0e10cSrcweir 
39cdf0e10cSrcweir namespace target = slideshow::internal;
40cdf0e10cSrcweir using namespace ::com::sun::star;
41cdf0e10cSrcweir 
42*d9ee14b8SDamjan Jovanovic // FIXME:
43*d9ee14b8SDamjan Jovanovic #define RUN_OLD_FAILING_TESTS 0
44*d9ee14b8SDamjan Jovanovic 
45cdf0e10cSrcweir namespace
46cdf0e10cSrcweir {
47cdf0e10cSrcweir 
48*d9ee14b8SDamjan Jovanovic class LayerManagerTest : public ::testing::Test
49cdf0e10cSrcweir {
50*d9ee14b8SDamjan Jovanovic protected:
51cdf0e10cSrcweir     target::UnoViewContainer      maViews;
52cdf0e10cSrcweir     target::LayerManagerSharedPtr mpLayerManager;
53cdf0e10cSrcweir     TestViewSharedPtr             mpTestView;
54cdf0e10cSrcweir     TestShapeSharedPtr            mpTestShape;
55cdf0e10cSrcweir 
56cdf0e10cSrcweir public:
SetUp()57*d9ee14b8SDamjan Jovanovic     virtual void SetUp()
58cdf0e10cSrcweir     {
59cdf0e10cSrcweir         mpTestShape = createTestShape(
60cdf0e10cSrcweir             basegfx::B2DRange(0.0,0.0,10.0,10.0),
61cdf0e10cSrcweir             1.0);
62cdf0e10cSrcweir         mpTestView = createTestView();
63cdf0e10cSrcweir         maViews.addView( mpTestView );
64cdf0e10cSrcweir 
65cdf0e10cSrcweir         mpLayerManager.reset(
66cdf0e10cSrcweir             new target::LayerManager(
67cdf0e10cSrcweir                 maViews,
68cdf0e10cSrcweir                 basegfx::B2DRange(0.0,0.0,100.0,100.0),
69cdf0e10cSrcweir                 false ));
70cdf0e10cSrcweir     }
71cdf0e10cSrcweir 
TearDown()72*d9ee14b8SDamjan Jovanovic     virtual void TearDown()
73cdf0e10cSrcweir     {
74cdf0e10cSrcweir         mpLayerManager.reset();
75cdf0e10cSrcweir         maViews.dispose();
76cdf0e10cSrcweir     }
77*d9ee14b8SDamjan Jovanovic }; // class LayerManagerTest
78cdf0e10cSrcweir 
79cdf0e10cSrcweir 
TEST_F(LayerManagerTest,testLayer)80*d9ee14b8SDamjan Jovanovic TEST_F(LayerManagerTest, testLayer)
81*d9ee14b8SDamjan Jovanovic {
82*d9ee14b8SDamjan Jovanovic     target::LayerSharedPtr pBgLayer(
83*d9ee14b8SDamjan Jovanovic         target::Layer::createBackgroundLayer( basegfx::B2DRange(0,0,100,100) ) );
84*d9ee14b8SDamjan Jovanovic     pBgLayer->addView( mpTestView );
85*d9ee14b8SDamjan Jovanovic 
86*d9ee14b8SDamjan Jovanovic     target::LayerSharedPtr pFgLayer(
87*d9ee14b8SDamjan Jovanovic         target::Layer::createLayer( basegfx::B2DRange(0,0,100,100) ) );
88*d9ee14b8SDamjan Jovanovic     pFgLayer->addView( mpTestView );
89*d9ee14b8SDamjan Jovanovic 
90*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pBgLayer->isBackgroundLayer() ) << "BG layer must confess that!";
91*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( !pFgLayer->isBackgroundLayer() ) << "FG layer lies!";
92*d9ee14b8SDamjan Jovanovic 
93*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( !pBgLayer->isUpdatePending() ) << "BG layer must not have pending updates!";
94*d9ee14b8SDamjan Jovanovic     pBgLayer->addUpdateRange( basegfx::B2DRange(0,0,10,10) );
95*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pBgLayer->isUpdatePending() ) << "BG layer must have pending updates!";
96*d9ee14b8SDamjan Jovanovic 
97*d9ee14b8SDamjan Jovanovic     TestShapeSharedPtr pTestShape = createTestShape(
98*d9ee14b8SDamjan Jovanovic         basegfx::B2DRange(0.0,0.0,1000.0,1000.0),
99*d9ee14b8SDamjan Jovanovic         1.0);
100*d9ee14b8SDamjan Jovanovic     pBgLayer->updateBounds( pTestShape );
101*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( !pBgLayer->commitBounds() ) << "BG layer must not resize!";
102*d9ee14b8SDamjan Jovanovic 
103*d9ee14b8SDamjan Jovanovic     TestShapeSharedPtr pTestShape2 = createTestShape(
104*d9ee14b8SDamjan Jovanovic         basegfx::B2DRange(0.0,0.0,1.0,1.0),
105*d9ee14b8SDamjan Jovanovic         1.0);
106*d9ee14b8SDamjan Jovanovic     pFgLayer->updateBounds( pTestShape2 );
107*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pFgLayer->commitBounds() ) << "FG layer must resize!";
108*d9ee14b8SDamjan Jovanovic }
109*d9ee14b8SDamjan Jovanovic 
TEST_F(LayerManagerTest,testBasics)110*d9ee14b8SDamjan Jovanovic TEST_F(LayerManagerTest, testBasics)
111*d9ee14b8SDamjan Jovanovic {
112*d9ee14b8SDamjan Jovanovic     mpLayerManager->activate( false );
113cdf0e10cSrcweir 
114*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestShape->getViewLayers().empty() ) << "Un-added shape must have zero view layers";
115*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(mpTestShape);
116*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpLayerManager->isUpdatePending() ) << "Adding a shape requires a LayerManager update";
117cdf0e10cSrcweir 
118*d9ee14b8SDamjan Jovanovic     // update does the delayed viewAdded call to the shape
119*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpLayerManager->update() ) << "Update failed on LayerManager";
120*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestShape->getViewLayers().size() == 1 ) << "Added shape must have one view layer";
121*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestShape->getNumRenders() ) << "Shape must been rendered";
122*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( !mpTestShape->getNumUpdates() ) << "Shape must not been updated";
123cdf0e10cSrcweir 
124*d9ee14b8SDamjan Jovanovic     // test second view, check whether shape gets additional view
125*d9ee14b8SDamjan Jovanovic     TestViewSharedPtr pTestView( createTestView() );
126*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( maViews.addView( pTestView ) ) << "Adding second View failed";
127*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( maViews.end() - maViews.begin() == 2 ) << "View container must have two views";
128*d9ee14b8SDamjan Jovanovic     mpLayerManager->viewAdded(pTestView);
129*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestShape->getViewLayers().size() == 2 ) << "Added shape must have two view layers";
130cdf0e10cSrcweir 
131*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( maViews.removeView( pTestView ) ) << "Removing second View failed";
132*d9ee14b8SDamjan Jovanovic     mpLayerManager->viewRemoved(pTestView);
133*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestShape->getViewLayers().size() == 1 ) << "Added shape must have one view layer";
134cdf0e10cSrcweir 
135*d9ee14b8SDamjan Jovanovic     mpLayerManager->deactivate();
136*d9ee14b8SDamjan Jovanovic }
137*d9ee14b8SDamjan Jovanovic 
TEST_F(LayerManagerTest,testShapeOrdering)138*d9ee14b8SDamjan Jovanovic TEST_F(LayerManagerTest, testShapeOrdering)
139*d9ee14b8SDamjan Jovanovic {
140*d9ee14b8SDamjan Jovanovic     TestShapeSharedPtr pShape2( createTestShape(
141*d9ee14b8SDamjan Jovanovic         basegfx::B2DRange(0.0,0.0,10.0,10.0),
142*d9ee14b8SDamjan Jovanovic         2.0));
143*d9ee14b8SDamjan Jovanovic     TestShapeSharedPtr pShape3( createTestShape(
144*d9ee14b8SDamjan Jovanovic         basegfx::B2DRange(0.0,0.0,10.0,10.0),
145*d9ee14b8SDamjan Jovanovic         3.0));
146*d9ee14b8SDamjan Jovanovic     TestShapeSharedPtr pShape4( createTestShape(
147*d9ee14b8SDamjan Jovanovic         basegfx::B2DRange(0.0,0.0,10.0,10.0),
148*d9ee14b8SDamjan Jovanovic         4.0));
149*d9ee14b8SDamjan Jovanovic 
150*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(mpTestShape);
151*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape2);
152*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape3);
153*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape4);
154*d9ee14b8SDamjan Jovanovic 
155*d9ee14b8SDamjan Jovanovic     mpLayerManager->activate( false );
156*d9ee14b8SDamjan Jovanovic 
157*d9ee14b8SDamjan Jovanovic     // update does the delayed viewAdded call to the shape
158*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpLayerManager->update() ) << "Update failed on LayerManager";
159*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestView->getViewLayers().empty() ) << "View must have background layer only";
160*d9ee14b8SDamjan Jovanovic 
161*d9ee14b8SDamjan Jovanovic     // LayerManager must now generate one extra view layer
162*d9ee14b8SDamjan Jovanovic     mpLayerManager->enterAnimationMode(pShape2);
163*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpLayerManager->isUpdatePending() ) << "No update pending on LayerManager";
164*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpLayerManager->update() ) << "Update failed on LayerManager";
165*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestView->getViewLayers().size() == 1 ) << "View must have one extra layer only";
166*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestView->getViewLayers().at(0)->getBounds() ==
167*d9ee14b8SDamjan Jovanovic                             basegfx::B2DRange(0.0,0.0,10.0,10.0) ) << "View layer must have 10x10 size";
168*d9ee14b8SDamjan Jovanovic 
169*d9ee14b8SDamjan Jovanovic     // LayerManager must now remove the extra view layer
170*d9ee14b8SDamjan Jovanovic     mpLayerManager->leaveAnimationMode(pShape2);
171*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpLayerManager->isUpdatePending() ) << "No update pending on LayerManager";
172*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpLayerManager->update() ) << "Update failed on LayerManager #2";
173*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestShape->getViewLayers().at(0).first == mpTestView ) << "Shape 1 must be on background layer";
174*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape2->getViewLayers().at(0).first == mpTestView ) << "Shape 2 must be on background layer";
175*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape3->getViewLayers().size() == 1 ) << "Shape 3 must have one layer";
176*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape3->getViewLayers().at(0).first == mpTestView ) << "Shape 3 must be on background layer";
177*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape4->getViewLayers().at(0).first == mpTestView ) << "Shape 4 must be on background layer";
178*d9ee14b8SDamjan Jovanovic 
179*d9ee14b8SDamjan Jovanovic     // checking deactivation (all layers except background layer
180*d9ee14b8SDamjan Jovanovic     // must vanish)
181*d9ee14b8SDamjan Jovanovic     mpLayerManager->enterAnimationMode(pShape3);
182*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpLayerManager->isUpdatePending() ) << "No update pending on LayerManager";
183*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpLayerManager->update() ) << "Update failed on LayerManager";
184*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape4->getViewLayers().at(0).first != mpTestView ) << "Shape 4 must not be on background layer";
185*d9ee14b8SDamjan Jovanovic     mpLayerManager->leaveAnimationMode(pShape3);
186*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpLayerManager->update() ) << "Update failed on LayerManager";
187*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape4->getViewLayers().at(0).first == mpTestView ) << "Shape 4 must be on background layer";
188*d9ee14b8SDamjan Jovanovic 
189*d9ee14b8SDamjan Jovanovic     mpLayerManager->deactivate();
190*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( !mpLayerManager->isUpdatePending() ) << "Update pending on deactivated LayerManager";
191*d9ee14b8SDamjan Jovanovic }
192*d9ee14b8SDamjan Jovanovic 
TEST_F(LayerManagerTest,testShapeRepaint)193*d9ee14b8SDamjan Jovanovic TEST_F(LayerManagerTest, testShapeRepaint)
194*d9ee14b8SDamjan Jovanovic {
195*d9ee14b8SDamjan Jovanovic     TestShapeSharedPtr pShape2( createTestShape(
196*d9ee14b8SDamjan Jovanovic         basegfx::B2DRange(0.0,0.0,10.0,10.0),
197*d9ee14b8SDamjan Jovanovic         2.0));
198*d9ee14b8SDamjan Jovanovic     TestShapeSharedPtr pShape3( createTestShape(
199*d9ee14b8SDamjan Jovanovic         basegfx::B2DRange(0.0,0.0,10.0,10.0),
200*d9ee14b8SDamjan Jovanovic         3.0));
201*d9ee14b8SDamjan Jovanovic     TestShapeSharedPtr pShape4( createTestShape(
202*d9ee14b8SDamjan Jovanovic         basegfx::B2DRange(0.0,0.0,10.0,10.0),
203*d9ee14b8SDamjan Jovanovic         4.0));
204*d9ee14b8SDamjan Jovanovic     TestShapeSharedPtr pShape5( createTestShape(
205*d9ee14b8SDamjan Jovanovic         basegfx::B2DRange(20.0,20.0,30.0,30.0),
206*d9ee14b8SDamjan Jovanovic         4.0));
207*d9ee14b8SDamjan Jovanovic 
208*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(mpTestShape);
209*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape2);
210*d9ee14b8SDamjan Jovanovic     mpLayerManager->enterAnimationMode(pShape2);
211*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape3);
212*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape4);
213*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape5);
214*d9ee14b8SDamjan Jovanovic 
215*d9ee14b8SDamjan Jovanovic     mpLayerManager->activate( false );
216*d9ee14b8SDamjan Jovanovic     mpLayerManager->update();
217*d9ee14b8SDamjan Jovanovic 
218*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestShape->getNumRenders() == 1 ) << "First shape not rendered";
219*d9ee14b8SDamjan Jovanovic #if RUN_OLD_FAILING_TESTS
220*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape2->getNumRenders() == 1 ) << "Second shape not rendered";
221*d9ee14b8SDamjan Jovanovic #endif
222*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape3->getNumRenders() == 1 ) << "Third shape not rendered";
223*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape4->getNumRenders() == 1 ) << "Fourth shape not rendered";
224*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape5->getNumRenders() == 1 ) << "Fifth shape not rendered";
225*d9ee14b8SDamjan Jovanovic 
226*d9ee14b8SDamjan Jovanovic     mpLayerManager->enterAnimationMode(pShape4);
227*d9ee14b8SDamjan Jovanovic     mpLayerManager->update();
228*d9ee14b8SDamjan Jovanovic 
229*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestShape->getNumRenders() == 1 ) << "First shape not rendered";
230*d9ee14b8SDamjan Jovanovic #if RUN_OLD_FAILING_TESTS
231*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape2->getNumRenders() == 1 ) << "Second shape not rendered";
232*d9ee14b8SDamjan Jovanovic #endif
233*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape3->getNumRenders() == 2 ) << "Third shape not rendered";
234*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape4->getNumRenders() == 2 ) << "Fourth shape not rendered";
235*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape5->getNumRenders() == 2 ) << "Fifth shape not rendered";
236*d9ee14b8SDamjan Jovanovic 
237*d9ee14b8SDamjan Jovanovic     mpLayerManager->leaveAnimationMode(pShape2);
238*d9ee14b8SDamjan Jovanovic     mpLayerManager->leaveAnimationMode(pShape4);
239*d9ee14b8SDamjan Jovanovic     mpLayerManager->update();
240*d9ee14b8SDamjan Jovanovic 
241*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestShape->getNumRenders() == 2 ) << "First shape not rendered #2";
242*d9ee14b8SDamjan Jovanovic #if RUN_OLD_FAILING_TESTS
243*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape2->getNumRenders() == 2 ) << "Second shape not rendered #2"
244*d9ee14b8SDamjan Jovanovic #endif
245*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape3->getNumRenders() == 3 ) << "Third shape not rendered #2";
246*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape4->getNumRenders() == 3 ) << "Fourth shape not rendered #2";
247*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape5->getNumRenders() == 3 ) << "Fifth shape not rendered #2";
248*d9ee14b8SDamjan Jovanovic }
249*d9ee14b8SDamjan Jovanovic 
TEST_F(LayerManagerTest,testRefCounting)250*d9ee14b8SDamjan Jovanovic TEST_F(LayerManagerTest, testRefCounting)
251*d9ee14b8SDamjan Jovanovic {
252*d9ee14b8SDamjan Jovanovic     TestShapeSharedPtr pShape2( createTestShape(
253*d9ee14b8SDamjan Jovanovic         basegfx::B2DRange(0.0,0.0,10.0,10.0),
254*d9ee14b8SDamjan Jovanovic         2.0));
255*d9ee14b8SDamjan Jovanovic     TestShapeSharedPtr pShape3( createTestShape(
256*d9ee14b8SDamjan Jovanovic         basegfx::B2DRange(0.0,0.0,10.0,10.0),
257*d9ee14b8SDamjan Jovanovic         3.0));
258*d9ee14b8SDamjan Jovanovic     TestShapeSharedPtr pShape4( createTestShape(
259*d9ee14b8SDamjan Jovanovic         basegfx::B2DRange(0.0,0.0,10.0,10.0),
260*d9ee14b8SDamjan Jovanovic         4.0));
261*d9ee14b8SDamjan Jovanovic 
262*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(mpTestShape);
263*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape2);
264*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape3);
265*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape4);
266*d9ee14b8SDamjan Jovanovic 
267*d9ee14b8SDamjan Jovanovic     mpLayerManager->removeShape(mpTestShape);
268*d9ee14b8SDamjan Jovanovic     mpLayerManager->removeShape(pShape2);
269*d9ee14b8SDamjan Jovanovic     mpLayerManager->removeShape(pShape3);
270*d9ee14b8SDamjan Jovanovic     mpLayerManager->removeShape(pShape4);
271*d9ee14b8SDamjan Jovanovic 
272*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestShape.use_count() == 1 ) << "Shape 1 must have refcount of 1";
273*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape2.use_count() == 1 ) << "Shape 2 must have refcount of 1";
274*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape3.use_count() == 1 ) << "Shape 3 must have refcount of 1";
275*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape4.use_count() == 1 ) << "Shape 4 must have refcount of 1";
276*d9ee14b8SDamjan Jovanovic 
277*d9ee14b8SDamjan Jovanovic 
278*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(mpTestShape);
279*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape2);
280*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape3);
281*d9ee14b8SDamjan Jovanovic     mpLayerManager->addShape(pShape4);
282*d9ee14b8SDamjan Jovanovic 
283*d9ee14b8SDamjan Jovanovic     mpLayerManager->activate( false );
284*d9ee14b8SDamjan Jovanovic     mpLayerManager->update();
285*d9ee14b8SDamjan Jovanovic 
286*d9ee14b8SDamjan Jovanovic     mpLayerManager->removeShape(mpTestShape);
287*d9ee14b8SDamjan Jovanovic     mpLayerManager->removeShape(pShape2);
288*d9ee14b8SDamjan Jovanovic     mpLayerManager->removeShape(pShape3);
289*d9ee14b8SDamjan Jovanovic     mpLayerManager->removeShape(pShape4);
290*d9ee14b8SDamjan Jovanovic 
291*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestShape.use_count() == 1 ) << "Shape 1 must have refcount of 1";
292*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape2.use_count() == 1 ) << "Shape 2 must have refcount of 1";
293*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape3.use_count() == 1 ) << "Shape 3 must have refcount of 1";
294*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( pShape4.use_count() == 1 ) << "Shape 4 must have refcount of 1";
295*d9ee14b8SDamjan Jovanovic 
296*d9ee14b8SDamjan Jovanovic     maViews.removeView(mpTestView);
297*d9ee14b8SDamjan Jovanovic     mpLayerManager->viewRemoved(mpTestView);
298*d9ee14b8SDamjan Jovanovic     ASSERT_TRUE( mpTestView.use_count() == 1 ) << "View must have refcount of 1";
299*d9ee14b8SDamjan Jovanovic }
300cdf0e10cSrcweir 
301cdf0e10cSrcweir 
302cdf0e10cSrcweir } // namespace
303cdf0e10cSrcweir 
304cdf0e10cSrcweir 
305