Index: modules/swing/src/test/api/java/common/javax/swing/text/CompositeViewTest.java =================================================================== --- modules/swing/src/test/api/java/common/javax/swing/text/CompositeViewTest.java (revision 474367) +++ modules/swing/src/test/api/java/common/javax/swing/text/CompositeViewTest.java (working copy) @@ -56,14 +56,17 @@ super(element); } + @Override protected void childAllocation(final int index, final Rectangle rc) { } + @Override protected View getViewAtPoint(final int x, final int y, final Rectangle shape) { return null; } + @Override protected boolean isAfter(final int x, final int y, final Rectangle rc) { boolean result; @@ -77,6 +80,7 @@ return result; } + @Override protected boolean isBefore(final int x, final int y, final Rectangle rc) { boolean result; @@ -90,9 +94,11 @@ return result; } + @Override public void paint(final Graphics g, final Shape shape) { } + @Override public float getPreferredSpan(final int axis) { return 0; } @@ -101,6 +107,7 @@ /* * @see TestCase#setUp() */ + @Override protected void setUp() throws Exception { super.setUp(); doc = new PlainDocument(); @@ -139,6 +146,7 @@ final Params params = new Params(); view = new CompositeViewImpl(root) { + @Override protected void childAllocation(final int index, final Rectangle rc) { params.called = true; @@ -229,6 +237,7 @@ public void testSetParent() { view = new CompositeViewImpl(root) { + @Override protected void loadChildren(final ViewFactory factory) { childrenLoaded = true; assertSame(getViewFactory(), factory); @@ -236,6 +245,7 @@ } }; View parent = new PlainView(root.getElement(0)) { + @Override public ViewFactory getViewFactory() { return factory; } @@ -255,6 +265,7 @@ public void testSetParentNull() throws Exception { view = new CompositeViewImpl(root) { + @Override protected void loadChildren(final ViewFactory factory) { childrenLoaded = true; assertSame(getViewFactory(), factory); @@ -269,6 +280,7 @@ public void testSetParentNoViewFactory() throws Exception { view = new CompositeViewImpl(root) { + @Override protected void loadChildren(final ViewFactory factory) { childrenLoaded = true; assertNull(factory); @@ -304,6 +316,58 @@ assertNull(view.getInsideAllocation(null)); } + // Regression test for HARMONY-2189 + public void testGetInsideAllocationOverridden() { + final Marker top = new Marker(); + final Marker left = new Marker(); + final Marker bottom = new Marker(); + final Marker right = new Marker(); + + view = new CompositeViewImpl(root = doc.getDefaultRootElement()) { + @Override + protected short getTopInset() { + top.setOccurred(); + return 12; + } + + @Override + protected short getLeftInset() { + left.setOccurred(); + return 11; + } + + @Override + protected short getBottomInset() { + bottom.setOccurred(); + return 3; + } + + @Override + protected short getRightInset() { + right.setOccurred(); + return 9; + } + }; + view.loadChildren(factory); + + view.setParagraphInsets(getAttributeSet()); + assertFalse(top.isOccurred()); + assertFalse(left.isOccurred()); + assertFalse(bottom.isOccurred()); + assertFalse(right.isOccurred()); + + Rectangle rc = view.getInsideAllocation(new Rectangle(20, 30, 50, 40)); + assertTrue(top.isOccurred()); + assertTrue(left.isOccurred()); + assertTrue(bottom.isOccurred()); + assertTrue(right.isOccurred()); + + assertEquals(20 + 11, rc.x); + assertEquals(30 + 12, rc.y); + assertEquals(50 - 11 - 9, rc.width); + assertEquals(40 - 12 - 3, rc.height); + } + /* * See tests for individual methods namely EastWest and NorthSouth in * class CompositeView_NextNSVisPosTest @@ -322,6 +386,7 @@ boolean isEastWest; boolean isNorthSouth; + @Override protected int getNextEastWestVisualPositionFrom(final int pos, final Position.Bias b, final Shape a, final int direction, final Position.Bias[] biasRet) { @@ -337,6 +402,7 @@ return 0; } + @Override protected int getNextNorthSouthVisualPositionFrom(final int pos, final Position.Bias b, final Shape a, final int direction, final Position.Bias[] biasRet) { @@ -435,6 +501,7 @@ public void testGetViewIndexintBias() { final Marker marker = new Marker(true); view = new CompositeViewImpl(root) { + @Override protected int getViewIndexAtPosition(final int pos) { marker.setOccurred(); modelPosition = pos; @@ -541,6 +608,7 @@ final Marker marker = new Marker(true); view = new CompositeViewImpl(paragraph) { + @Override protected int getViewIndexAtPosition(final int pos) { marker.setOccurred(); modelPosition = pos;