source: josm/trunk/test/unit/org/openstreetmap/josm/gui/preferences/ToolbarPreferencesTest.java@ 8936

Last change on this file since 8936 was 8857, checked in by Don-vip, 9 years ago

improve/cleanup unit tests

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain
File size: 3.1 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.preferences;
3
4import java.awt.event.ActionEvent;
5import java.util.ArrayList;
6import java.util.HashMap;
7import java.util.List;
8import java.util.Map;
9
10import javax.swing.AbstractAction;
11import javax.swing.Action;
12
13import org.junit.Assert;
14import org.junit.Test;
15import org.openstreetmap.josm.actions.ActionParameter;
16import org.openstreetmap.josm.actions.ActionParameter.StringActionParameter;
17import org.openstreetmap.josm.actions.ParameterizedAction;
18import org.openstreetmap.josm.gui.preferences.ToolbarPreferences.ActionDefinition;
19import org.openstreetmap.josm.gui.preferences.ToolbarPreferences.ActionParser;
20
21/**
22 * Unit tests of {@link ToolbarPreferences} class.
23 */
24public class ToolbarPreferencesTest {
25
26 private static class TestAction extends AbstractAction implements ParameterizedAction {
27
28 TestAction() {
29 putValue("toolbar", "action");
30 }
31
32 public void actionPerformed(ActionEvent e, Map<String, Object> parameters) {
33 }
34
35 public List<ActionParameter<?>> getActionParameters() {
36 List<ActionParameter<?>> result = new ArrayList<>();
37 result.add(new StringActionParameter("param1"));
38 result.add(new StringActionParameter("param2"));
39 return result;
40 }
41
42 public void actionPerformed(ActionEvent e) {
43
44 }
45 }
46
47 private void checkAction(ActionDefinition a, Object... params) {
48 Map<String, Object> expected = new HashMap<>();
49 for (int i = 0; i < params.length; i += 2) {
50 expected.put((String) params[i], params[i+1]);
51 }
52 Assert.assertEquals(expected, a.getParameters());
53 }
54
55 @Test
56 public void test1() {
57 Map<String, Action> actions = new HashMap<>();
58 actions.put("action", new TestAction());
59 ActionParser parser = new ActionParser(actions);
60 checkAction(parser.loadAction("action(param1=value1)"), "param1", "value1");
61 checkAction(parser.loadAction("action(param1=value1,param2=2)"), "param1", "value1", "param2", "2");
62 checkAction(parser.loadAction("action(param1=value1,param2=2\\(\\=\\,\\\\)"), "param1", "value1", "param2", "2(=,\\");
63 checkAction(parser.loadAction("action(param1=value1,"), "param1", "value1");
64 checkAction(parser.loadAction("action(param1=value1"), "param1", "value1");
65 checkAction(parser.loadAction("action(param1="));
66 checkAction(parser.loadAction("action(param1"));
67 checkAction(parser.loadAction("action("));
68 checkAction(parser.loadAction("action"));
69 checkAction(parser.loadAction("action(uknownParam=aa)"));
70
71 Assert.assertEquals("action(param1=value1,param2=value2)",
72 parser.saveAction(parser.loadAction("action(param1=value1,param2=value2)")));
73 Assert.assertEquals("action(param1=value1,param2=)",
74 parser.saveAction(parser.loadAction("action(param1=value1)")));
75 Assert.assertEquals("action(param1=value1,param2=2\\(\\=\\,\\\\)",
76 parser.saveAction(parser.loadAction("action(param1=value1,param2=2\\(\\=\\,\\\\)")));
77 }
78}
Note: See TracBrowser for help on using the repository browser.