F:/KPlato/koffice/libs/flake/tests/TestShapeAt.cpp

Aller à la documentation de ce fichier.
00001 #include "TestShapeAt.h"
00002 #include "MockShapes.h"
00003 
00004 #include <kdebug.h>
00005 #include <KoShapeManager.h>
00006 #include <KoSelection.h>
00007 
00008 void TestShapeAt::test() {
00009     MockShape shape1;
00010     MockShape shape2;
00011     MockShape shape3;
00012 
00013     MockCanvas canvas;
00014     KoShapeManager manager(&canvas);
00015     shape1.setPosition(QPointF(100, 100));
00016     shape1.resize(QSizeF(50, 50));
00017     shape1.setZIndex(0);
00018     manager.add(&shape1);
00019 
00020     QVERIFY(manager.shapeAt(QPointF(90, 90)) == 0);
00021     QVERIFY(manager.shapeAt(QPointF(110, 140)) != 0);
00022     QVERIFY(manager.shapeAt(QPointF(100, 100)) != 0);
00023     QVERIFY(manager.shapeAt(QPointF(100, 100), KoFlake::Selected) == 0);
00024     QVERIFY(manager.shapeAt(QPointF(100, 100), KoFlake::Unselected) != 0 );
00025     QVERIFY(manager.shapeAt(QPointF(100, 100), KoFlake::NextUnselected) != 0 );
00026 
00027     shape2.setPosition(QPointF(80, 80));
00028     shape2.resize(QSizeF(50, 50));
00029     shape2.setZIndex(1);
00030     manager.add(&shape2);
00031 
00032     QVERIFY(manager.shapeAt(QPointF(200, 200)) == 0);
00033     QCOMPARE(manager.shapeAt(QPointF(90, 90)), &shape2);
00034     QCOMPARE(manager.shapeAt(QPointF(105, 105)), &shape2); // the one on top
00035     KoShape *dummy = 0;
00036     QCOMPARE(manager.shapeAt(QPointF(105, 105), KoFlake::Selected), dummy);
00037     QCOMPARE(manager.shapeAt(QPointF(105, 105), KoFlake::Unselected), &shape2); // the one on top
00038     QCOMPARE(manager.shapeAt(QPointF(105, 105), KoFlake::NextUnselected), &shape2);
00039 
00040     manager.selection()->select(&shape2);
00041 
00042     QVERIFY(manager.shapeAt(QPointF(200, 200)) == 0);
00043     QCOMPARE(manager.shapeAt(QPointF(90, 90)), &shape2);
00044     QCOMPARE(manager.shapeAt(QPointF(105, 105)), &shape2); // the one on top
00045     QCOMPARE(manager.shapeAt(QPointF(105, 105), KoFlake::Selected), &shape2);
00046     QCOMPARE(manager.shapeAt(QPointF(105, 105), KoFlake::Unselected), &shape1);
00047     QCOMPARE(manager.shapeAt(QPointF(105, 105), KoFlake::NextUnselected), &shape1);
00048 
00049     shape3.setPosition(QPointF(120, 80));
00050     shape3.resize(QSizeF(50, 50));
00051     shape3.setZIndex(2);
00052     manager.add(&shape3);
00053 
00054     QVERIFY(manager.shapeAt(QPointF(200, 200)) == 0);
00055     QCOMPARE(manager.shapeAt(QPointF(90, 90)), &shape2);
00056 
00057     QVERIFY(manager.shapeAt(QPointF(200, 200)) == 0);
00058     QCOMPARE(manager.shapeAt(QPointF(90, 90)), &shape2);
00059     QCOMPARE(manager.shapeAt(QPointF(105, 145)), &shape1);
00060     QCOMPARE(manager.shapeAt(QPointF(165, 90)), &shape3);
00061 
00062     QCOMPARE(manager.shapeAt(QPointF(125, 105)), &shape3); // the one on top
00063     QCOMPARE(manager.shapeAt(QPointF(105, 105), KoFlake::Selected), &shape2);
00064     QCOMPARE(manager.shapeAt(QPointF(105, 105), KoFlake::Unselected), &shape1);
00065     QCOMPARE(manager.shapeAt(QPointF(105, 105), KoFlake::NextUnselected), &shape1);
00066 
00067     QCOMPARE(manager.shapeAt(QPointF(125, 105), KoFlake::Selected), &shape2);
00068     QCOMPARE(manager.shapeAt(QPointF(125, 105), KoFlake::Unselected), &shape3);
00069     QCOMPARE(manager.shapeAt(QPointF(125, 105), KoFlake::NextUnselected), &shape1);
00070 
00071     // test omitHiddenShapes
00072     QCOMPARE(manager.shapeAt(QPointF(125, 105), KoFlake::Selected, true), &shape2);
00073     QCOMPARE(manager.shapeAt(QPointF(125, 105), KoFlake::Unselected, true), &shape3);
00074     QCOMPARE(manager.shapeAt(QPointF(125, 105), KoFlake::NextUnselected, true), &shape1);
00075 
00076     shape3.setVisible(false);
00077     QCOMPARE(manager.shapeAt(QPointF(125, 105), KoFlake::Selected, true), &shape2);
00078     QCOMPARE(manager.shapeAt(QPointF(125, 105), KoFlake::Unselected, true), &shape1);
00079     QCOMPARE(manager.shapeAt(QPointF(125, 105), KoFlake::NextUnselected, true), &shape1);
00080 }
00081 
00082 QTEST_MAIN(TestShapeAt)
00083 #include "TestShapeAt.moc"

Généré le Wed Nov 22 23:41:00 2006 pour KPlato par  doxygen 1.5.1-p1