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

Last change on this file since 10103 was 9231, checked in by Don-vip, 8 years ago

javadoc update

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain
File size: 3.2 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 @Override
33 public void actionPerformed(ActionEvent e, Map<String, Object> parameters) {
34 // Do nothing
35 }
36
37 @Override
38 public List<ActionParameter<?>> getActionParameters() {
39 List<ActionParameter<?>> result = new ArrayList<>();
40 result.add(new StringActionParameter("param1"));
41 result.add(new StringActionParameter("param2"));
42 return result;
43 }
44
45 @Override
46 public void actionPerformed(ActionEvent e) {
47 // Do nothing
48 }
49 }
50
51 private void checkAction(ActionDefinition a, Object... params) {
52 Map<String, Object> expected = new HashMap<>();
53 for (int i = 0; i < params.length; i += 2) {
54 expected.put((String) params[i], params[i+1]);
55 }
56 Assert.assertEquals(expected, a.getParameters());
57 }
58
59 @Test
60 public void test1() {
61 Map<String, Action> actions = new HashMap<>();
62 actions.put("action", new TestAction());
63 ActionParser parser = new ActionParser(actions);
64 checkAction(parser.loadAction("action(param1=value1)"), "param1", "value1");
65 checkAction(parser.loadAction("action(param1=value1,param2=2)"), "param1", "value1", "param2", "2");
66 checkAction(parser.loadAction("action(param1=value1,param2=2\\(\\=\\,\\\\)"), "param1", "value1", "param2", "2(=,\\");
67 checkAction(parser.loadAction("action(param1=value1,"), "param1", "value1");
68 checkAction(parser.loadAction("action(param1=value1"), "param1", "value1");
69 checkAction(parser.loadAction("action(param1="));
70 checkAction(parser.loadAction("action(param1"));
71 checkAction(parser.loadAction("action("));
72 checkAction(parser.loadAction("action"));
73 checkAction(parser.loadAction("action(uknownParam=aa)"));
74
75 Assert.assertEquals("action(param1=value1,param2=value2)",
76 parser.saveAction(parser.loadAction("action(param1=value1,param2=value2)")));
77 Assert.assertEquals("action(param1=value1,param2=)",
78 parser.saveAction(parser.loadAction("action(param1=value1)")));
79 Assert.assertEquals("action(param1=value1,param2=2\\(\\=\\,\\\\)",
80 parser.saveAction(parser.loadAction("action(param1=value1,param2=2\\(\\=\\,\\\\)")));
81 }
82}
Note: See TracBrowser for help on using the repository browser.