|
@@ -3,7 +3,9 @@ package org.leumasjaffe.recipe.view;
|
|
|
import static org.hamcrest.MatcherAssert.assertThat;
|
|
import static org.hamcrest.MatcherAssert.assertThat;
|
|
|
import static org.hamcrest.collection.IsArrayWithSize.arrayWithSize;
|
|
import static org.hamcrest.collection.IsArrayWithSize.arrayWithSize;
|
|
|
import static org.mockito.Mockito.*;
|
|
import static org.mockito.Mockito.*;
|
|
|
|
|
+import static org.leumasjaffe.mock.ListenerInjector.*;
|
|
|
|
|
|
|
|
|
|
+import java.awt.event.FocusListener;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -32,14 +34,24 @@ class AutoGrowPanelTest extends SwingTestCase {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public void addGrowShrinkListener(DocumentListener dl) {
|
|
|
|
|
|
|
+ public void addGrowListener(DocumentListener dl) {
|
|
|
super.getDocument().addDocumentListener(dl);
|
|
super.getDocument().addDocumentListener(dl);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public void removeGrowShrinkListener(DocumentListener dl) {
|
|
|
|
|
|
|
+ public void removeGrowListener(DocumentListener dl) {
|
|
|
super.getDocument().removeDocumentListener(dl);
|
|
super.getDocument().removeDocumentListener(dl);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void addShrinkListener(FocusListener fl) {
|
|
|
|
|
+ super.addFocusListener(fl);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void removeShrinkListener(FocusListener fl) {
|
|
|
|
|
+ super.removeFocusListener(fl);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Mock Consumer<Boolean> callback;
|
|
@Mock Consumer<Boolean> callback;
|
|
@@ -140,27 +152,29 @@ class AutoGrowPanelTest extends SwingTestCase {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
@Test
|
|
|
- void testEmptyingContentClearsPanel() {
|
|
|
|
|
|
|
+ void testLosingFocusWithoutContentClearsPanel() {
|
|
|
final MockComponent mock = spy(new MockComponent("A"));
|
|
final MockComponent mock = spy(new MockComponent("A"));
|
|
|
|
|
|
|
|
AutoGrowPanel<MockComponent, MockComponent> panel = create(mock);
|
|
AutoGrowPanel<MockComponent, MockComponent> panel = create(mock);
|
|
|
getTestFrame().add(panel);
|
|
getTestFrame().add(panel);
|
|
|
mock.setText("");
|
|
mock.setText("");
|
|
|
-
|
|
|
|
|
|
|
+ injectFocusLost(mock, "ShrinkOnEmpty");
|
|
|
|
|
+
|
|
|
assertThat(panel.getComponents(), arrayWithSize(1));
|
|
assertThat(panel.getComponents(), arrayWithSize(1));
|
|
|
verify(shared, times(1)).remove(0);
|
|
verify(shared, times(1)).remove(0);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
@Test
|
|
|
- void testEmptyingContentAdjustsAllPositions() {
|
|
|
|
|
|
|
+ void testLosingFocusWithoutContentAdjustsAllPositions() {
|
|
|
final MockComponent mock = spy(new MockComponent("A"));
|
|
final MockComponent mock = spy(new MockComponent("A"));
|
|
|
|
|
|
|
|
@SuppressWarnings("unused")
|
|
@SuppressWarnings("unused")
|
|
|
AutoGrowPanel<MockComponent, MockComponent> panel = create(mock);
|
|
AutoGrowPanel<MockComponent, MockComponent> panel = create(mock);
|
|
|
|
|
|
|
|
mock.setText("");
|
|
mock.setText("");
|
|
|
-
|
|
|
|
|
|
|
+ injectFocusLost(mock, "ShrinkOnEmpty");
|
|
|
|
|
+
|
|
|
verify(internal.get(0), times(2)).setListPosition(0);
|
|
verify(internal.get(0), times(2)).setListPosition(0);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -182,7 +196,7 @@ class AutoGrowPanelTest extends SwingTestCase {
|
|
|
|
|
|
|
|
AutoGrowPanel<MockComponent, MockComponent> panel = create(mock);
|
|
AutoGrowPanel<MockComponent, MockComponent> panel = create(mock);
|
|
|
getTestFrame().add(panel);
|
|
getTestFrame().add(panel);
|
|
|
- mock.getDocument().insertString(0, "B", null);
|
|
|
|
|
|
|
+ mock.setText("B");
|
|
|
|
|
|
|
|
assertThat(panel.getComponents(), arrayWithSize(2));
|
|
assertThat(panel.getComponents(), arrayWithSize(2));
|
|
|
verify(shared, never()).remove(anyInt());
|
|
verify(shared, never()).remove(anyInt());
|
|
@@ -199,6 +213,7 @@ class AutoGrowPanelTest extends SwingTestCase {
|
|
|
verify(callback).accept(true);
|
|
verify(callback).accept(true);
|
|
|
|
|
|
|
|
internal.get(0).setText("");
|
|
internal.get(0).setText("");
|
|
|
|
|
+ injectFocusLost(internal.get(0), "ShrinkOnEmpty");
|
|
|
verify(callback).accept(false);
|
|
verify(callback).accept(false);
|
|
|
}
|
|
}
|
|
|
|
|
|