File indexing completed on 2024-06-09 04:20:54

0001 /* This file is part of the KDE project
0002    SPDX-FileCopyrightText: 2007 Thorsten Zachmann <zachmann@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 #include "TestPathTool.h"
0007 
0008 #include <QPainterPath>
0009 #include "../KoPathShape.h"
0010 #include "../tools/KoPathTool.h"
0011 #include "../tools/KoPathToolSelection.h"
0012 #include "../KoPathPointData.h"
0013 #include <MockShapes.h>
0014 #include <simpletest.h>
0015 
0016 void TestPathTool::koPathPointSelection_selectedSegmentsData()
0017 {
0018     KoPathShape path1;
0019     KoPathPoint *point11 = path1.moveTo(QPointF(10, 10));
0020     KoPathPoint *point12 = path1.lineTo(QPointF(20, 10));
0021     KoPathPoint *point13 = path1.lineTo(QPointF(20, 20));
0022     KoPathPoint *point14 = path1.lineTo(QPointF(15, 25));
0023     path1.lineTo(QPointF(10, 20));
0024     KoPathPoint *point16 = path1.moveTo(QPointF(30, 30));
0025     path1.lineTo(QPointF(40, 30));
0026     KoPathPoint *point18 = path1.lineTo(QPointF(40, 40));
0027     KoPathPoint *point19 = path1.curveTo(QPointF(40, 45), QPointF(30, 45), QPointF(30, 40));
0028     path1.close();
0029 
0030     KoPathShape path2;
0031     KoPathPoint *point21 = path2.moveTo(QPointF(100, 100));
0032     KoPathPoint *point22 = path2.lineTo(QPointF(110, 100));
0033     KoPathPoint *point23 = path2.lineTo(QPointF(110, 110));
0034 
0035     KoPathShape path3;
0036     KoPathPoint *point31 = path3.moveTo(QPointF(200, 220));
0037     KoPathPoint *point32 = path3.lineTo(QPointF(210, 220));
0038     KoPathPoint *point33 = path3.lineTo(QPointF(220, 220));
0039     path3.close();
0040 
0041     MockCanvas canvas;
0042     KoPathTool tool(&canvas);
0043     QVERIFY(1 == 1);
0044     KoPathToolSelection pps(&tool);
0045     pps.add(point11, false);
0046     pps.add(point12, false);
0047     pps.add(point13, false);
0048     pps.add(point14, false);
0049     pps.add(point16, false);
0050     pps.add(point18, false);
0051     pps.add(point19, false);
0052     pps.add(point21, false);
0053     pps.add(point22, false);
0054     pps.add(point23, false);
0055     pps.add(point31, false);
0056     pps.add(point32, false);
0057     pps.add(point33, false);
0058 
0059     QList<KoPathPointData> pd2;
0060     pd2.append(KoPathPointData(&path1, path1.pathPointIndex(point11)));
0061     pd2.append(KoPathPointData(&path1, path1.pathPointIndex(point12)));
0062     pd2.append(KoPathPointData(&path1, path1.pathPointIndex(point13)));
0063     pd2.append(KoPathPointData(&path1, path1.pathPointIndex(point18)));
0064     pd2.append(KoPathPointData(&path1, path1.pathPointIndex(point19)));
0065     pd2.append(KoPathPointData(&path2, path2.pathPointIndex(point21)));
0066     pd2.append(KoPathPointData(&path2, path2.pathPointIndex(point22)));
0067     pd2.append(KoPathPointData(&path3, path3.pathPointIndex(point31)));
0068     pd2.append(KoPathPointData(&path3, path3.pathPointIndex(point32)));
0069     pd2.append(KoPathPointData(&path3, path3.pathPointIndex(point33)));
0070 
0071     std::sort(pd2.begin(), pd2.end());
0072 
0073     QList<KoPathPointData> pd1(pps.selectedSegmentsData());
0074     QVERIFY(pd1 == pd2);
0075 }
0076 
0077 
0078 SIMPLE_TEST_MAIN(TestPathTool)