You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by jo...@apache.org on 2008/05/16 19:14:02 UTC

svn commit: r657136 - /poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java

Author: josh
Date: Fri May 16 10:14:02 2008
New Revision: 657136

URL: http://svn.apache.org/viewvc?rev=657136&view=rev
Log:
Should have been submitted with r656893 (for bug 44523)

Modified:
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java?rev=657136&r1=657135&r2=657136&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java Fri May 16 10:14:02 2008
@@ -17,13 +17,18 @@
 
 package org.apache.poi.hssf.usermodel;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
 import junit.framework.AssertionFailedError;
 import junit.framework.TestCase;
 
 import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.hssf.record.NameRecord;
+import org.apache.poi.util.TempFile;
 /**
- * 
+ *
  */
 public final class TestHSSFWorkbook extends TestCase {
     private static HSSFWorkbook openSample(String sampleFileName) {
@@ -93,7 +98,7 @@
         b.setSheetName( 3,  "name2" );
         b.setSheetName( 3,  "name2" );
         b.setSheetName( 3,  "name2" );
-        
+
         HSSFWorkbook c = new HSSFWorkbook( );
         c.createSheet("Sheet1");
         c.createSheet("Sheet2");
@@ -101,49 +106,50 @@
         c.createSheet("Sheet4");
 
     }
-    
+
     public void testWindowOneDefaults() {
         HSSFWorkbook b = new HSSFWorkbook( );
         try {
-            assertEquals(b.getSelectedTab(), 0);
-            assertEquals(b.getDisplayedTab(), 0);
+            assertEquals(b.getActiveSheetIndex(), 0);
+            assertEquals(b.getFirstVisibleTab(), 0);
         } catch (NullPointerException npe) {
             fail("WindowOneRecord in Workbook is probably not initialized");
         }
     }
-    
+
     public void testSheetSelection() {
         HSSFWorkbook b = new HSSFWorkbook();
         b.createSheet("Sheet One");
         b.createSheet("Sheet Two");
-        b.setSelectedTab((short) 1);
-        b.setDisplayedTab((short) 1);
-        assertEquals(b.getSelectedTab(), 1);
-        assertEquals(b.getDisplayedTab(), 1);
+        b.setActiveSheet(1);
+        b.setSelectedTab(1);
+        b.setFirstVisibleTab(1);
+        assertEquals(1, b.getActiveSheetIndex());
+        assertEquals(1, b.getFirstVisibleTab());
     }
-    
+
     public void testSheetClone() {
         // First up, try a simple file
         HSSFWorkbook b = new HSSFWorkbook();
         assertEquals(0, b.getNumberOfSheets());
         b.createSheet("Sheet One");
         b.createSheet("Sheet Two");
-        
+
         assertEquals(2, b.getNumberOfSheets());
         b.cloneSheet(0);
         assertEquals(3, b.getNumberOfSheets());
-        
+
         // Now try a problem one with drawing records in it
         b = openSample("SheetWithDrawing.xls");
         assertEquals(1, b.getNumberOfSheets());
         b.cloneSheet(0);
         assertEquals(2, b.getNumberOfSheets());
     }
-    
+
     public void testReadWriteWithCharts() {
         HSSFWorkbook b;
         HSSFSheet s;
-        
+
         // Single chart, two sheets
         b = openSample("44010-SingleChart.xls");
         assertEquals(2, b.getNumberOfSheets());
@@ -151,51 +157,51 @@
         s = b.getSheetAt(1);
         assertEquals(0, s.getFirstRowNum());
         assertEquals(8, s.getLastRowNum());
-        
+
         // Has chart on 1st sheet??
         // FIXME
         assertNotNull(b.getSheetAt(0).getDrawingPatriarch());
         assertNull(b.getSheetAt(1).getDrawingPatriarch());
         assertFalse(b.getSheetAt(0).getDrawingPatriarch().containsChart());
-        
-        // We've now called getDrawingPatriarch() so 
+
+        // We've now called getDrawingPatriarch() so
         //  everything will be all screwy
         // So, start again
         b = openSample("44010-SingleChart.xls");
-        
+
         b = writeRead(b);
         assertEquals(2, b.getNumberOfSheets());
         s = b.getSheetAt(1);
         assertEquals(0, s.getFirstRowNum());
         assertEquals(8, s.getLastRowNum());
 
-        
+
         // Two charts, three sheets
         b = openSample("44010-TwoCharts.xls");
         assertEquals(3, b.getNumberOfSheets());
-        
+
         s = b.getSheetAt(1);
         assertEquals(0, s.getFirstRowNum());
         assertEquals(8, s.getLastRowNum());
         s = b.getSheetAt(2);
         assertEquals(0, s.getFirstRowNum());
         assertEquals(8, s.getLastRowNum());
-        
+
         // Has chart on 1st sheet??
         // FIXME
         assertNotNull(b.getSheetAt(0).getDrawingPatriarch());
         assertNull(b.getSheetAt(1).getDrawingPatriarch());
         assertNull(b.getSheetAt(2).getDrawingPatriarch());
         assertFalse(b.getSheetAt(0).getDrawingPatriarch().containsChart());
-        
-        // We've now called getDrawingPatriarch() so 
+
+        // We've now called getDrawingPatriarch() so
         //  everything will be all screwy
         // So, start again
         b = openSample("44010-TwoCharts.xls");
-        
+
         b = writeRead(b);
         assertEquals(3, b.getNumberOfSheets());
-        
+
         s = b.getSheetAt(1);
         assertEquals(0, s.getFirstRowNum());
         assertEquals(8, s.getLastRowNum());
@@ -203,8 +209,98 @@
         assertEquals(0, s.getFirstRowNum());
         assertEquals(8, s.getLastRowNum());
     }
-    
+
     private static HSSFWorkbook writeRead(HSSFWorkbook b) {
         return HSSFTestDataSamples.writeOutAndReadBack(b);
     }
-}
\ No newline at end of file
+
+
+    public void testSelectedSheet_bug44523() {
+        HSSFWorkbook wb=new HSSFWorkbook();
+        HSSFSheet sheet1 = wb.createSheet("Sheet1");
+        HSSFSheet sheet2 = wb.createSheet("Sheet2");
+        HSSFSheet sheet3 = wb.createSheet("Sheet3");
+        HSSFSheet sheet4 = wb.createSheet("Sheet4");
+
+        confirmActiveSelected(sheet1, true);
+        confirmActiveSelected(sheet2, false);
+        confirmActiveSelected(sheet3, false);
+        confirmActiveSelected(sheet4, false);
+
+        wb.setSelectedTab(1);
+
+        // Demonstrate bug 44525:
+        // Well... not quite, since isActive + isSelected were also added in the same bug fix
+        if (sheet1.isSelected()) {
+            throw new AssertionFailedError("Identified bug 44525 a");
+        }
+        wb.setActiveSheet(1);
+        if (sheet1.isActive()) {
+            throw new AssertionFailedError("Identified bug 44525 b");
+        }
+
+        confirmActiveSelected(sheet1, false);
+        confirmActiveSelected(sheet2, true);
+        confirmActiveSelected(sheet3, false);
+        confirmActiveSelected(sheet4, false);
+    }
+
+    public void testSelectMultiple() {
+        HSSFWorkbook wb=new HSSFWorkbook();
+        HSSFSheet sheet1 = wb.createSheet("Sheet1");
+        HSSFSheet sheet2 = wb.createSheet("Sheet2");
+        HSSFSheet sheet3 = wb.createSheet("Sheet3");
+        HSSFSheet sheet4 = wb.createSheet("Sheet4");
+        HSSFSheet sheet5 = wb.createSheet("Sheet5");
+        HSSFSheet sheet6 = wb.createSheet("Sheet6");
+
+        wb.setSelectedTabs(new int[] { 0, 2, 3});
+
+        assertEquals(true, sheet1.isSelected());
+        assertEquals(false, sheet2.isSelected());
+        assertEquals(true, sheet3.isSelected());
+        assertEquals(true, sheet4.isSelected());
+        assertEquals(false, sheet5.isSelected());
+        assertEquals(false, sheet6.isSelected());
+
+        wb.setSelectedTabs(new int[] { 1, 3, 5});
+
+        assertEquals(false, sheet1.isSelected());
+        assertEquals(true, sheet2.isSelected());
+        assertEquals(false, sheet3.isSelected());
+        assertEquals(true, sheet4.isSelected());
+        assertEquals(false, sheet5.isSelected());
+        assertEquals(true, sheet6.isSelected());
+
+        assertEquals(true, sheet1.isActive());
+        assertEquals(false, sheet2.isActive());
+
+
+        assertEquals(true, sheet1.isActive());
+        assertEquals(false, sheet3.isActive());
+        wb.setActiveSheet(2);
+        assertEquals(false, sheet1.isActive());
+        assertEquals(true, sheet3.isActive());
+
+        if (false) { // helpful if viewing this workbook in excel:
+            sheet1.createRow(0).createCell((short)0).setCellValue(new HSSFRichTextString("Sheet1"));
+            sheet2.createRow(0).createCell((short)0).setCellValue(new HSSFRichTextString("Sheet2"));
+            sheet3.createRow(0).createCell((short)0).setCellValue(new HSSFRichTextString("Sheet3"));
+            sheet4.createRow(0).createCell((short)0).setCellValue(new HSSFRichTextString("Sheet4"));
+
+            try {
+                File fOut = TempFile.createTempFile("sheetMultiSelect", ".xls");
+                FileOutputStream os = new FileOutputStream(fOut);
+                wb.write(os);
+                os.close();
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
+    private static void confirmActiveSelected(HSSFSheet sheet, boolean expected) {
+        assertEquals(expected, sheet.isActive());
+        assertEquals(expected, sheet.isSelected());
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org