source: josm/test/functional/NodeTest.java@ 297

Last change on this file since 297 was 284, checked in by imi, 17 years ago
  • added some functional GUI tests
File size: 2.8 KB
Line 
1import java.util.Iterator;
2
3import org.openstreetmap.josm.Main;
4import org.openstreetmap.josm.data.osm.Node;
5import org.openstreetmap.josm.data.osm.Segment;
6import org.openstreetmap.josm.data.osm.Way;
7
8import framework.FunctionalTestCase;
9
10public class NodeTest extends FunctionalTestCase {
11
12 public void test() throws Exception {
13 key("ctrl-n");
14 assertNotNull(Main.map);
15
16 key("n");
17 click(100,500);
18 assertEquals(1, Main.ds.nodes.size());
19 assertEquals(1, Main.ds.getSelected().size());
20 assertEquals(Main.ds.nodes.iterator().next(), Main.ds.getSelected().iterator().next());
21
22 key("d");
23 assertEquals(0, Main.ds.getSelected().size());
24 assertEquals(0, Main.ds.allNonDeletedPrimitives().size());
25
26 key("ctrl-z", "n");
27 click(200,500);
28 key("g");
29 drag(200,500,100,500);
30 key("n","shift-n");
31 click(150,500);
32 assertEquals(3, Main.ds.nodes.size());
33 assertEquals(2, Main.ds.segments.size());
34 assertEquals(1, Main.ds.getSelected().size());
35
36 Node n = (Node)Main.ds.getSelected().iterator().next();
37 Iterator<Segment> segIt = Main.ds.segments.iterator();
38 Segment s1 = segIt.next();
39 Segment s2 = segIt.next();
40 if (s1.from == n)
41 assertSame(n, s2.to);
42 else
43 assertSame(n, s2.from);
44
45 key("shift-n");
46 click(150,550);
47 checkSegments(n);
48
49 key("ctrl-z", "w");
50 click(125,500);
51 click(175,500);
52 assertEquals(1, Main.ds.ways.size());
53 key("s");
54 click(150,500);
55 key("n");
56 click(150,550);
57 assertEquals(1, Main.ds.ways.size());
58 Way way = Main.ds.ways.iterator().next();
59 assertEquals("segment not added to middle of way", 2, way.segments.size());
60 checkSegments(n);
61
62 key("ctrl-z", "s");
63 assertEquals(2, Main.ds.segments.size());
64 segIt = Main.ds.segments.iterator();
65 s1 = segIt.next();
66 s2 = segIt.next();
67 click(100,500);
68 key("n");
69 click(100,550);
70 assertEquals(1, Main.ds.ways.size());
71 assertSame(way, Main.ds.ways.iterator().next());
72 assertEquals(3, way.segments.size());
73 segIt = way.segments.iterator();
74 assertSame(s1, segIt.next());
75 assertSame(s2, segIt.next());
76 assertSame(s2.to, segIt.next().from);
77
78 key("ctrl-z", "s");
79 click(200,500);
80 key("n");
81 click(200,550);
82 assertEquals(1, Main.ds.ways.size());
83 assertSame(way, Main.ds.ways.iterator().next());
84 segIt = way.segments.iterator();
85 assertSame(s1.from, segIt.next().to);
86 assertSame(s1, segIt.next());
87 assertSame(s2, segIt.next());
88 }
89
90 private void checkSegments(Node n) {
91 assertEquals(3, Main.ds.segments.size());
92 assertEquals(4, Main.ds.nodes.size());
93
94 Iterator<Segment> segIt = Main.ds.segments.iterator();
95 Segment s1 = segIt.next();
96 Segment s2 = segIt.next();
97 Segment s3 = segIt.next();
98 if (s1.to == n) {
99 assertSame(n, s2.from);
100 assertSame(n, s3.from);
101 } else if (s2.to == n) {
102 assertSame(n, s1.from);
103 assertSame(n, s3.from);
104 } else {
105 assertSame(n, s1.from);
106 assertSame(n, s2.from);
107 }
108 }
109}
Note: See TracBrowser for help on using the repository browser.