public void testExternalReferenceUrl() {
String[] sheetNames = new String[]{"SampleSheet"};
final char startMarker = (char)1;
SupBookRecord record;
record = new SupBookRecord(startMarker + "test.xls", sheetNames);
assertEquals("test.xls", record.getURL());
//UNC path notation
record = new SupBookRecord(startMarker + "" + CH_VOLUME + "@servername" + CH_DOWN_DIR + "test.xls", sheetNames);
assertEquals("\\\\servername" + PATH_SEPERATOR + "test.xls", record.getURL());
//Absolute path notation - different device
record = new SupBookRecord(startMarker + "" + CH_VOLUME + "D" + CH_DOWN_DIR + "test.xls", sheetNames);
assertEquals("D:" + PATH_SEPERATOR + "test.xls", record.getURL());
//Absolute path notation - same device
record = new SupBookRecord(startMarker + "" + CH_SAME_VOLUME + "folder" + CH_DOWN_DIR + "test.xls", sheetNames);
assertEquals(PATH_SEPERATOR + "folder" + PATH_SEPERATOR + "test.xls", record.getURL());
//Relative path notation - down
record = new SupBookRecord(startMarker + "folder" + CH_DOWN_DIR + "test.xls", sheetNames);
assertEquals("folder" + PATH_SEPERATOR + "test.xls", record.getURL());
//Relative path notation - up
record = new SupBookRecord(startMarker +""+ CH_UP_DIR + "test.xls", sheetNames);
assertEquals(".." + PATH_SEPERATOR + "test.xls", record.getURL());
//Relative path notation - for EXCEL.exe - fallback
record = new SupBookRecord(startMarker +""+ CH_STARTUP_DIR + "test.xls", sheetNames);
assertEquals("." + PATH_SEPERATOR + "test.xls", record.getURL());
//Relative path notation - for EXCEL lib folder - fallback
record = new SupBookRecord(startMarker +""+ CH_LIB_DIR + "test.xls", sheetNames);
assertEquals("." + PATH_SEPERATOR + "test.xls", record.getURL());
//Relative path notation - for alternative EXCEL.exe - fallback
record = new SupBookRecord(startMarker +""+ CH_ALT_STARTUP_DIR+ "test.xls", sheetNames);
assertEquals("." + PATH_SEPERATOR + "test.xls", record.getURL());
}