testhyperlinkrecord.java
来自「EXCEL read and write」· Java 代码 · 共 328 行 · 第 1/2 页
JAVA
328 行
public void testReadURLLink(){ RecordInputStream is = TestcaseRecordInputStream.create(HyperlinkRecord.sid, data1); HyperlinkRecord link = new HyperlinkRecord(is); assertEquals(2, link.getFirstRow()); assertEquals(2, link.getLastRow()); assertEquals(0, link.getFirstColumn()); assertEquals(0, link.getLastColumn()); assertTrue(Arrays.equals(HyperlinkRecord.STD_MONIKER, link.getGuid())); assertTrue(Arrays.equals(HyperlinkRecord.URL_MONIKER, link.getMoniker())); assertEquals(2, link.getLabelOptions()); int opts = HyperlinkRecord.HLINK_URL | HyperlinkRecord.HLINK_ABS | HyperlinkRecord.HLINK_LABEL; assertEquals(0x17, opts); assertEquals(opts, link.getLinkOptions()); assertEquals(0, link.getFileOptions()); assertEquals("My Link", link.getLabel()); assertEquals("http://www.lakings.com/", link.getAddress()); } public void testReadFileLink(){ RecordInputStream is = TestcaseRecordInputStream.create(HyperlinkRecord.sid, data2); HyperlinkRecord link = new HyperlinkRecord(is); assertEquals(0, link.getFirstRow()); assertEquals(0, link.getLastRow()); assertEquals(0, link.getFirstColumn()); assertEquals(0, link.getLastColumn()); assertTrue(Arrays.equals(HyperlinkRecord.STD_MONIKER, link.getGuid())); assertTrue(Arrays.equals(HyperlinkRecord.FILE_MONIKER, link.getMoniker())); assertEquals(2, link.getLabelOptions()); int opts = HyperlinkRecord.HLINK_URL | HyperlinkRecord.HLINK_LABEL; assertEquals(0x15, opts); assertEquals(opts, link.getLinkOptions()); assertEquals("file", link.getLabel()); assertEquals("link1.xls", link.getAddress()); } public void testReadEmailLink(){ RecordInputStream is = TestcaseRecordInputStream.create(HyperlinkRecord.sid, data3); HyperlinkRecord link = new HyperlinkRecord(is); assertEquals(1, link.getFirstRow()); assertEquals(1, link.getLastRow()); assertEquals(0, link.getFirstColumn()); assertEquals(0, link.getLastColumn()); assertTrue(Arrays.equals(HyperlinkRecord.STD_MONIKER, link.getGuid())); assertTrue(Arrays.equals(HyperlinkRecord.URL_MONIKER, link.getMoniker())); assertEquals(2, link.getLabelOptions()); int opts = HyperlinkRecord.HLINK_URL | HyperlinkRecord.HLINK_ABS | HyperlinkRecord.HLINK_LABEL; assertEquals(0x17, opts); assertEquals(opts, link.getLinkOptions()); assertEquals("email", link.getLabel()); assertEquals("mailto:ebgans@mail.ru?subject=Hello,%20Ebgans!", link.getAddress()); } public void testReadDocumentLink(){ RecordInputStream is = TestcaseRecordInputStream.create(HyperlinkRecord.sid, data4); HyperlinkRecord link = new HyperlinkRecord(is); assertEquals(3, link.getFirstRow()); assertEquals(3, link.getLastRow()); assertEquals(0, link.getFirstColumn()); assertEquals(0, link.getLastColumn()); assertTrue(Arrays.equals(HyperlinkRecord.STD_MONIKER, link.getGuid())); assertEquals(2, link.getLabelOptions()); int opts = HyperlinkRecord.HLINK_LABEL | HyperlinkRecord.HLINK_PLACE; assertEquals(0x1C, opts); assertEquals(opts, link.getLinkOptions()); assertEquals("place", link.getLabel()); assertEquals("Sheet1!A1", link.getAddress()); } private void serialize(byte[] data){ RecordInputStream is = TestcaseRecordInputStream.create(HyperlinkRecord.sid, data); HyperlinkRecord link = new HyperlinkRecord(is); byte[] bytes1 = link.serialize(); is = new RecordInputStream(new ByteArrayInputStream(bytes1)); is.nextRecord(); link = new HyperlinkRecord(is); byte[] bytes2 = link.serialize(); assertEquals(bytes1.length, bytes2.length); assertTrue(Arrays.equals(bytes1, bytes2)); } public void testSerialize(){ serialize(data1); serialize(data2); serialize(data3); serialize(data4); } public void testCreateURLRecord() throws Exception { HyperlinkRecord link = new HyperlinkRecord(); link.newUrlLink(); link.setFirstRow((short)2); link.setLastRow((short)2); link.setLabel("My Link"); link.setAddress("http://www.lakings.com/"); byte[] tmp = link.serialize(); byte[] ser = new byte[tmp.length-4]; System.arraycopy(tmp, 4, ser, 0, ser.length); assertEquals(data1.length, ser.length); assertTrue(Arrays.equals(data1, ser)); } public void testCreateFileRecord() throws Exception { HyperlinkRecord link = new HyperlinkRecord(); link.newFileLink(); link.setFirstRow((short)0); link.setLastRow((short)0); link.setLabel("file"); link.setAddress("link1.xls"); byte[] tmp = link.serialize(); byte[] ser = new byte[tmp.length-4]; System.arraycopy(tmp, 4, ser, 0, ser.length); assertEquals(data2.length, ser.length); assertTrue(Arrays.equals(data2, ser)); } public void testCreateDocumentRecord() throws Exception { HyperlinkRecord link = new HyperlinkRecord(); link.newDocumentLink(); link.setFirstRow((short)3); link.setLastRow((short)3); link.setLabel("place"); link.setAddress("Sheet1!A1"); byte[] tmp = link.serialize(); byte[] ser = new byte[tmp.length-4]; System.arraycopy(tmp, 4, ser, 0, ser.length); assertEquals(data4.length, ser.length); assertTrue(Arrays.equals(data4, ser)); } public void testCreateEmailtRecord() throws Exception { HyperlinkRecord link = new HyperlinkRecord(); link.newUrlLink(); link.setFirstRow((short)1); link.setLastRow((short)1); link.setLabel("email"); link.setAddress("mailto:ebgans@mail.ru?subject=Hello,%20Ebgans!"); byte[] tmp = link.serialize(); byte[] ser = new byte[tmp.length-4]; System.arraycopy(tmp, 4, ser, 0, ser.length); assertEquals(data3.length, ser.length); assertTrue(Arrays.equals(data3, ser)); } public void testClone() throws Exception { byte[][] data = {data1, data2, data3, data4}; for (int i = 0; i < data.length; i++) { RecordInputStream is = TestcaseRecordInputStream.create(HyperlinkRecord.sid, data[i]); HyperlinkRecord link = new HyperlinkRecord(is); HyperlinkRecord clone = (HyperlinkRecord)link.clone(); assertTrue(Arrays.equals(link.serialize(), clone.serialize())); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?