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)