@Test public void testUnnamedComponent() { MyComponent a = new MyComponent(null, "a"); MyComponent myComponent = new MyComponent(a, null); MyComponent myComponent2 = new MyComponent(a, null); namingStrategy.setTopLevelComponent(a, true); assertEquals("TestMarathonNamingStrategy$MyComponent", namingStrategy.getName(myComponent)); assertEquals("TestMarathonNamingStrategy$MyComponent1", namingStrategy.getName(myComponent2)); }
@Test public void testSimpleNames() { MyComponent a = new MyComponent(null, "a"); MyComponent b = new MyComponent(a, "b"); MyComponent c = new MyComponent(b, "c"); namingStrategy.setTopLevelComponent(a, true); assertEquals("a", namingStrategy.getName(a)); assertEquals("b", namingStrategy.getName(b)); assertEquals("c", namingStrategy.getName(c)); }
@Test public void testRecursive() { MyComponent a = new MyComponent(null, "a"); MyComponent a2 = new MyComponent(a, "a"); MyComponent a3 = new MyComponent(a2, "a"); MyComponent a4 = new MyComponent(a2, "a"); namingStrategy.setTopLevelComponent(a, true); assertEquals("a", namingStrategy.getName(a)); assertEquals("a1", namingStrategy.getName(a2)); assertEquals("a2", namingStrategy.getName(a3)); assertEquals("a3", namingStrategy.getName(a4)); }
@Test public void testNamesWithParentheses() { MyComponent a = new MyComponent(null, "a"); MyComponent b = new MyComponent(a, "b()"); MyComponent c = new MyComponent(b, "c#"); namingStrategy.setTopLevelComponent(a, true); assertEquals("a", namingStrategy.getName(a)); assertEquals("b#{#}", namingStrategy.getName(b)); assertEquals("c##", namingStrategy.getName(c)); assertSame(a, namingStrategy.getComponent("a", ComponentFinder.getRetryCount(), false)); assertSame(b, namingStrategy.getComponent("b#{#}", ComponentFinder.getRetryCount(), false)); }
@Test public void testAddingParentsForUniqueness() { MyComponent a = new MyComponent(null, "a"); MyComponent b = new MyComponent(a, "b"); MyComponent c = new MyComponent(b, "c"); MyComponent d = new MyComponent(a, "d"); MyComponent c2 = new MyComponent(d, "c"); MyComponent c3 = new MyComponent(d, "c"); namingStrategy.setTopLevelComponent(a, true); assertEquals("c", namingStrategy.getName(c)); assertEquals("c1", namingStrategy.getName(c2)); assertEquals("c2", namingStrategy.getName(c3)); }
@Test public void testButtonNameDefaultingToButtonText() { MyComponent a = new MyComponent(null, "a"); JButton button = new JButton("text"); a.add(button); namingStrategy.setTopLevelComponent(a, true); assertEquals("text", namingStrategy.getName(button)); }
@Test public void testLabeledByProperty() { MyComponent a = new MyComponent(null, "a"); JLabel label = new JLabel("some text"); JTextField field = new JTextField(); a.add(field); label.setLabelFor(field); assertSame(label, field.getClientProperty("labeledBy")); namingStrategy.setTopLevelComponent(a, true); assertEquals("some text", namingStrategy.getName(field)); }
@Test public void testFieldNameWhenTheContainerIsDerived() { namingStrategy.setUseFieldNames(true); JTextField field = new JTextField(); MyMyComponent a = new MyMyComponent(null, "a", field); a.add(field); namingStrategy.setTopLevelComponent(a, true); try { assertEquals("fTextField", namingStrategy.getName(field)); } finally { namingStrategy.setUseFieldNames(false); } }
@Test public void testHierarchicalComponentView() { MyComponent a = new MyComponent(null, "a"); MyComponent b = new MyComponent(a, "b"); new MyComponent(b, "c"); new MyComponent(a, "d"); namingStrategy.setTopLevelComponent(a, true); namingStrategy.getName(a); String expected = "[net.sourceforge.marathon.component.TestMarathonNamingStrategy$MyComponent(a)]\n" + " [net.sourceforge.marathon.component.TestMarathonNamingStrategy$MyComponent(b)]\n" + " [net.sourceforge.marathon.component.TestMarathonNamingStrategy$MyComponent(d)]\n" + " [net.sourceforge.marathon.component.TestMarathonNamingStrategy$MyComponent(c)]\n"; assertEquals(expected, namingStrategy.getVisibleComponentNames()); }