You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2008/04/07 14:52:00 UTC
svn commit: r645483 [1/7] - in /poi/branches/ooxml: ./
src/documentation/content/xdocs/ src/java/org/apache/poi/hssf/record/
src/java/org/apache/poi/hssf/record/cf/
src/java/org/apache/poi/hssf/usermodel/ src/java/org/apache/poi/util/
src/testcases/org...
Author: nick
Date: Mon Apr 7 05:51:50 2008
New Revision: 645483
URL: http://svn.apache.org/viewvc?rev=645483&view=rev
Log:
Merged revisions 638786-638802,638805-638811,638813-638814,638816-639230,639233-639241,639243-639253,639255-639486,639488-639601,639603-639835,639837-639917,639919-640056,640058-640710,640712-641156,641158-641184,641186-641795,641797-641798,641800-641933,641935-641963,641965-641966,641968-641995,641997-642230,642232-642562,642564-642565,642568-642570,642572-642573,642576-642736,642739-642877,642879,642881-642890,642892-642903,642905-642945,642947-643624,643626-643653,643655-643669,643671,643673-643830,643832-643833,643835-644342,644344-644472,644474-644508,644510-645478 via svnmerge from
https://svn.apache.org:443/repos/asf/poi/trunk
........
r645348 | josh | 2008-04-07 04:02:03 +0100 (Mon, 07 Apr 2008) | 1 line
refactored all hssf junits to get test sample data in the in one place
........
r645352 | josh | 2008-04-07 04:23:04 +0100 (Mon, 07 Apr 2008) | 2 lines
30311 - More work on Conditional Formatting - patch from Dmitriy
........
Added:
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/HSSFTestDataSamples.java
- copied unchanged from r645352, poi/trunk/src/testcases/org/apache/poi/hssf/HSSFTestDataSamples.java
Modified:
poi/branches/ooxml/ (props changed)
poi/branches/ooxml/src/documentation/content/xdocs/changes.xml
poi/branches/ooxml/src/documentation/content/xdocs/status.xml
poi/branches/ooxml/src/java/org/apache/poi/hssf/record/CFRuleRecord.java
poi/branches/ooxml/src/java/org/apache/poi/hssf/record/cf/FontFormatting.java
poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFBorderFormatting.java
poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFConditionalFormattingRule.java
poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFFontFormatting.java
poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFPatternFormatting.java
poi/branches/ooxml/src/java/org/apache/poi/util/HexRead.java
poi/branches/ooxml/src/testcases/org/apache/poi/TestPOIDocumentMain.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/eventusermodel/TestHSSFEventFactory.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestBOFRecord.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestChartTitleFormatRecord.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestRecordFactory.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestSSTDeserializer.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestSSTRecord.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestUnicodeNameRecord.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/aggregates/TestValueRecordsAggregate.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/AbstractPtgTestCase.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/TestExternalFunctionFormulas.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/eval/TestFormulaBugs.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/eval/TestFormulasFromSpreadsheet.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/function/TestReadMissingBuiltInFuncs.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/functions/TestLookupFunctionsFromSpreadsheet.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestBug42464.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestFormulas.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHeaderFooter.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPalette.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPicture.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestNamedRange.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestOLE2Embeding.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestPOIFSProperties.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestReadWriteChart.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestSheetHiding.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestSheetShiftRows.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestUnfixedBugs.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestUppercaseWorkbook.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestWorkbook.java
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/util/TestAreaReference.java
poi/branches/ooxml/src/testcases/org/apache/poi/poifs/filesystem/TestOffice2007XMLException.java
poi/branches/ooxml/src/testcases/org/apache/poi/poifs/filesystem/TestPOIFSFileSystem.java
poi/branches/ooxml/src/testcases/org/apache/poi/poifs/filesystem/TestPropertySorter.java
Propchange: poi/branches/ooxml/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Apr 7 05:51:50 2008
@@ -1 +1 @@
-/poi/trunk:1-638784,638786-639486,639488-639601,639603-640056,640058-642562,642564-642566,642568-642574,642576-642736,642739-645088
+/poi/trunk:1-638784,638786-639486,639488-639601,639603-640056,640058-642562,642564-642566,642568-642574,642576-642736,642739-645478
Modified: poi/branches/ooxml/src/documentation/content/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/documentation/content/xdocs/changes.xml?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/documentation/content/xdocs/changes.xml (original)
+++ poi/branches/ooxml/src/documentation/content/xdocs/changes.xml Mon Apr 7 05:51:50 2008
@@ -37,6 +37,8 @@
<!-- Don't forget to update status.xml too! -->
<release version="3.0.3-beta1" date="2008-04-??">
+ <action dev="POI-DEVELOPERS" type="add">30311 - More work on Conditional Formatting</action>
+ <action dev="POI-DEVELOPERS" type="fix">refactored all junits' usage of HSSF.testdata.path to one place</action>
<action dev="POI-DEVELOPERS" type="fix">44739 - Small fixes for conditional formatting (regions with max row/col index)</action>
<action dev="POI-DEVELOPERS" type="add">Implement Sheet.removeShape(Shape shape) in HSLF</action>
<action dev="RK" type="add">44694 - HPSF: Support for property sets without sections</action>
Modified: poi/branches/ooxml/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/documentation/content/xdocs/status.xml?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/documentation/content/xdocs/status.xml (original)
+++ poi/branches/ooxml/src/documentation/content/xdocs/status.xml Mon Apr 7 05:51:50 2008
@@ -34,6 +34,8 @@
<!-- Don't forget to update changes.xml too! -->
<changes>
<release version="3.0.3-beta1" date="2008-04-??">
+ <action dev="POI-DEVELOPERS" type="add">30311 - More work on Conditional Formatting</action>
+ <action dev="POI-DEVELOPERS" type="fix">refactored all junits' usage of HSSF.testdata.path to one place</action>
<action dev="POI-DEVELOPERS" type="fix">44739 - Small fixes for conditional formatting (regions with max row/col index)</action>
<action dev="RK" type="add">44694 - HPSF: Support for property sets without sections</action>
<action dev="POI-DEVELOPERS" type="add">Implement Sheet.removeShape(Shape shape) in HSLF</action>
Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/CFRuleRecord.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/CFRuleRecord.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/CFRuleRecord.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/CFRuleRecord.java Mon Apr 7 05:51:50 2008
@@ -238,6 +238,17 @@
this.fontFormatting = fontFormatting;
setOptionFlag(fontFormatting != null, font);
}
+ public FontFormatting getFontFormatting()
+ {
+ if( containsFontFormattingBlock())
+ {
+ return fontFormatting;
+ }
+ else
+ {
+ return null;
+ }
+ }
public boolean containsAlignFormattingBlock()
{
@@ -257,6 +268,17 @@
this.borderFormatting = borderFormatting;
setOptionFlag(borderFormatting != null, bord);
}
+ public BorderFormatting getBorderFormatting()
+ {
+ if( containsBorderFormattingBlock())
+ {
+ return borderFormatting;
+ }
+ else
+ {
+ return null;
+ }
+ }
public boolean containsPatternFormattingBlock()
{
@@ -267,7 +289,17 @@
this.patternFormatting = patternFormatting;
setOptionFlag(patternFormatting!=null, patt);
}
-
+ public PatternFormatting getPatternFormatting()
+ {
+ if( containsPatternFormattingBlock())
+ {
+ return patternFormatting;
+ }
+ else
+ {
+ return null;
+ }
+ }
public boolean containsProtectionFormattingBlock()
{
@@ -616,12 +648,6 @@
return rec;
}
- public FontFormatting getFontFormatting()
- {
- return fontFormatting;
- }
-
-
/**
* @return <code>null</code> if <tt>formula</tt> was null.
*/
Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/record/cf/FontFormatting.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/record/cf/FontFormatting.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/record/cf/FontFormatting.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/record/cf/FontFormatting.java Mon Apr 7 05:51:50 2008
@@ -45,8 +45,8 @@
private static final int OFFSET_OPTION_FLAGS = 88;
private static final int OFFSET_ESCAPEMENT_TYPE_MODIFIED = 92;
private static final int OFFSET_UNDERLINE_TYPE_MODIFIED = 96;
- private static final int OFFSET_NOT_USED1 = 100;
- private static final int OFFSET_NOT_USED2 = 104;
+ private static final int OFFSET_FONT_WEIGHT_MODIFIED = 100;
+ private static final int OFFSET_NOT_USED = 104;
private static final int OFFSET_FONT_FORMATING_END = 116;
@@ -56,7 +56,6 @@
private static final BitField posture = BitFieldFactory.getInstance(0x00000002);
private static final BitField outline = BitFieldFactory.getInstance(0x00000008);
private static final BitField shadow = BitFieldFactory.getInstance(0x00000010);
- private static final BitField condense = BitFieldFactory.getInstance(0x00000020);
private static final BitField cancellation = BitFieldFactory.getInstance(0x00000080);
// OPTION FLAGS MASKS
@@ -64,7 +63,6 @@
private static final BitField styleModified = BitFieldFactory.getInstance(0x00000002);
private static final BitField outlineModified = BitFieldFactory.getInstance(0x00000008);
private static final BitField shadowModified = BitFieldFactory.getInstance(0x00000010);
- private static final BitField condenseModified = BitFieldFactory.getInstance(0x00000020);
private static final BitField cancellationModified = BitFieldFactory.getInstance(0x00000080);
/**
@@ -125,10 +123,9 @@
this.setFontHeight((short)-1);
this.setItalic(false);
- this.setBold(false);
+ this.setFontWieghtModified(false);
this.setOutline(false);
this.setShadow(false);
- this.setCondense(false);
this.setStrikeout(false);
this.setEscapementType((short)0);
this.setUnderlineType((byte)0);
@@ -137,15 +134,13 @@
this.setFontStyleModified(false);
this.setFontOutlineModified(false);
this.setFontShadowModified(false);
- this.setFontCondenseModified(false);
this.setFontCancellationModified(false);
this.setEscapementTypeModified(false);
this.setUnderlineTypeModified(false);
LittleEndian.putShort(record, OFFSET_FONT_NAME, (short)0);
- LittleEndian.putInt(record, OFFSET_NOT_USED1, 0x00000001);
- LittleEndian.putInt(record, OFFSET_NOT_USED2, 0x00000001);
+ LittleEndian.putInt(record, OFFSET_NOT_USED, 0x00000001);
LittleEndian.putShort(record, OFFSET_FONT_FORMATING_END, (short)0x0001);
}
@@ -249,16 +244,6 @@
return getFontOption(shadow);
}
- public void setCondense(boolean on)
- {
- setFontOption(on, condense);
- }
-
- public boolean isCondenseOn()
- {
- return getFontOption(condense);
- }
-
/**
* set the font to be stricken out or not
*
@@ -420,6 +405,7 @@
return getOptionFlag(styleModified);
}
+
public void setFontStyleModified(boolean modified)
{
setOptionFlag(modified, styleModified);
@@ -444,16 +430,6 @@
{
setOptionFlag(modified, shadowModified);
}
- public boolean isFontCondenseModified()
- {
- return getOptionFlag(condenseModified);
- }
-
- public void setFontCondenseModified(boolean modified)
- {
- setOptionFlag(modified, condenseModified);
- }
-
public void setFontCancellationModified(boolean modified)
{
setOptionFlag(modified, cancellationModified);
@@ -469,7 +445,6 @@
int value = modified? 0 : 1;
LittleEndian.putInt(record,OFFSET_ESCAPEMENT_TYPE_MODIFIED, value);
}
-
public boolean isEscapementTypeModified()
{
int escapementModified = LittleEndian.getInt(record,OFFSET_ESCAPEMENT_TYPE_MODIFIED);
@@ -488,6 +463,18 @@
return underlineModified == 0;
}
+ public void setFontWieghtModified(boolean modified)
+ {
+ int value = modified? 0 : 1;
+ LittleEndian.putInt(record,OFFSET_FONT_WEIGHT_MODIFIED, value);
+ }
+
+ public boolean isFontWeightModified()
+ {
+ int fontStyleModified = LittleEndian.getInt(record,OFFSET_FONT_WEIGHT_MODIFIED);
+ return fontStyleModified == 0;
+ }
+
public String toString()
{
StringBuffer buffer = new StringBuffer();
@@ -521,14 +508,6 @@
{
buffer.append(" .font shadow is not modified\n");
}
- if( isFontCondenseModified() )
- {
- buffer.append(" .font condense = ").append(isCondenseOn()).append("\n");
- }
- else
- {
- buffer.append(" .font condense is not modified\n");
- }
if( isFontCancellationModified() )
{
@@ -572,11 +551,32 @@
}
buffer.append(" .color index = ").append("0x"+Integer.toHexString(getFontColorIndex()).toUpperCase()).append("\n");
+
+ buffer.append(" ====\n");
+ buffer.append(" ["+OFFSET_FONT_HEIGHT+"] FONT HEIGHT: "+intToHex(OFFSET_FONT_HEIGHT)+"\n");
+ buffer.append(" ["+OFFSET_FONT_OPTIONS+"] FONT OPTIONS: "+intToHex(OFFSET_FONT_OPTIONS)+"\n");
+ buffer.append(" ["+OFFSET_FONT_WEIGHT+"] FONT WEIGHT: "+shortToHex(OFFSET_FONT_WEIGHT)+"\n");
+ buffer.append(" ["+OFFSET_ESCAPEMENT_TYPE+"] FONT ESCAPEMENT: "+shortToHex(OFFSET_ESCAPEMENT_TYPE)+"\n");
+ buffer.append(" ["+OFFSET_UNDERLINE_TYPE+"] FONT UNDERLINE: "+byteToHex(OFFSET_UNDERLINE_TYPE)+"\n");
+ buffer.append(" ["+(OFFSET_UNDERLINE_TYPE+1)+"] FONT NOT USED: "+byteToHex(OFFSET_UNDERLINE_TYPE+1)+"\n");
+ buffer.append(" ["+(OFFSET_UNDERLINE_TYPE+2)+"] FONT NOT USED: "+byteToHex(OFFSET_UNDERLINE_TYPE+2)+"\n");
+ buffer.append(" ["+(OFFSET_UNDERLINE_TYPE+3)+"] FONT NOT USED: "+byteToHex(OFFSET_UNDERLINE_TYPE+3)+"\n");
+ buffer.append(" ["+OFFSET_FONT_COLOR_INDEX+"] FONT COLIDX: "+intToHex(OFFSET_FONT_COLOR_INDEX)+"\n");
+ buffer.append(" ["+(OFFSET_FONT_COLOR_INDEX+4)+"] FONT NOT USED: "+intToHex(OFFSET_FONT_COLOR_INDEX+4)+"\n");
+ buffer.append(" ["+OFFSET_OPTION_FLAGS+"] FONT OPTIONS: "+intToHex(OFFSET_OPTION_FLAGS)+"\n");
+ buffer.append(" ["+OFFSET_ESCAPEMENT_TYPE_MODIFIED+"] FONT ESC MOD: "+intToHex(OFFSET_ESCAPEMENT_TYPE_MODIFIED)+"\n");
+ buffer.append(" ["+OFFSET_UNDERLINE_TYPE_MODIFIED+"] FONT UND MOD: "+intToHex(OFFSET_UNDERLINE_TYPE_MODIFIED)+"\n");
+ buffer.append(" ["+OFFSET_FONT_WEIGHT+"] FONT WGH MOD: "+intToHex(OFFSET_FONT_WEIGHT)+"\n");
+ buffer.append(" ["+OFFSET_NOT_USED+"] FONT NOT USED: "+intToHex(OFFSET_NOT_USED)+"\n");
+ buffer.append(" ["+(OFFSET_NOT_USED+4)+"] FONT NOT USED: "+intToHex(OFFSET_NOT_USED+4)+"\n");
+ buffer.append(" ["+(OFFSET_NOT_USED+8)+"] FONT NOT USED: "+intToHex(OFFSET_NOT_USED+8)+"\n");
+ buffer.append(" ["+OFFSET_FONT_FORMATING_END+"] FONT FORMATTING END: "+shortToHex(OFFSET_FONT_FORMATING_END)+"\n");
+ buffer.append(" ====\n");
buffer.append(" [/Font Formatting]\n");
return buffer.toString();
}
-
+
public Object clone()
{
FontFormatting rec = new FontFormatting();
@@ -588,4 +588,18 @@
}
return rec;
}
+
+ private String intToHex(int offset)
+ {
+ return Integer.toHexString(LittleEndian.getInt(record, offset));
+ }
+ private String shortToHex(int offset)
+ {
+ return Integer.toHexString(LittleEndian.getShort(record, offset)&0xFFFF);
+ }
+ private String byteToHex(int offset)
+ {
+ return Integer.toHexString(record[offset]&0xFF);
+ }
+
}
Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFBorderFormatting.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFBorderFormatting.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFBorderFormatting.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFBorderFormatting.java Mon Apr 7 05:51:50 2008
@@ -65,6 +65,11 @@
borderFormatting = new BorderFormatting();
}
+ protected HSSFBorderFormatting(BorderFormatting borderFormatting)
+ {
+ this.borderFormatting = borderFormatting;
+ }
+
protected BorderFormatting getBorderFormattingBlock()
{
return borderFormatting;
Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFConditionalFormattingRule.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFConditionalFormattingRule.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFConditionalFormattingRule.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFConditionalFormattingRule.java Mon Apr 7 05:51:50 2008
@@ -17,8 +17,6 @@
package org.apache.poi.hssf.usermodel;
-import java.util.List;
-
import org.apache.poi.hssf.model.FormulaParser;
import org.apache.poi.hssf.model.Workbook;
import org.apache.poi.hssf.record.CFRuleRecord;
@@ -40,9 +38,6 @@
public final class HSSFConditionalFormattingRule
{
private static final byte CELL_COMPARISON = CFRuleRecord.CONDITION_TYPE_CELL_VALUE_IS;
-
-
-
private final CFRuleRecord cfRuleRecord;
private final Workbook workbook;
@@ -73,6 +68,19 @@
FontFormatting block = fontFmt==null ? null : fontFmt.getFontFormattingBlock();
cfRuleRecord.setFontFormatting(block);
}
+
+ /**
+ * @return - font formatting object if defined, <code>null</code> otherwise
+ */
+ public HSSFFontFormatting getFontFormatting()
+ {
+ FontFormatting ff = cfRuleRecord.getFontFormatting();
+ if ( ff == null ) {
+ return null;
+ }
+ return new HSSFFontFormatting(ff);
+ }
+
/**
* @param borderFmt pass <code>null</code> to signify 'border unchanged'
*/
@@ -82,6 +90,17 @@
cfRuleRecord.setBorderFormatting(block);
}
/**
+ * @return - border formatting object if defined, <code>null</code> otherwise
+ */
+ public HSSFBorderFormatting getBorderFormatting()
+ {
+ BorderFormatting bf = cfRuleRecord.getBorderFormatting();
+ if ( bf == null ) {
+ return null;
+ }
+ return new HSSFBorderFormatting(bf);
+ }
+ /**
* @param patternFmt pass <code>null</code> to signify 'pattern unchanged'
*/
public void setPatternFormatting(HSSFPatternFormatting patternFmt)
@@ -89,6 +108,17 @@
PatternFormatting block = patternFmt==null ? null : patternFmt.getPatternFormattingBlock();
cfRuleRecord.setPatternFormatting(block);
}
+ /**
+ * @return - pattern formatting object if defined, <code>null</code> otherwise
+ */
+ public HSSFPatternFormatting getPatternFormatting()
+ {
+ PatternFormatting pf = cfRuleRecord.getPatternFormatting();
+ if ( pf == null ) {
+ return null;
+ }
+ return new HSSFPatternFormatting(pf);
+ }
public String getFormula1()
{
@@ -112,11 +142,9 @@
private String toFormulaString(Ptg[] parsedExpression)
{
- String formula = null;
- if(parsedExpression!=null)
- {
- formula = FormulaParser.toFormulaString(workbook, parsedExpression);
+ if(parsedExpression ==null) {
+ return null;
}
- return formula;
+ return FormulaParser.toFormulaString(workbook, parsedExpression);
}
}
Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFFontFormatting.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFFontFormatting.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFFontFormatting.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFFontFormatting.java Mon Apr 7 05:51:50 2008
@@ -25,64 +25,51 @@
* @author Dmitriy Kumshayev
*
*/
-public class HSSFFontFormatting
+public final class HSSFFontFormatting
{
- /**
- * Escapement type - None
- */
- public final static short SS_NONE = FontFormatting.SS_NONE;
+ /** Escapement type - None */
+ public final static short SS_NONE = FontFormatting.SS_NONE;
+ /** Escapement type - Superscript */
+ public final static short SS_SUPER = FontFormatting.SS_SUPER;
+ /** Escapement type - Subscript */
+ public final static short SS_SUB = FontFormatting.SS_SUB;
- /**
- * Escapement type - Superscript
- */
- public final static short SS_SUPER = FontFormatting.SS_SUPER;
+ /** Underline type - None */
+ public final static byte U_NONE = FontFormatting.U_NONE;
+ /** Underline type - Single */
+ public final static byte U_SINGLE = FontFormatting.U_SINGLE;
+ /** Underline type - Double */
+ public final static byte U_DOUBLE = FontFormatting.U_DOUBLE;
+ /** Underline type - Single Accounting */
+ public final static byte U_SINGLE_ACCOUNTING = FontFormatting.U_SINGLE_ACCOUNTING;
+ /** Underline type - Double Accounting */
+ public final static byte U_DOUBLE_ACCOUNTING = FontFormatting.U_DOUBLE_ACCOUNTING;
- /**
- * Escapement type - Subscript
- */
- public final static short SS_SUB = FontFormatting.SS_SUB;
-
- /**
- * Underline type - None
- */
- public final static byte U_NONE = FontFormatting.U_NONE;
- /**
- * Underline type - Single
- */
- public final static byte U_SINGLE = FontFormatting.U_SINGLE;
- /**
- * Underline type - Double
- */
- public final static byte U_DOUBLE = FontFormatting.U_DOUBLE;
- /**
- * Underline type - Single Accounting
- */
- public final static byte U_SINGLE_ACCOUNTING = FontFormatting.U_SINGLE_ACCOUNTING;
- /**
- * Underline type - Double Accounting
- */
- public final static byte U_DOUBLE_ACCOUNTING = FontFormatting.U_DOUBLE_ACCOUNTING;
-
- private FontFormatting fontFormatting;
+ private final FontFormatting fontFormatting;
public HSSFFontFormatting()
{
fontFormatting = new FontFormatting();
}
+ protected HSSFFontFormatting(FontFormatting ff)
+ {
+ fontFormatting = ff;
+ }
+
protected FontFormatting getFontFormattingBlock()
{
return fontFormatting;
}
- /**
- * get the type of super or subscript for the font
- *
- * @return super or subscript option
- * @see #SS_NONE
- * @see #SS_SUPER
- * @see #SS_SUB
- */
+ /**
+ * get the type of super or subscript for the font
+ *
+ * @return super or subscript option
+ * @see #SS_NONE
+ * @see #SS_SUPER
+ * @see #SS_SUB
+ */
public short getEscapementType()
{
return fontFormatting.getEscapementType();
@@ -96,22 +83,22 @@
return fontFormatting.getFontColorIndex();
}
- /**
- * gets the height of the font in 1/20th point units
- *
- * @return fontheight (in points/20); or -1 if not modified
- */
+ /**
+ * gets the height of the font in 1/20th point units
+ *
+ * @return fontheight (in points/20); or -1 if not modified
+ */
public short getFontHeight()
{
return fontFormatting.getFontHeight();
}
- /**
- * get the font weight for this font (100-1000dec or 0x64-0x3e8). Default is
- * 0x190 for normal and 0x2bc for bold
- *
- * @return bw - a number between 100-1000 for the fonts "boldness"
- */
+ /**
+ * get the font weight for this font (100-1000dec or 0x64-0x3e8). Default is
+ * 0x190 for normal and 0x2bc for bold
+ *
+ * @return bw - a number between 100-1000 for the fonts "boldness"
+ */
public short getFontWeight()
{
@@ -127,38 +114,30 @@
return fontFormatting.getRawRecord();
}
- /**
- * get the type of underlining for the font
- *
- * @return font underlining type
- *
- * @see #U_NONE
- * @see #U_SINGLE
- * @see #U_DOUBLE
- * @see #U_SINGLE_ACCOUNTING
- * @see #U_DOUBLE_ACCOUNTING
- */
+ /**
+ * get the type of underlining for the font
+ *
+ * @return font underlining type
+ *
+ * @see #U_NONE
+ * @see #U_SINGLE
+ * @see #U_DOUBLE
+ * @see #U_SINGLE_ACCOUNTING
+ * @see #U_DOUBLE_ACCOUNTING
+ */
public short getUnderlineType()
{
return fontFormatting.getUnderlineType();
}
- /**
- * get whether the font weight is set to bold or not
- *
- * @return bold - whether the font is bold or not
- */
- public boolean isBold()
- {
- return fontFormatting.isBold();
- }
-
/**
- * @return whether the font is condense or not
+ * get whether the font weight is set to bold or not
+ *
+ * @return bold - whether the font is bold or not
*/
- public boolean isCondenseOn()
+ public boolean isBold()
{
- return fontFormatting.isFontOutlineModified() && fontFormatting.isCondenseOn();
+ return fontFormatting.isFontWeightModified() && fontFormatting.isBold();
}
/**
@@ -178,14 +157,6 @@
}
/**
- * @return true if font condense type was modified from default
- */
- public boolean isFontCondenseModified()
- {
- return fontFormatting.isFontCondenseModified();
- }
-
- /**
* @return true if font outline type was modified from default
*/
public boolean isFontOutlineModified()
@@ -249,66 +220,61 @@
return fontFormatting.isUnderlineTypeModified();
}
- /**
- * set font style options.
- *
- * @param italic - if true, set posture style to italic, otherwise to normal
- * @param bold- if true, set font weight to bold, otherwise to normal
- */
+ /**
+ * @return true if font weight was modified from default
+ */
+ public boolean isFontWeightModified()
+ {
+ return fontFormatting.isFontWeightModified();
+ }
+
+ /**
+ * set font style options.
+ *
+ * @param italic - if true, set posture style to italic, otherwise to normal
+ * @param bold- if true, set font weight to bold, otherwise to normal
+ */
public void setFontStyle(boolean italic, boolean bold)
{
- boolean modified = italic || bold;
- fontFormatting.setItalic(italic);
- fontFormatting.setBold(bold);
- fontFormatting.setFontStyleModified(modified);
+ boolean modified = italic || bold;
+ fontFormatting.setItalic(italic);
+ fontFormatting.setBold(bold);
+ fontFormatting.setFontStyleModified(modified);
+ fontFormatting.setFontWieghtModified(modified);
}
- /**
- * set font style options to default values (non-italic, non-bold)
- */
+ /**
+ * set font style options to default values (non-italic, non-bold)
+ */
public void resetFontStyle()
{
setFontStyle(false,false);
}
- /**
- * set the escapement type for the font
- *
- * @param escapementType super or subscript option
- * @see #SS_NONE
- * @see #SS_SUPER
- * @see #SS_SUB
- */
- public void setCondense(boolean on)
- {
- fontFormatting.setCondense(on);
- fontFormatting.setFontCondenseModified(on);
- }
-
- /**
- * set the escapement type for the font
- *
- * @param escapementType super or subscript option
- * @see #SS_NONE
- * @see #SS_SUPER
- * @see #SS_SUB
- */
+ /**
+ * set the escapement type for the font
+ *
+ * @param escapementType super or subscript option
+ * @see #SS_NONE
+ * @see #SS_SUPER
+ * @see #SS_SUB
+ */
public void setEscapementType(short escapementType)
{
- switch(escapementType)
- {
- case HSSFFontFormatting.SS_SUB:
- case HSSFFontFormatting.SS_SUPER:
- fontFormatting.setEscapementType(escapementType);
- fontFormatting.setEscapementTypeModified(true);
- break;
- case HSSFFontFormatting.SS_NONE:
- fontFormatting.setEscapementType(escapementType);
- fontFormatting.setEscapementTypeModified(false);
- break;
- default:
- }
+ switch(escapementType)
+ {
+ case HSSFFontFormatting.SS_SUB:
+ case HSSFFontFormatting.SS_SUPER:
+ fontFormatting.setEscapementType(escapementType);
+ fontFormatting.setEscapementTypeModified(true);
+ break;
+ case HSSFFontFormatting.SS_NONE:
+ fontFormatting.setEscapementType(escapementType);
+ fontFormatting.setEscapementTypeModified(false);
+ break;
+ default:
+ }
}
/**
@@ -339,15 +305,6 @@
}
/**
- * @param modified
- * @see org.apache.poi.hssf.record.cf.FontFormatting#setFontCondenseModified(boolean)
- */
- public void setFontCondenseModified(boolean modified)
- {
- fontFormatting.setFontCondenseModified(modified);
- }
-
- /**
* @param height
* @see org.apache.poi.hssf.record.cf.FontFormatting#setFontHeight(short)
*/
@@ -413,35 +370,35 @@
fontFormatting.setFontCancellationModified(strike);
}
- /**
- * set the type of underlining type for the font
- *
- * @param u super or subscript option
- *
- * @see #U_NONE
- * @see #U_SINGLE
- * @see #U_DOUBLE
- * @see #U_SINGLE_ACCOUNTING
- * @see #U_DOUBLE_ACCOUNTING
- */
+ /**
+ * set the type of underlining type for the font
+ *
+ * @param u super or subscript option
+ *
+ * @see #U_NONE
+ * @see #U_SINGLE
+ * @see #U_DOUBLE
+ * @see #U_SINGLE_ACCOUNTING
+ * @see #U_DOUBLE_ACCOUNTING
+ */
public void setUnderlineType(short underlineType)
{
- switch(underlineType)
- {
- case HSSFFontFormatting.U_SINGLE:
- case HSSFFontFormatting.U_DOUBLE:
- case HSSFFontFormatting.U_SINGLE_ACCOUNTING:
- case HSSFFontFormatting.U_DOUBLE_ACCOUNTING:
- fontFormatting.setUnderlineType(underlineType);
- setUnderlineTypeModified(true);
- break;
-
- case HSSFFontFormatting.U_NONE:
- fontFormatting.setUnderlineType(underlineType);
- setUnderlineTypeModified(false);
- break;
- default:
- }
+ switch(underlineType)
+ {
+ case HSSFFontFormatting.U_SINGLE:
+ case HSSFFontFormatting.U_DOUBLE:
+ case HSSFFontFormatting.U_SINGLE_ACCOUNTING:
+ case HSSFFontFormatting.U_DOUBLE_ACCOUNTING:
+ fontFormatting.setUnderlineType(underlineType);
+ setUnderlineTypeModified(true);
+ break;
+
+ case HSSFFontFormatting.U_NONE:
+ fontFormatting.setUnderlineType(underlineType);
+ setUnderlineTypeModified(false);
+ break;
+ default:
+ }
}
/**
@@ -452,5 +409,4 @@
{
fontFormatting.setUnderlineTypeModified(modified);
}
-
}
Modified: poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFPatternFormatting.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFPatternFormatting.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFPatternFormatting.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/hssf/usermodel/HSSFPatternFormatting.java Mon Apr 7 05:51:50 2008
@@ -27,50 +27,54 @@
*/
public class HSSFPatternFormatting
{
- /** No background */
- public final static short NO_FILL = PatternFormatting.NO_FILL;
- /** Solidly filled */
- public final static short SOLID_FOREGROUND = PatternFormatting.SOLID_FOREGROUND;
- /** Small fine dots */
- public final static short FINE_DOTS = PatternFormatting.FINE_DOTS;
- /** Wide dots */
- public final static short ALT_BARS = PatternFormatting.ALT_BARS;
- /** Sparse dots */
- public final static short SPARSE_DOTS = PatternFormatting.SPARSE_DOTS;
- /** Thick horizontal bands */
- public final static short THICK_HORZ_BANDS = PatternFormatting.THICK_HORZ_BANDS;
- /** Thick vertical bands */
- public final static short THICK_VERT_BANDS = PatternFormatting.THICK_VERT_BANDS;
- /** Thick backward facing diagonals */
- public final static short THICK_BACKWARD_DIAG = PatternFormatting.THICK_BACKWARD_DIAG;
- /** Thick forward facing diagonals */
- public final static short THICK_FORWARD_DIAG = PatternFormatting.THICK_FORWARD_DIAG;
- /** Large spots */
- public final static short BIG_SPOTS = PatternFormatting.BIG_SPOTS;
- /** Brick-like layout */
- public final static short BRICKS = PatternFormatting.BRICKS;
- /** Thin horizontal bands */
- public final static short THIN_HORZ_BANDS = PatternFormatting.THIN_HORZ_BANDS;
- /** Thin vertical bands */
- public final static short THIN_VERT_BANDS = PatternFormatting.THIN_VERT_BANDS;
- /** Thin backward diagonal */
- public final static short THIN_BACKWARD_DIAG = PatternFormatting.THIN_BACKWARD_DIAG;
- /** Thin forward diagonal */
- public final static short THIN_FORWARD_DIAG = PatternFormatting.THIN_FORWARD_DIAG;
- /** Squares */
- public final static short SQUARES = PatternFormatting.SQUARES;
- /** Diamonds */
- public final static short DIAMONDS = PatternFormatting.DIAMONDS;
- /** Less Dots */
- public final static short LESS_DOTS = PatternFormatting.LESS_DOTS;
- /** Least Dots */
- public final static short LEAST_DOTS = PatternFormatting.LEAST_DOTS;
+ /** No background */
+ public final static short NO_FILL = PatternFormatting.NO_FILL;
+ /** Solidly filled */
+ public final static short SOLID_FOREGROUND = PatternFormatting.SOLID_FOREGROUND;
+ /** Small fine dots */
+ public final static short FINE_DOTS = PatternFormatting.FINE_DOTS;
+ /** Wide dots */
+ public final static short ALT_BARS = PatternFormatting.ALT_BARS;
+ /** Sparse dots */
+ public final static short SPARSE_DOTS = PatternFormatting.SPARSE_DOTS;
+ /** Thick horizontal bands */
+ public final static short THICK_HORZ_BANDS = PatternFormatting.THICK_HORZ_BANDS;
+ /** Thick vertical bands */
+ public final static short THICK_VERT_BANDS = PatternFormatting.THICK_VERT_BANDS;
+ /** Thick backward facing diagonals */
+ public final static short THICK_BACKWARD_DIAG = PatternFormatting.THICK_BACKWARD_DIAG;
+ /** Thick forward facing diagonals */
+ public final static short THICK_FORWARD_DIAG = PatternFormatting.THICK_FORWARD_DIAG;
+ /** Large spots */
+ public final static short BIG_SPOTS = PatternFormatting.BIG_SPOTS;
+ /** Brick-like layout */
+ public final static short BRICKS = PatternFormatting.BRICKS;
+ /** Thin horizontal bands */
+ public final static short THIN_HORZ_BANDS = PatternFormatting.THIN_HORZ_BANDS;
+ /** Thin vertical bands */
+ public final static short THIN_VERT_BANDS = PatternFormatting.THIN_VERT_BANDS;
+ /** Thin backward diagonal */
+ public final static short THIN_BACKWARD_DIAG = PatternFormatting.THIN_BACKWARD_DIAG;
+ /** Thin forward diagonal */
+ public final static short THIN_FORWARD_DIAG = PatternFormatting.THIN_FORWARD_DIAG;
+ /** Squares */
+ public final static short SQUARES = PatternFormatting.SQUARES;
+ /** Diamonds */
+ public final static short DIAMONDS = PatternFormatting.DIAMONDS;
+ /** Less Dots */
+ public final static short LESS_DOTS = PatternFormatting.LESS_DOTS;
+ /** Least Dots */
+ public final static short LEAST_DOTS = PatternFormatting.LEAST_DOTS;
private PatternFormatting patternFormatting;
public HSSFPatternFormatting()
{
patternFormatting = new PatternFormatting();
+ }
+ protected HSSFPatternFormatting(PatternFormatting patternFormatting)
+ {
+ this.patternFormatting = patternFormatting;
}
protected PatternFormatting getPatternFormattingBlock()
Modified: poi/branches/ooxml/src/java/org/apache/poi/util/HexRead.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/java/org/apache/poi/util/HexRead.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/java/org/apache/poi/util/HexRead.java (original)
+++ poi/branches/ooxml/src/java/org/apache/poi/util/HexRead.java Mon Apr 7 05:51:50 2008
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -15,7 +14,6 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.util;
@@ -25,6 +23,7 @@
/**
* Utilities to read hex from files.
+ * TODO - move to test packages
*
* @author Marc Johnson
* @author Glen Stampoultzis (glens at apache.org)
@@ -62,10 +61,8 @@
*
* @see #readData(String)
*/
- public static byte[] readData( String filename, String section ) throws IOException
- {
- File file = new File( filename );
- FileInputStream stream = new FileInputStream( file );
+ public static byte[] readData(InputStream stream, String section ) throws IOException {
+
try
{
StringBuffer sectionText = new StringBuffer();
@@ -99,6 +96,12 @@
stream.close();
}
throw new IOException( "Section '" + section + "' not found" );
+ }
+ public static byte[] readData( String filename, String section ) throws IOException
+ {
+ File file = new File( filename );
+ FileInputStream stream = new FileInputStream( file );
+ return readData(stream, section);
}
static public byte[] readData( InputStream stream, int eofChar )
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/TestPOIDocumentMain.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/TestPOIDocumentMain.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/TestPOIDocumentMain.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/TestPOIDocumentMain.java Mon Apr 7 05:51:50 2008
@@ -15,17 +15,17 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+
import junit.framework.TestCase;
-import java.io.*;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.poifs.filesystem.*;
+import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
/**
* Tests that POIDocument correctly loads and saves the common
@@ -36,85 +36,73 @@
*
* @author Nick Burch (nick at torchbox dot com)
*/
-public class TestPOIDocumentMain extends TestCase {
+public final class TestPOIDocumentMain extends TestCase {
// The POI Documents to work on
private POIDocument doc;
private POIDocument doc2;
- // POIFS primed on the test (two different hssf) data
- private POIFSFileSystem pfs;
- private POIFSFileSystem pfs2;
/**
- * Set things up, using a PowerPoint document and
- * a Word Document for our testing
+ * Set things up, two spreadsheets for our testing
*/
- public void setUp() throws Exception {
- String dirnameHSSF = System.getProperty("HSSF.testdata.path");
- String filenameHSSF = dirnameHSSF + "/DateFormats.xls";
- String filenameHSSF2 = dirnameHSSF + "/StringFormulas.xls";
-
- FileInputStream fisHSSF = new FileInputStream(filenameHSSF);
- pfs = new POIFSFileSystem(fisHSSF);
- doc = new HSSFWorkbook(pfs);
-
- FileInputStream fisHSSF2 = new FileInputStream(filenameHSSF2);
- pfs2 = new POIFSFileSystem(fisHSSF2);
- doc2 = new HSSFWorkbook(pfs2);
+ public void setUp() {
+
+ doc = HSSFTestDataSamples.openSampleWorkbook("DateFormats.xls");
+ doc2 = HSSFTestDataSamples.openSampleWorkbook("StringFormulas.xls");
+ }
+
+ public void testReadProperties() throws Exception {
+ // We should have both sets
+ assertNotNull(doc.getDocumentSummaryInformation());
+ assertNotNull(doc.getSummaryInformation());
+
+ // Check they are as expected for the test doc
+ assertEquals("Administrator", doc.getSummaryInformation().getAuthor());
+ assertEquals(0, doc.getDocumentSummaryInformation().getByteCount());
+ }
+
+ public void testReadProperties2() throws Exception {
+ // Check again on the word one
+ assertNotNull(doc2.getDocumentSummaryInformation());
+ assertNotNull(doc2.getSummaryInformation());
+
+ assertEquals("Avik Sengupta", doc2.getSummaryInformation().getAuthor());
+ assertEquals(null, doc2.getSummaryInformation().getKeywords());
+ assertEquals(0, doc2.getDocumentSummaryInformation().getByteCount());
}
-
- public void testReadProperties() throws Exception {
- // We should have both sets
- assertNotNull(doc.getDocumentSummaryInformation());
- assertNotNull(doc.getSummaryInformation());
-
- // Check they are as expected for the test doc
- assertEquals("Administrator", doc.getSummaryInformation().getAuthor());
- assertEquals(0, doc.getDocumentSummaryInformation().getByteCount());
- }
-
- public void testReadProperties2() throws Exception {
- // Check again on the word one
- assertNotNull(doc2.getDocumentSummaryInformation());
- assertNotNull(doc2.getSummaryInformation());
-
- assertEquals("Avik Sengupta", doc2.getSummaryInformation().getAuthor());
- assertEquals(null, doc2.getSummaryInformation().getKeywords());
- assertEquals(0, doc2.getDocumentSummaryInformation().getByteCount());
- }
-
- public void testWriteProperties() throws Exception {
- // Just check we can write them back out into a filesystem
- POIFSFileSystem outFS = new POIFSFileSystem();
- doc.readProperties();
- doc.writeProperties(outFS);
-
- // Should now hold them
- assertNotNull(
- outFS.createDocumentInputStream("\005SummaryInformation")
- );
- assertNotNull(
- outFS.createDocumentInputStream("\005DocumentSummaryInformation")
- );
- }
- public void testWriteReadProperties() throws Exception {
+ public void testWriteProperties() throws Exception {
+ // Just check we can write them back out into a filesystem
+ POIFSFileSystem outFS = new POIFSFileSystem();
+ doc.readProperties();
+ doc.writeProperties(outFS);
+
+ // Should now hold them
+ assertNotNull(
+ outFS.createDocumentInputStream("\005SummaryInformation")
+ );
+ assertNotNull(
+ outFS.createDocumentInputStream("\005DocumentSummaryInformation")
+ );
+ }
+
+ public void testWriteReadProperties() throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- // Write them out
- POIFSFileSystem outFS = new POIFSFileSystem();
- doc.readProperties();
- doc.writeProperties(outFS);
- outFS.writeFilesystem(baos);
-
- // Create a new version
- ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
- POIFSFileSystem inFS = new POIFSFileSystem(bais);
-
- // Check they're still there
- doc.filesystem = inFS;
- doc.readProperties();
-
- // Delegate test
- testReadProperties();
- }
+ // Write them out
+ POIFSFileSystem outFS = new POIFSFileSystem();
+ doc.readProperties();
+ doc.writeProperties(outFS);
+ outFS.writeFilesystem(baos);
+
+ // Create a new version
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+ POIFSFileSystem inFS = new POIFSFileSystem(bais);
+
+ // Check they're still there
+ doc.filesystem = inFS;
+ doc.readProperties();
+
+ // Delegate test
+ testReadProperties();
+ }
}
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/eventusermodel/TestHSSFEventFactory.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/eventusermodel/TestHSSFEventFactory.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/eventusermodel/TestHSSFEventFactory.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/eventusermodel/TestHSSFEventFactory.java Mon Apr 7 05:51:50 2008
@@ -16,109 +16,108 @@
==================================================================== */
package org.apache.poi.hssf.eventusermodel;
-import org.apache.poi.hssf.eventusermodel.HSSFEventFactory;
-import org.apache.poi.hssf.eventusermodel.HSSFListener;
-
-import java.io.File;
-import java.io.FileInputStream;
+import java.io.InputStream;
import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.hssf.record.ContinueRecord;
import org.apache.poi.hssf.record.DVALRecord;
import org.apache.poi.hssf.record.DVRecord;
import org.apache.poi.hssf.record.EOFRecord;
import org.apache.poi.hssf.record.Record;
-import org.apache.poi.hssf.record.ContinueRecord;
import org.apache.poi.hssf.record.SelectionRecord;
import org.apache.poi.hssf.record.WindowTwoRecord;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-
-import junit.framework.TestCase;
-
-public class TestHSSFEventFactory extends TestCase {
- private String dirname;
+/**
+ *
+ */
+public final class TestHSSFEventFactory extends TestCase {
- public TestHSSFEventFactory() {
- dirname = System.getProperty("HSSF.testdata.path");
+ private static final InputStream openSample(String sampleFileName) {
+ return HSSFTestDataSamples.openSampleFileStream(sampleFileName);
}
public void testWithMissingRecords() throws Exception {
- File f = new File(dirname + "/SimpleWithSkip.xls");
HSSFRequest req = new HSSFRequest();
MockHSSFListener mockListen = new MockHSSFListener();
req.addListenerForAllRecords(mockListen);
- POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(f));
+ POIFSFileSystem fs = new POIFSFileSystem(openSample("SimpleWithSkip.xls"));
HSSFEventFactory factory = new HSSFEventFactory();
factory.processWorkbookEvents(req, fs);
+ Record[] recs = mockListen.getRecords();
// Check we got the records
- System.out.println("Processed, found " + mockListen.records.size() + " records");
- assertTrue( mockListen.records.size() > 100 );
+ assertTrue( recs.length > 100 );
// Check that the last few records are as we expect
// (Makes sure we don't accidently skip the end ones)
- int numRec = mockListen.records.size();
- assertEquals(WindowTwoRecord.class, mockListen.records.get(numRec-3).getClass());
- assertEquals(SelectionRecord.class, mockListen.records.get(numRec-2).getClass());
- assertEquals(EOFRecord.class, mockListen.records.get(numRec-1).getClass());
+ int numRec = recs.length;
+ assertEquals(WindowTwoRecord.class, recs[numRec-3].getClass());
+ assertEquals(SelectionRecord.class, recs[numRec-2].getClass());
+ assertEquals(EOFRecord.class, recs[numRec-1].getClass());
}
public void testWithCrazyContinueRecords() throws Exception {
// Some files have crazy ordering of their continue records
// Check that we don't break on them (bug #42844)
-
- File f = new File(dirname + "/ContinueRecordProblem.xls");
HSSFRequest req = new HSSFRequest();
MockHSSFListener mockListen = new MockHSSFListener();
req.addListenerForAllRecords(mockListen);
- POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(f));
+ POIFSFileSystem fs = new POIFSFileSystem(openSample("ContinueRecordProblem.xls"));
HSSFEventFactory factory = new HSSFEventFactory();
factory.processWorkbookEvents(req, fs);
+ Record[] recs = mockListen.getRecords();
// Check we got the records
- System.out.println("Processed, found " + mockListen.records.size() + " records");
- assertTrue( mockListen.records.size() > 100 );
+ assertTrue( recs.length > 100 );
// And none of them are continue ones
- Record[] r = (Record[])mockListen.records.toArray(
- new Record[mockListen.records.size()] );
- for(int i=0; i<r.length; i++) {
- assertFalse( r[i] instanceof ContinueRecord );
+ for(int i=0; i<recs.length; i++) {
+ assertFalse( recs[i] instanceof ContinueRecord );
}
// Check that the last few records are as we expect
// (Makes sure we don't accidently skip the end ones)
- int numRec = mockListen.records.size();
- assertEquals(DVALRecord.class, mockListen.records.get(numRec-3).getClass());
- assertEquals(DVRecord.class, mockListen.records.get(numRec-2).getClass());
- assertEquals(EOFRecord.class, mockListen.records.get(numRec-1).getClass());
+ int numRec = recs.length;
+ assertEquals(DVALRecord.class, recs[numRec-3].getClass());
+ assertEquals(DVRecord.class, recs[numRec-2].getClass());
+ assertEquals(EOFRecord.class, recs[numRec-1].getClass());
}
- /**
- * Unknown records can be continued.
- * Check that HSSFEventFactory doesn't break on them.
- * (the test file was provided in a reopen of bug #42844)
- */
- public void testUnknownContinueRecords() throws Exception {
- File f = new File(dirname + "/42844.xls");
-
- HSSFRequest req = new HSSFRequest();
- MockHSSFListener mockListen = new MockHSSFListener();
- req.addListenerForAllRecords(mockListen);
-
- POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(f));
- HSSFEventFactory factory = new HSSFEventFactory();
- factory.processWorkbookEvents(req, fs);
+ /**
+ * Unknown records can be continued.
+ * Check that HSSFEventFactory doesn't break on them.
+ * (the test file was provided in a reopen of bug #42844)
+ */
+ public void testUnknownContinueRecords() throws Exception {
- assertTrue("no errors while processing the file", true);
- }
+ HSSFRequest req = new HSSFRequest();
+ MockHSSFListener mockListen = new MockHSSFListener();
+ req.addListenerForAllRecords(mockListen);
+
+ POIFSFileSystem fs = new POIFSFileSystem(openSample("42844.xls"));
+ HSSFEventFactory factory = new HSSFEventFactory();
+ factory.processWorkbookEvents(req, fs);
+
+ assertTrue("no errors while processing the file", true);
+ }
private static class MockHSSFListener implements HSSFListener {
- private MockHSSFListener() {}
- private ArrayList records = new ArrayList();
+ private final List records = new ArrayList();
+
+ public MockHSSFListener() {}
+ public Record[] getRecords() {
+ Record[] result = new Record[records.size()];
+ records.toArray(result);
+ return result;
+ }
public void processRecord(Record record) {
records.add(record);
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/eventusermodel/TestMissingRecordAwareHSSFListener.java Mon Apr 7 05:51:50 2008
@@ -19,11 +19,13 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
+import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.eventusermodel.dummyrecord.LastCellOfRowDummyRecord;
import org.apache.poi.hssf.eventusermodel.dummyrecord.MissingCellDummyRecord;
import org.apache.poi.hssf.eventusermodel.dummyrecord.MissingRowDummyRecord;
@@ -39,8 +41,6 @@
private Record[] r;
public void setUp() {
- String dirname = System.getProperty("HSSF.testdata.path");
- File f = new File(dirname + "/MissingBits.xls");
HSSFRequest req = new HSSFRequest();
MockHSSFListener mockListen = new MockHSSFListener();
@@ -49,7 +49,8 @@
HSSFEventFactory factory = new HSSFEventFactory();
try {
- POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(f));
+ InputStream is = HSSFTestDataSamples.openSampleFileStream("MissingBits.xls");
+ POIFSFileSystem fs = new POIFSFileSystem(is);
factory.processWorkbookEvents(req, fs);
} catch (IOException e) {
throw new RuntimeException(e);
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/extractor/TestExcelExtractor.java Mon Apr 7 05:51:50 2008
@@ -14,21 +14,36 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-package org.apache.poi.hssf.extractor;
-import java.io.File;
-import java.io.FileInputStream;
+package org.apache.poi.hssf.extractor;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import java.io.IOException;
+import java.io.InputStream;
import junit.framework.TestCase;
-public class TestExcelExtractor extends TestCase {
- public void testSimple() throws Exception {
- String path = System.getProperty("HSSF.testdata.path");
- FileInputStream fin = new FileInputStream(path + File.separator + "Simple.xls");
+import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+/**
+ *
+ */
+public final class TestExcelExtractor extends TestCase {
+
+ private static final ExcelExtractor createExtractor(String sampleFileName) {
+
+ InputStream is = HSSFTestDataSamples.openSampleFileStream(sampleFileName);
+
+ try {
+ return new ExcelExtractor(new POIFSFileSystem(is));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+
+ public void testSimple() {
- ExcelExtractor extractor = new ExcelExtractor(new POIFSFileSystem(fin));
+ ExcelExtractor extractor = createExtractor("Simple.xls");
assertEquals("Sheet1\nreplaceMe\nSheet2\nSheet3\n", extractor.getText());
@@ -37,11 +52,9 @@
assertEquals("replaceMe\n", extractor.getText());
}
- public void testNumericFormula() throws Exception {
- String path = System.getProperty("HSSF.testdata.path");
- FileInputStream fin = new FileInputStream(path + File.separator + "sumifformula.xls");
+ public void testNumericFormula() {
- ExcelExtractor extractor = new ExcelExtractor(new POIFSFileSystem(fin));
+ ExcelExtractor extractor = createExtractor("sumifformula.xls");
assertEquals(
"Sheet1\n" +
@@ -68,11 +81,9 @@
);
}
- public void testwithContinueRecords() throws Exception {
- String path = System.getProperty("HSSF.testdata.path");
- FileInputStream fin = new FileInputStream(path + File.separator + "StringContinueRecords.xls");
+ public void testwithContinueRecords() {
- ExcelExtractor extractor = new ExcelExtractor(new POIFSFileSystem(fin));
+ ExcelExtractor extractor = createExtractor("StringContinueRecords.xls");
extractor.getText();
@@ -82,11 +93,9 @@
assertTrue(extractor.getText().length() > 40960);
}
- public void testStringConcat() throws Exception {
- String path = System.getProperty("HSSF.testdata.path");
- FileInputStream fin = new FileInputStream(path + File.separator + "SimpleWithFormula.xls");
+ public void testStringConcat() {
- ExcelExtractor extractor = new ExcelExtractor(new POIFSFileSystem(fin));
+ ExcelExtractor extractor = createExtractor("SimpleWithFormula.xls");
// Comes out as NaN if treated as a number
// And as XYZ if treated as a string
@@ -97,11 +106,9 @@
assertEquals("Sheet1\nreplaceme\nreplaceme\nCONCATENATE(A1,A2)\nSheet2\nSheet3\n", extractor.getText());
}
- public void testStringFormula() throws Exception {
- String path = System.getProperty("HSSF.testdata.path");
- FileInputStream fin = new FileInputStream(path + File.separator + "StringFormulas.xls");
+ public void testStringFormula() {
- ExcelExtractor extractor = new ExcelExtractor(new POIFSFileSystem(fin));
+ ExcelExtractor extractor = createExtractor("StringFormulas.xls");
// Comes out as NaN if treated as a number
// And as XYZ if treated as a string
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestBOFRecord.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestBOFRecord.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestBOFRecord.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestBOFRecord.java Mon Apr 7 05:51:50 2008
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -15,36 +14,28 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
-import java.io.File;
-import java.io.FileInputStream;
-
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import java.io.InputStream;
+import junit.framework.AssertionFailedError;
import junit.framework.TestCase;
-public class TestBOFRecord extends TestCase
-{
- private String _test_file_path;
- private static final String _test_file_path_property = "HSSF.testdata.path";
-
- public TestBOFRecord()
- {
- super();
- _test_file_path = System.getProperty( _test_file_path_property ) +
- File.separator + "bug_42794.xls";
- }
-
+import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+/**
+ *
+ */
+public final class TestBOFRecord extends TestCase {
public void testBOFRecord() throws Exception {
- POIFSFileSystem fs = new POIFSFileSystem(
- new FileInputStream(_test_file_path)
- );
-
- // This used to throw an error before
- HSSFWorkbook hssf = new HSSFWorkbook(fs);
+ InputStream is = HSSFTestDataSamples.openSampleFileStream("bug_42794.xls");
+
+ // This used to throw an error before
+ try {
+ new HSSFWorkbook(is);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ throw new AssertionFailedError("Identified bug 42794");
+ }
}
}
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestCFRuleRecord.java Mon Apr 7 05:51:50 2008
@@ -182,14 +182,13 @@
// Check for defaults
assertFalse(fontFormatting.isEscapementTypeModified());
assertFalse(fontFormatting.isFontCancellationModified());
- assertFalse(fontFormatting.isFontCondenseModified());
assertFalse(fontFormatting.isFontOutlineModified());
assertFalse(fontFormatting.isFontShadowModified());
assertFalse(fontFormatting.isFontStyleModified());
assertFalse(fontFormatting.isUnderlineTypeModified());
+ assertFalse(fontFormatting.isFontWeightModified());
assertFalse(fontFormatting.isBold());
- assertFalse(fontFormatting.isCondenseOn());
assertFalse(fontFormatting.isItalic());
assertFalse(fontFormatting.isOutlineOn());
assertFalse(fontFormatting.isShadowOn());
@@ -198,7 +197,7 @@
assertEquals(0, fontFormatting.getEscapementType());
assertEquals(-1, fontFormatting.getFontColorIndex());
assertEquals(-1, fontFormatting.getFontHeight());
- assertEquals(400, fontFormatting.getFontWeight());
+ assertEquals(0, fontFormatting.getFontWeight());
assertEquals(0, fontFormatting.getUnderlineType());
fontFormatting.setBold(true);
@@ -206,11 +205,6 @@
fontFormatting.setBold(false);
assertFalse(fontFormatting.isBold());
- fontFormatting.setCondense(true);
- assertTrue(fontFormatting.isCondenseOn());
- fontFormatting.setCondense(false);
- assertFalse(fontFormatting.isCondenseOn());
-
fontFormatting.setEscapementType(FontFormatting.SS_SUB);
assertEquals(FontFormatting.SS_SUB, fontFormatting.getEscapementType());
fontFormatting.setEscapementType(FontFormatting.SS_SUPER);
@@ -223,6 +217,11 @@
fontFormatting.setEscapementTypeModified(true);
assertTrue(fontFormatting.isEscapementTypeModified());
+ fontFormatting.setFontWieghtModified(false);
+ assertFalse(fontFormatting.isFontWeightModified());
+ fontFormatting.setFontWieghtModified(true);
+ assertTrue(fontFormatting.isFontWeightModified());
+
fontFormatting.setFontCancellationModified(false);
assertFalse(fontFormatting.isFontCancellationModified());
fontFormatting.setFontCancellationModified(true);
@@ -230,11 +229,6 @@
fontFormatting.setFontColorIndex((short)10);
assertEquals(10,fontFormatting.getFontColorIndex());
-
- fontFormatting.setFontCondenseModified(false);
- assertFalse(fontFormatting.isFontCondenseModified());
- fontFormatting.setFontCondenseModified(true);
- assertTrue(fontFormatting.isFontCondenseModified());
fontFormatting.setFontHeight((short)100);
assertEquals(100,fontFormatting.getFontHeight());
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestChartTitleFormatRecord.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestChartTitleFormatRecord.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestChartTitleFormatRecord.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestChartTitleFormatRecord.java Mon Apr 7 05:51:50 2008
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -15,65 +14,57 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
-import java.io.File;
-import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.eventusermodel.HSSFEventFactory;
import org.apache.poi.hssf.eventusermodel.HSSFListener;
import org.apache.poi.hssf.eventusermodel.HSSFRequest;
-import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-
-import junit.framework.TestCase;
-
-public class TestChartTitleFormatRecord extends TestCase
-{
- private String _test_file_path;
- private static final String _test_file_path_property = "HSSF.testdata.path";
-
- public TestChartTitleFormatRecord()
- {
- super();
- _test_file_path = System.getProperty( _test_file_path_property ) +
- File.separator + "WithFormattedGraphTitle.xls";
- }
-
- public void testRecord() throws Exception {
- POIFSFileSystem fs = new POIFSFileSystem(
- new FileInputStream(_test_file_path)
- );
-
- // Check we can open the file via usermodel
- HSSFWorkbook hssf = new HSSFWorkbook(fs);
-
- // Now process it through eventusermodel, and
- // look out for the title records
- ChartTitleFormatRecordGrabber grabber =
- new ChartTitleFormatRecordGrabber();
- InputStream din = fs.createDocumentInputStream("Workbook");
- HSSFRequest req = new HSSFRequest();
- req.addListenerForAllRecords(grabber);
- HSSFEventFactory factory = new HSSFEventFactory();
- factory.processEvents(req, din);
- din.close();
-
- // Should've found one
- assertEquals(1, grabber.chartTitleFormatRecords.size());
- // And it should be of something interesting
- ChartTitleFormatRecord r =
- (ChartTitleFormatRecord)grabber.chartTitleFormatRecords.get(0);
- assertEquals(3, r.getFormatCount());
- }
-
- public static class ChartTitleFormatRecordGrabber implements HSSFListener {
- private ArrayList chartTitleFormatRecords = new ArrayList();
+/**
+ *
+ */
+public final class TestChartTitleFormatRecord extends TestCase {
+
+ public void testRecord() throws Exception {
+ POIFSFileSystem fs = new POIFSFileSystem(
+ HSSFTestDataSamples.openSampleFileStream("WithFormattedGraphTitle.xls"));
+
+ // Check we can open the file via usermodel
+ HSSFWorkbook hssf = new HSSFWorkbook(fs);
+
+ // Now process it through eventusermodel, and
+ // look out for the title records
+ ChartTitleFormatRecordGrabber grabber = new ChartTitleFormatRecordGrabber();
+ InputStream din = fs.createDocumentInputStream("Workbook");
+ HSSFRequest req = new HSSFRequest();
+ req.addListenerForAllRecords(grabber);
+ HSSFEventFactory factory = new HSSFEventFactory();
+ factory.processEvents(req, din);
+ din.close();
+
+ // Should've found one
+ assertEquals(1, grabber.chartTitleFormatRecords.size());
+ // And it should be of something interesting
+ ChartTitleFormatRecord r =
+ (ChartTitleFormatRecord)grabber.chartTitleFormatRecords.get(0);
+ assertEquals(3, r.getFormatCount());
+ }
+
+ private static final class ChartTitleFormatRecordGrabber implements HSSFListener {
+ private final List chartTitleFormatRecords;
+
+ public ChartTitleFormatRecordGrabber() {
+ chartTitleFormatRecords = new ArrayList();
+ }
public void processRecord(Record record) {
if(record instanceof ChartTitleFormatRecord) {
@@ -82,6 +73,6 @@
);
}
}
-
- }
+
+ }
}
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestFormulaRecord.java Mon Apr 7 05:51:50 2008
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -15,8 +14,6 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
@@ -39,36 +36,29 @@
*
* @author Andrew C. Oliver
*/
-public class TestFormulaRecord
- extends TestCase
-{
-
- public TestFormulaRecord(String name)
- {
- super(name);
- }
-
- public void testCreateFormulaRecord () {
- FormulaRecord record = new FormulaRecord();
- record.setColumn((short)0);
- //record.setRow((short)1);
- record.setRow(1);
- record.setXFIndex((short)4);
-
- assertEquals(record.getColumn(),(short)0);
- //assertEquals(record.getRow(),(short)1);
- assertEquals((short)record.getRow(),(short)1);
- assertEquals(record.getXFIndex(),(short)4);
- }
-
- /**
- * Make sure a NAN value is preserved
- * This formula record is a representation of =1/0 at row 0, column 0
- */
- public void testCheckNanPreserve() {
- byte[] formulaByte = new byte[29];
- for (int i = 0; i < formulaByte.length; i++) formulaByte[i] = (byte)0;
- formulaByte[4] = (byte)0x0F;
+public final class TestFormulaRecord extends TestCase {
+
+ public void testCreateFormulaRecord () {
+ FormulaRecord record = new FormulaRecord();
+ record.setColumn((short)0);
+ //record.setRow((short)1);
+ record.setRow(1);
+ record.setXFIndex((short)4);
+
+ assertEquals(record.getColumn(),(short)0);
+ //assertEquals(record.getRow(),(short)1);
+ assertEquals((short)record.getRow(),(short)1);
+ assertEquals(record.getXFIndex(),(short)4);
+ }
+
+ /**
+ * Make sure a NAN value is preserved
+ * This formula record is a representation of =1/0 at row 0, column 0
+ */
+ public void testCheckNanPreserve() {
+ byte[] formulaByte = new byte[29];
+ for (int i = 0; i < formulaByte.length; i++) formulaByte[i] = (byte)0;
+ formulaByte[4] = (byte)0x0F;
formulaByte[6] = (byte)0x02;
formulaByte[8] = (byte)0x07;
formulaByte[12] = (byte)0xFF;
@@ -80,7 +70,7 @@
formulaByte[23] = (byte)0x01;
formulaByte[25] = (byte)0x1E;
formulaByte[28] = (byte)0x06;
-
+
FormulaRecord record = new FormulaRecord(new TestcaseRecordInputStream(FormulaRecord.sid, (short)29, formulaByte));
assertEquals("Row", 0, record.getRow());
assertEquals("Column", 0, record.getColumn());
@@ -92,19 +82,18 @@
for (int i = 5; i < 13;i++) {
assertEquals("FormulaByte NaN doesn't match", formulaByte[i], output[i+4]);
}
+ }
+
+ /**
+ * Tests to see if the shared formula cells properly reserialize the expPtg
+ *
+ */
+ public void testExpFormula() {
+ byte[] formulaByte = new byte[27];
- }
-
- /**
- * Tests to see if the shared formula cells properly reserialize the expPtg
- *
- */
- public void testExpFormula() {
- byte[] formulaByte = new byte[27];
-
for (int i = 0; i < formulaByte.length; i++) formulaByte[i] = (byte)0;
-
- formulaByte[4] =(byte)0x0F;
+
+ formulaByte[4] =(byte)0x0F;
formulaByte[14]=(byte)0x08;
formulaByte[18]=(byte)0xE0;
formulaByte[19]=(byte)0xFD;
@@ -115,19 +104,19 @@
assertEquals("Column", 0, record.getColumn());
byte[] output = record.serialize();
assertEquals("Output size", 31, output.length); //includes sid+recordlength
- assertEquals("Offset 22", 1, output[26]);
- }
-
- public void testWithConcat() throws Exception {
- // =CHOOSE(2,A2,A3,A4)
- byte[] data = new byte[] {
- 6, 0, 68, 0,
- 1, 0, 1, 0, 15, 0, 0, 0, 0, 0, 0, 0, 57,
+ assertEquals("Offset 22", 1, output[26]);
+ }
+
+ public void testWithConcat() throws Exception {
+ // =CHOOSE(2,A2,A3,A4)
+ byte[] data = new byte[] {
+ 6, 0, 68, 0,
+ 1, 0, 1, 0, 15, 0, 0, 0, 0, 0, 0, 0, 57,
64, 0, 0, 12, 0, 12, -4, 46, 0,
- 30, 2, 0, // Int - 2
+ 30, 2, 0, // Int - 2
25, 4, 3, 0, // Attr
- 8, 0, // Concat
- 17, 0, // Range
+ 8, 0, // Concat
+ 17, 0, // Range
26, 0, 35, 0, // Bit like an attr
36, 1, 0, 0, -64, // Ref - A2
25, 8, 21, 0, // Attr
@@ -136,43 +125,35 @@
36, 3, 0, 0, -64, // Ref - A4
25, 8, 3, 0, // Attr
66, 4, 100, 0 // CHOOSE
- };
- RecordInputStream inp = new RecordInputStream(
- new ByteArrayInputStream(data)
- );
- inp.nextRecord();
-
- FormulaRecord fr = new FormulaRecord(inp);
-
- assertEquals(14, fr.getNumberOfExpressionTokens());
- assertEquals(IntPtg.class, fr.getParsedExpression().get(0).getClass());
- assertEquals(AttrPtg.class, fr.getParsedExpression().get(1).getClass());
- assertEquals(ConcatPtg.class, fr.getParsedExpression().get(2).getClass());
- assertEquals(UnknownPtg.class, fr.getParsedExpression().get(3).getClass());
- assertEquals(RangePtg.class, fr.getParsedExpression().get(4).getClass());
- assertEquals(UnknownPtg.class, fr.getParsedExpression().get(5).getClass());
- assertEquals(AttrPtg.class, fr.getParsedExpression().get(6).getClass());
- assertEquals(ReferencePtg.class, fr.getParsedExpression().get(7).getClass());
- assertEquals(AttrPtg.class, fr.getParsedExpression().get(8).getClass());
- assertEquals(ReferencePtg.class, fr.getParsedExpression().get(9).getClass());
- assertEquals(AttrPtg.class, fr.getParsedExpression().get(10).getClass());
- assertEquals(ReferencePtg.class, fr.getParsedExpression().get(11).getClass());
- assertEquals(AttrPtg.class, fr.getParsedExpression().get(12).getClass());
- assertEquals(FuncVarPtg.class, fr.getParsedExpression().get(13).getClass());
-
- FuncVarPtg choose = (FuncVarPtg)fr.getParsedExpression().get(13);
- assertEquals("CHOOSE", choose.getName());
- }
-
-
- public static void main(String [] ignored_args)
- {
- String filename = System.getProperty("HSSF.testdata.path");
-
- System.out
- .println("Testing org.apache.poi.hssf.record.FormulaRecord");
- junit.textui.TestRunner.run(TestFormulaRecord.class);
- }
-
-
+ };
+ RecordInputStream inp = new RecordInputStream(
+ new ByteArrayInputStream(data)
+ );
+ inp.nextRecord();
+
+ FormulaRecord fr = new FormulaRecord(inp);
+
+ assertEquals(14, fr.getNumberOfExpressionTokens());
+ assertEquals(IntPtg.class, fr.getParsedExpression().get(0).getClass());
+ assertEquals(AttrPtg.class, fr.getParsedExpression().get(1).getClass());
+ assertEquals(ConcatPtg.class, fr.getParsedExpression().get(2).getClass());
+ assertEquals(UnknownPtg.class, fr.getParsedExpression().get(3).getClass());
+ assertEquals(RangePtg.class, fr.getParsedExpression().get(4).getClass());
+ assertEquals(UnknownPtg.class, fr.getParsedExpression().get(5).getClass());
+ assertEquals(AttrPtg.class, fr.getParsedExpression().get(6).getClass());
+ assertEquals(ReferencePtg.class, fr.getParsedExpression().get(7).getClass());
+ assertEquals(AttrPtg.class, fr.getParsedExpression().get(8).getClass());
+ assertEquals(ReferencePtg.class, fr.getParsedExpression().get(9).getClass());
+ assertEquals(AttrPtg.class, fr.getParsedExpression().get(10).getClass());
+ assertEquals(ReferencePtg.class, fr.getParsedExpression().get(11).getClass());
+ assertEquals(AttrPtg.class, fr.getParsedExpression().get(12).getClass());
+ assertEquals(FuncVarPtg.class, fr.getParsedExpression().get(13).getClass());
+
+ FuncVarPtg choose = (FuncVarPtg)fr.getParsedExpression().get(13);
+ assertEquals("CHOOSE", choose.getName());
+ }
+
+ public static void main(String [] ignored_args) {
+ junit.textui.TestRunner.run(TestFormulaRecord.class);
+ }
}
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestRecordFactory.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestRecordFactory.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestRecordFactory.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/TestRecordFactory.java Mon Apr 7 05:51:50 2008
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -15,7 +14,6 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
@@ -34,20 +32,8 @@
* @author Andrew C. Oliver (acoliver at apache dot org)
* @author Csaba Nagy (ncsaba at yahoo dot com)
*/
+public final class TestRecordFactory extends TestCase {
-public class TestRecordFactory
- extends TestCase
-{
-
- /**
- * Creates new TestRecordFactory
- * @param testCaseName
- */
-
- public TestRecordFactory(String testCaseName)
- {
- super(testCaseName);
- }
/**
* TEST NAME: Test Basic Record Construction <P>
@@ -57,13 +43,9 @@
* FAILURE: The wrong records are creates or contain the wrong values <P>
*
*/
-
- public void testBasicRecordConstruction()
- throws Exception
- {
+ public void testBasicRecordConstruction() {
short recType = BOFRecord.sid;
- byte[] data = new byte[]
- {
+ byte[] data = {
0, 6, 5, 0, -2, 28, -51, 7, -55, 64, 0, 0, 6, 1, 0, 0
};
short size = 16;
@@ -106,13 +88,9 @@
* FAILURE: The wrong records are created or contain the wrong values <P>
*
*/
-
- public void testSpecial()
- throws Exception
- {
+ public void testSpecial() {
short recType = RKRecord.sid;
- byte[] data = new byte[]
- {
+ byte[] data = {
0, 0, 0, 0, 21, 0, 0, 0, 0, 0
};
short size = 10;
@@ -138,10 +116,8 @@
* FAILURE: The wrong records are created or contain the wrong values <P>
*
*/
- public void testContinuedUnknownRecord()
- {
- byte[] data = new byte[]
- {
+ public void testContinuedUnknownRecord() {
+ byte[] data = {
0, -1, 0, 0, // an unknown record with 0 length
0x3C , 0, 3, 0, 1, 2, 3, // a continuation record with 3 bytes of data
0x3C , 0, 1, 0, 4 // one more continuation record with 1 byte of data
@@ -178,7 +154,7 @@
*/
public void testMixedContinue() throws Exception {
/**
- * Taken from a real file $HSSF.testdata.path/39512.xls. See Bug 39512 for details.
+ * Taken from a real test sample file 39512.xls. See Bug 39512 for details.
*/
String dump =
//OBJ
@@ -228,10 +204,7 @@
assertTrue(Arrays.equals(data, ser));
}
- public static void main(String [] ignored_args)
- {
- System.out
- .println("Testing org.apache.poi.hssf.record.TestRecordFactory");
+ public static void main(String [] ignored_args) {
junit.textui.TestRunner.run(TestRecordFactory.class);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org