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

Aller à la documentation de ce fichier.
00001 #include "TestSelection.h"
00002 #include "MockShapes.h"
00003 
00004 #include <KoSelection.h>
00005 #include <kdebug.h>
00006 
00007 void TestSelection::testSelectedShapes() {
00008     KoSelection selection;
00009     MockShape shape1;
00010     MockShape shape2;
00011     MockShape shape3;
00012 
00013     QCOMPARE( selection.count(), 0);
00014     QCOMPARE( selection.selectedShapes().count(), 0);
00015     selection.select(&shape1);
00016     QCOMPARE( selection.count(), 1);
00017     QCOMPARE( selection.selectedShapes(KoFlake::FullSelection).count(), 1);
00018     QCOMPARE( selection.selectedShapes(KoFlake::StrippedSelection).count(), 1);
00019     QCOMPARE( selection.selectedShapes(KoFlake::TopLevelSelection).count(), 1);
00020 
00021     selection.select(&shape1); // same one.
00022     QCOMPARE( selection.count(), 1);
00023     QCOMPARE( selection.selectedShapes(KoFlake::FullSelection).count(), 1);
00024     QCOMPARE( selection.selectedShapes(KoFlake::StrippedSelection).count(), 1);
00025     QCOMPARE( selection.selectedShapes(KoFlake::TopLevelSelection).count(), 1);
00026 
00027     selection.select(&shape2);
00028     selection.select(&shape3);
00029     QCOMPARE( selection.count(), 3);
00030     QCOMPARE( selection.selectedShapes(KoFlake::FullSelection).count(), 3);
00031     QCOMPARE( selection.selectedShapes(KoFlake::StrippedSelection).count(), 3);
00032     QCOMPARE( selection.selectedShapes(KoFlake::TopLevelSelection).count(), 3);
00033 
00034     MockGroup group1;
00035     group1.addChild(&shape1);
00036     group1.addChild(&shape2);
00037     selection.select(&group1);
00038     QCOMPARE( selection.count(), 4);
00039     // Stripped returns no groups, so simply all 3 shapes
00040     QCOMPARE( selection.selectedShapes(KoFlake::FullSelection).count(), 3);
00041     // stripped returns no groups; so simply all shapes.
00042     QCOMPARE( selection.selectedShapes(KoFlake::StrippedSelection).count(), 3);
00043     // toplevel returns shape3 and group1
00044     QCOMPARE( selection.selectedShapes(KoFlake::TopLevelSelection).count(), 2);
00045 
00046     MockGroup group2;
00047     group2.addChild(&shape3);
00048     group2.addChild(&group1);
00049     selection.select(&group2);
00050     QCOMPARE( selection.count(), 5);
00051     // Stripped returns no groups, so simply all 3 shapes
00052     QCOMPARE( selection.selectedShapes(KoFlake::FullSelection).count(), 3);
00053     // Stripped returns no groups, so simply all 3 shapes
00054     QCOMPARE( selection.selectedShapes(KoFlake::StrippedSelection).count(), 3);
00055     // toplevel returns only group2
00056     QCOMPARE( selection.selectedShapes(KoFlake::TopLevelSelection).count(), 1);
00057 
00058 
00059     group1.removeChild(&shape1);
00060     group1.removeChild(&shape2);
00061     MockContainer container;
00062     container.addChild(&shape1);
00063     container.addChild(&shape2);
00064     selection.select(&container);
00065     QCOMPARE( selection.count(), 6);
00066     // Stripped returns no groups, so simply all 3 shapes + container
00067     QCOMPARE( selection.selectedShapes(KoFlake::FullSelection).count(), 4);
00068     // Stripped returns no groups, and no children of a container. So; container + shape3
00069     QCOMPARE( selection.selectedShapes(KoFlake::StrippedSelection).count(), 2);
00070     // toplevel returns only group2 + container
00071     QCOMPARE( selection.selectedShapes(KoFlake::TopLevelSelection).count(), 2);
00072 }
00073 
00074 QTEST_MAIN(TestSelection)
00075 #include "TestSelection.moc"

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