aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases/org/apache/poi/hssf/usermodel
diff options
context:
space:
mode:
authorYegor Kozlov <yegor@apache.org>2008-02-07 08:56:59 +0000
committerYegor Kozlov <yegor@apache.org>2008-02-07 08:56:59 +0000
commit4ab00acc7cf8a56a22153c84ec203707cd413846 (patch)
tree8c66941a9e915ba84f89505ba945c7d4ff110403 /src/testcases/org/apache/poi/hssf/usermodel
parent766dc98ce36338acc4ad9c21d931c0843994ee40 (diff)
downloadpoi-4ab00acc7cf8a56a22153c84ec203707cd413846.tar.gz
poi-4ab00acc7cf8a56a22153c84ec203707cd413846.zip
support for excel hypelrinks
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@619310 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache/poi/hssf/usermodel')
-rw-r--r--src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java14
-rwxr-xr-xsrc/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java191
2 files changed, 198 insertions, 7 deletions
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java
index 80785ca182..6c604d1b4d 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java
@@ -320,8 +320,8 @@ extends TestCase {
assertEquals("Foo", link.getLabel());
assertEquals("http://poi.apache.org/", link.getAddress());
- assertEquals(4, link.getRow());
- assertEquals(0, link.getColumn());
+ assertEquals(4, link.getFirstRow());
+ assertEquals(0, link.getFirstColumn());
}
/**
@@ -339,16 +339,16 @@ extends TestCase {
assertNotNull(link1);
assertEquals("Foo", link1.getLabel());
assertEquals("http://poi.apache.org/", link1.getAddress());
- assertEquals(4, link1.getRow());
- assertEquals(0, link1.getColumn());
+ assertEquals(4, link1.getFirstRow());
+ assertEquals(0, link1.getFirstColumn());
HSSFCell cell2 = sheet.getRow(8).getCell((short)1);
HSSFHyperlink link2 = cell2.getHyperlink();
assertNotNull(link2);
assertEquals("Bar", link2.getLabel());
- assertEquals("http://poi.apache.org/", link2.getAddress());
- assertEquals(8, link2.getRow());
- assertEquals(1, link2.getColumn());
+ assertEquals("http://poi.apache.org/hssf/", link2.getAddress());
+ assertEquals(8, link2.getFirstRow());
+ assertEquals(1, link2.getFirstColumn());
}
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java
new file mode 100755
index 0000000000..b87899c343
--- /dev/null
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java
@@ -0,0 +1,191 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.poi.hssf.usermodel;
+
+import junit.framework.TestCase;
+
+import java.io.*;
+
+/**
+ * Tests HSSFHyperlink.
+ *
+ * @author Yegor Kozlov
+ */
+public class TestHSSFHyperlink extends TestCase {
+ protected String cwd = System.getProperty("HSSF.testdata.path");
+
+ /**
+ * Test that we can read hyperlinks.
+ */
+ public void testRead() throws Exception {
+
+ FileInputStream is = new FileInputStream(new File(cwd, "HyperlinksOnManySheets.xls"));
+ HSSFWorkbook wb = new HSSFWorkbook(is);
+ is.close();
+
+ HSSFSheet sheet;
+ HSSFCell cell;
+ HSSFHyperlink link;
+
+ sheet = wb.getSheet("WebLinks");
+ cell = sheet.getRow(4).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("POI", link.getLabel());
+ assertEquals("POI", cell.getRichStringCellValue().getString());
+ assertEquals("http://poi.apache.org/", link.getAddress());
+
+ cell = sheet.getRow(8).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("HSSF", link.getLabel());
+ assertEquals("HSSF", cell.getRichStringCellValue().getString());
+ assertEquals("http://poi.apache.org/hssf/", link.getAddress());
+
+ sheet = wb.getSheet("Emails");
+ cell = sheet.getRow(4).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("dev", link.getLabel());
+ assertEquals("dev", cell.getRichStringCellValue().getString());
+ assertEquals("mailto:dev@poi.apache.org", link.getAddress());
+
+ sheet = wb.getSheet("Internal");
+ cell = sheet.getRow(4).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("Link To First Sheet", link.getLabel());
+ assertEquals("Link To First Sheet", cell.getRichStringCellValue().getString());
+ assertEquals("WebLinks!A1", link.getAddress());
+ }
+
+ public void testModify() throws Exception {
+ FileInputStream is = new FileInputStream(new File(cwd, "HyperlinksOnManySheets.xls"));
+ HSSFWorkbook wb = new HSSFWorkbook(is);
+ is.close();
+
+ HSSFSheet sheet;
+ HSSFCell cell;
+ HSSFHyperlink link;
+
+ sheet = wb.getSheet("WebLinks");
+ cell = sheet.getRow(4).getCell((short)0);
+ link = cell.getHyperlink();
+ //modify the link
+ link.setAddress("www.apache.org");
+
+ //serialize and read again
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ wb.write(out);
+
+ wb = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
+ sheet = wb.getSheet("WebLinks");
+ cell = sheet.getRow(4).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("www.apache.org", link.getAddress());
+
+ }
+
+ public void testCreate() throws Exception {
+ HSSFWorkbook wb = new HSSFWorkbook();
+
+ HSSFCell cell;
+ HSSFSheet sheet = wb.createSheet("Hyperlinks");
+
+ //URL
+ cell = sheet.createRow(0).createCell((short)0);
+ cell.setCellValue("URL Link");
+ HSSFHyperlink link = new HSSFHyperlink(HSSFHyperlink.LINK_URL);
+ link.setAddress("http://poi.apache.org/");
+ cell.setHyperlink(link);
+
+ //link to a file in the current directory
+ cell = sheet.createRow(1).createCell((short)0);
+ cell.setCellValue("File Link");
+ link = new HSSFHyperlink(HSSFHyperlink.LINK_FILE);
+ link.setAddress("link1.xls");
+ cell.setHyperlink(link);
+
+ //e-mail link
+ cell = sheet.createRow(2).createCell((short)0);
+ cell.setCellValue("Email Link");
+ link = new HSSFHyperlink(HSSFHyperlink.LINK_EMAIL);
+ //note, if subject contains white spaces, make sure they are url-encoded
+ link.setAddress("mailto:poi@apache.org?subject=Hyperlinks");
+ cell.setHyperlink(link);
+
+ //link to a place in this workbook
+
+ //create a target sheet and cell
+ HSSFSheet sheet2 = wb.createSheet("Target Sheet");
+ sheet2.createRow(0).createCell((short)0).setCellValue("Target Cell");
+
+ cell = sheet.createRow(3).createCell((short)0);
+ cell.setCellValue("Worksheet Link");
+ link = new HSSFHyperlink(HSSFHyperlink.LINK_DOCUMENT);
+ link.setAddress("'Target Sheet'!A1");
+ cell.setHyperlink(link);
+
+ //serialize and read again
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ wb.write(out);
+
+ wb = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
+ sheet = wb.getSheet("Hyperlinks");
+ cell = sheet.getRow(0).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("http://poi.apache.org/", link.getAddress());
+
+ cell = sheet.getRow(1).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("link1.xls", link.getAddress());
+
+ cell = sheet.getRow(2).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("mailto:poi@apache.org?subject=Hyperlinks", link.getAddress());
+
+ cell = sheet.getRow(3).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("'Target Sheet'!A1", link.getAddress());
+ }
+
+ public void testCloneSheet() throws Exception {
+ FileInputStream is = new FileInputStream(new File(cwd, "HyperlinksOnManySheets.xls"));
+ HSSFWorkbook wb = new HSSFWorkbook(is);
+ is.close();
+
+ HSSFCell cell;
+ HSSFHyperlink link;
+
+ HSSFSheet sheet = wb.cloneSheet(0);
+
+ cell = sheet.getRow(4).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("http://poi.apache.org/", link.getAddress());
+
+ cell = sheet.getRow(8).getCell((short)0);
+ link = cell.getHyperlink();
+ assertNotNull(link);
+ assertEquals("http://poi.apache.org/hssf/", link.getAddress());
+ }
+}