From c56977e6d25453496116bc08c35212b0e13ef474 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Tue, 29 Sep 2015 07:51:48 +0000 Subject: [PATCH] Add test which shows that bug 46515 is fixed since some time already. git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1705807 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/hssf/usermodel/TestBugs.java | 44 ++++++++++++++++++ test-data/spreadsheet/46515.xls | Bin 0 -> 16896 bytes 2 files changed, 44 insertions(+) create mode 100644 test-data/spreadsheet/46515.xls diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java index 37d592f69..b62cae1ef 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java @@ -24,6 +24,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; @@ -31,6 +32,7 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; @@ -39,6 +41,8 @@ import java.util.List; import java.util.Locale; import java.util.TimeZone; +import javax.imageio.ImageIO; + import org.apache.poi.EncryptedDocumentException; import org.apache.poi.hssf.HSSFITestDataProvider; import org.apache.poi.hssf.HSSFTestDataSamples; @@ -75,6 +79,7 @@ import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.util.LocaleUtil; import org.junit.After; +import org.junit.Assume; import org.junit.Ignore; import org.junit.Test; @@ -2930,4 +2935,43 @@ public final class TestBugs extends BaseTestBugzillaIssues { wb.close(); } + + @Test + public void test46515() throws IOException { + Workbook wb = HSSFTestDataSamples.openSampleWorkbook("46515.xls"); + + // Get structure from webservice + String urlString = "http://poi.apache.org/resources/images/project-logo.jpg"; + URL structURL = new URL(urlString); + BufferedImage bimage; + try { + bimage = ImageIO.read(structURL); + } catch (IOException e) { + Assume.assumeNoException("Downloading a jpg from poi.apache.org should work", e); + return; + } + + // Convert BufferedImage to byte[] + ByteArrayOutputStream imageBAOS = new ByteArrayOutputStream(); + ImageIO.write(bimage, "jpeg", imageBAOS); + imageBAOS.flush(); + byte[]imageBytes = imageBAOS.toByteArray(); + imageBAOS.close(); + + // Pop structure into Structure HSSFSheet + int pict = wb.addPicture(imageBytes, HSSFWorkbook.PICTURE_TYPE_JPEG); + Sheet sheet = wb.getSheet("Structure"); + assertNotNull("Did not find sheet", sheet); + HSSFPatriarch patriarch = (HSSFPatriarch) sheet.createDrawingPatriarch(); + HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) 1, 1, (short) 10, 22); + anchor.setAnchorType(2); + patriarch.createPicture(anchor, pict); + + // Write out destination file +// FileOutputStream fileOut = new FileOutputStream("/tmp/46515.xls"); +// wb.write(fileOut); +// fileOut.close(); + + wb.close(); + } } diff --git a/test-data/spreadsheet/46515.xls b/test-data/spreadsheet/46515.xls new file mode 100644 index 0000000000000000000000000000000000000000..01c1dfe5179e6656e60610e8703b4d25ab8a8a19 GIT binary patch literal 16896 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 jlf~okmzUeP*mCJGaQ$Vlv5RB&&;PEN_I