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 + -
显示快捷键?