| /* ==================================================================== |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| ==================================================================== */ |
| |
| package org.apache.poi.xssf.usermodel.extensions; |
| |
| import static org.junit.jupiter.api.Assertions.assertEquals; |
| import static org.junit.jupiter.api.Assertions.assertFalse; |
| import static org.junit.jupiter.api.Assertions.assertNotNull; |
| import static org.junit.jupiter.api.Assertions.assertTrue; |
| import static org.junit.jupiter.api.Assertions.fail; |
| |
| import org.apache.poi.xssf.usermodel.XSSFOddHeader; |
| import org.apache.poi.xssf.usermodel.XSSFSheet; |
| import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
| import org.junit.jupiter.api.AfterEach; |
| import org.junit.jupiter.api.BeforeEach; |
| import org.junit.jupiter.api.Disabled; |
| import org.junit.jupiter.api.Test; |
| import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTHeaderFooter; |
| |
| class TestXSSFHeaderFooter { |
| |
| private XSSFWorkbook wb; |
| private XSSFSheet sheet; |
| private XSSFHeaderFooter hO; |
| private XSSFHeaderFooter hE; |
| private XSSFHeaderFooter hF; |
| private XSSFHeaderFooter fO; |
| private XSSFHeaderFooter fE; |
| private XSSFHeaderFooter fF; |
| |
| @BeforeEach |
| void before() { |
| wb = new XSSFWorkbook(); |
| sheet = wb.createSheet(); |
| hO = (XSSFHeaderFooter) sheet.getOddHeader(); |
| hE = (XSSFHeaderFooter) sheet.getEvenHeader(); |
| hF = (XSSFHeaderFooter) sheet.getFirstHeader(); |
| fO = (XSSFHeaderFooter) sheet.getOddFooter(); |
| fE = (XSSFHeaderFooter) sheet.getEvenFooter(); |
| fF = (XSSFHeaderFooter) sheet.getFirstFooter(); |
| } |
| |
| @AfterEach |
| void after() throws Exception { |
| wb.close(); |
| } |
| |
| @Test |
| void testGetHeaderFooter() { |
| CTHeaderFooter ctHf; |
| ctHf = hO.getHeaderFooter(); |
| assertNotNull(ctHf); |
| ctHf = hE.getHeaderFooter(); |
| assertNotNull(ctHf); |
| ctHf = hF.getHeaderFooter(); |
| assertNotNull(ctHf); |
| ctHf = fO.getHeaderFooter(); |
| assertNotNull(ctHf); |
| ctHf = fE.getHeaderFooter(); |
| assertNotNull(ctHf); |
| ctHf = fF.getHeaderFooter(); |
| assertNotNull(ctHf); |
| } |
| |
| @Test |
| void testGetValue() { |
| assertEquals("", hO.getValue()); |
| assertEquals("", hE.getValue()); |
| assertEquals("", hF.getValue()); |
| assertEquals("", fO.getValue()); |
| assertEquals("", fE.getValue()); |
| assertEquals("", fF.getValue()); |
| hO.setLeft("Left value"); |
| hO.setCenter("Center value"); |
| hO.setRight("Right value"); |
| hE.setLeft("LeftEvalue"); |
| hE.setCenter("CenterEvalue"); |
| hE.setRight("RightEvalue"); |
| hF.setLeft("LeftFvalue"); |
| hF.setCenter("CenterFvalue"); |
| hF.setRight("RightFvalue"); |
| assertEquals("&CCenter value&LLeft value&RRight value", hO.getValue()); |
| assertEquals("&CCenterEvalue&LLeftEvalue&RRightEvalue", hE.getValue()); |
| assertEquals("&CCenterFvalue&LLeftFvalue&RRightFvalue", hF.getValue()); |
| fO.setLeft("Left value1"); |
| fO.setCenter("Center value1"); |
| fO.setRight("Right value1"); |
| fE.setLeft("LeftEvalue1"); |
| fE.setCenter("CenterEvalue1"); |
| fE.setRight("RightEvalue1"); |
| fF.setLeft("LeftFvalue1"); |
| fF.setCenter("CenterFvalue1"); |
| fF.setRight("RightFvalue1"); |
| assertEquals("&CCenter value1&LLeft value1&RRight value1", fO.getValue()); |
| assertEquals("&CCenterEvalue1&LLeftEvalue1&RRightEvalue1", fE.getValue()); |
| assertEquals("&CCenterFvalue1&LLeftFvalue1&RRightFvalue1", fF.getValue()); |
| } |
| |
| @Disabled("Test not yet created") |
| void testAreFieldsStripped() { |
| } |
| |
| @Disabled("Test not yet created") |
| void testSetAreFieldsStripped() { |
| } |
| |
| @Test |
| void testStripFields() { |
| String simple = "I am a test header"; |
| String withPage = "I am a&P test header"; |
| String withLots = "I&A am&N a&P test&T header&U"; |
| String withFont = "I&22 am a&\"Arial,bold\" test header"; |
| String withOtherAnds = "I am a&P test header&&"; |
| String withOtherAnds2 = "I am a&P test header&a&b"; |
| |
| assertEquals(simple, XSSFOddHeader.stripFields(simple)); |
| assertEquals(simple, XSSFOddHeader.stripFields(withPage)); |
| assertEquals(simple, XSSFOddHeader.stripFields(withLots)); |
| assertEquals(simple, XSSFOddHeader.stripFields(withFont)); |
| assertEquals(simple + "&&", XSSFOddHeader.stripFields(withOtherAnds)); |
| assertEquals(simple + "&a&b", XSSFOddHeader.stripFields(withOtherAnds2)); |
| |
| // Now test the default strip flag |
| hE.setCenter("Center"); |
| hE.setLeft("In the left"); |
| |
| assertEquals("In the left", hE.getLeft()); |
| assertEquals("Center", hE.getCenter()); |
| assertEquals("", hE.getRight()); |
| |
| hE.setLeft("Top &P&F&D Left"); |
| assertEquals("Top &P&F&D Left", hE.getLeft()); |
| assertFalse(hE.areFieldsStripped()); |
| |
| hE.setAreFieldsStripped(true); |
| assertEquals("Top Left", hE.getLeft()); |
| assertTrue(hE.areFieldsStripped()); |
| |
| // Now even more complex |
| hE.setCenter("HEADER TEXT &P&N&D&T&Z&F&F&A&V"); |
| assertEquals("HEADER TEXT &V", hE.getCenter()); |
| } |
| |
| @Test |
| void testGetCenter() { |
| assertEquals("", hO.getCenter()); |
| assertEquals("", hE.getCenter()); |
| assertEquals("", hF.getCenter()); |
| assertEquals("", fO.getCenter()); |
| assertEquals("", fE.getCenter()); |
| assertEquals("", fF.getCenter()); |
| hO.setCenter("Center value"); |
| hE.setCenter("CenterEvalue"); |
| hF.setCenter("CenterFvalue"); |
| assertEquals("Center value", hO.getCenter()); |
| assertEquals("CenterEvalue", hE.getCenter()); |
| assertEquals("CenterFvalue", hF.getCenter()); |
| fO.setCenter("Center value1"); |
| fE.setCenter("CenterEvalue1"); |
| fF.setCenter("CenterFvalue1"); |
| assertEquals("Center value1", fO.getCenter()); |
| assertEquals("CenterEvalue1", fE.getCenter()); |
| assertEquals("CenterFvalue1", fF.getCenter()); |
| } |
| |
| @Test |
| void testGetLeft() { |
| assertEquals("", hO.getLeft()); |
| assertEquals("", hE.getLeft()); |
| assertEquals("", hF.getLeft()); |
| assertEquals("", fO.getLeft()); |
| assertEquals("", fE.getLeft()); |
| assertEquals("", fF.getLeft()); |
| hO.setLeft("Left value"); |
| hE.setLeft("LeftEvalue"); |
| hF.setLeft("LeftFvalue"); |
| assertEquals("Left value", hO.getLeft()); |
| assertEquals("LeftEvalue", hE.getLeft()); |
| assertEquals("LeftFvalue", hF.getLeft()); |
| fO.setLeft("Left value1"); |
| fE.setLeft("LeftEvalue1"); |
| fF.setLeft("LeftFvalue1"); |
| assertEquals("Left value1", fO.getLeft()); |
| assertEquals("LeftEvalue1", fE.getLeft()); |
| assertEquals("LeftFvalue1", fF.getLeft()); |
| } |
| |
| @Test |
| void testGetRight() { |
| assertEquals("", hO.getValue()); |
| assertEquals("", hE.getValue()); |
| assertEquals("", hF.getValue()); |
| assertEquals("", fO.getValue()); |
| assertEquals("", fE.getValue()); |
| assertEquals("", fF.getValue()); |
| hO.setRight("Right value"); |
| hE.setRight("RightEvalue"); |
| hF.setRight("RightFvalue"); |
| assertEquals("Right value", hO.getRight()); |
| assertEquals("RightEvalue", hE.getRight()); |
| assertEquals("RightFvalue", hF.getRight()); |
| fO.setRight("Right value1"); |
| fE.setRight("RightEvalue1"); |
| fF.setRight("RightFvalue1"); |
| assertEquals("Right value1", fO.getRight()); |
| assertEquals("RightEvalue1", fE.getRight()); |
| assertEquals("RightFvalue1", fF.getRight()); |
| } |
| |
| @Test |
| void testSetCenter() { |
| assertEquals("", hO.getValue()); |
| assertEquals("", hE.getValue()); |
| assertEquals("", hF.getValue()); |
| assertEquals("", fO.getValue()); |
| assertEquals("", fE.getValue()); |
| assertEquals("", fF.getValue()); |
| hO.setCenter("Center value"); |
| hE.setCenter("CenterEvalue"); |
| hF.setCenter("CenterFvalue"); |
| assertEquals("&CCenter value", hO.getValue()); |
| assertEquals("&CCenterEvalue", hE.getValue()); |
| assertEquals("&CCenterFvalue", hF.getValue()); |
| fO.setCenter("Center value1"); |
| fE.setCenter("CenterEvalue1"); |
| fF.setCenter("CenterFvalue1"); |
| assertEquals("&CCenter value1", fO.getValue()); |
| assertEquals("&CCenterEvalue1", fE.getValue()); |
| assertEquals("&CCenterFvalue1", fF.getValue()); |
| } |
| |
| @Test |
| void testSetLeft() { |
| assertEquals("", hO.getValue()); |
| assertEquals("", hE.getValue()); |
| assertEquals("", hF.getValue()); |
| assertEquals("", fO.getValue()); |
| assertEquals("", fE.getValue()); |
| assertEquals("", fF.getValue()); |
| hO.setLeft("Left value"); |
| hE.setLeft("LeftEvalue"); |
| hF.setLeft("LeftFvalue"); |
| assertEquals("&LLeft value", hO.getValue()); |
| assertEquals("&LLeftEvalue", hE.getValue()); |
| assertEquals("&LLeftFvalue", hF.getValue()); |
| fO.setLeft("Left value1"); |
| fE.setLeft("LeftEvalue1"); |
| fF.setLeft("LeftFvalue1"); |
| assertEquals("&LLeft value1", fO.getValue()); |
| assertEquals("&LLeftEvalue1", fE.getValue()); |
| assertEquals("&LLeftFvalue1", fF.getValue()); |
| } |
| |
| @Test |
| void testSetRight() { |
| assertEquals("", hO.getValue()); |
| assertEquals("", hE.getValue()); |
| assertEquals("", hF.getValue()); |
| assertEquals("", fO.getValue()); |
| assertEquals("", fE.getValue()); |
| assertEquals("", fF.getValue()); |
| hO.setRight("Right value"); |
| hE.setRight("RightEvalue"); |
| hF.setRight("RightFvalue"); |
| assertEquals("&RRight value", hO.getValue()); |
| assertEquals("&RRightEvalue", hE.getValue()); |
| assertEquals("&RRightFvalue", hF.getValue()); |
| fO.setRight("Right value1"); |
| fE.setRight("RightEvalue1"); |
| fF.setRight("RightFvalue1"); |
| assertEquals("&RRight value1", fO.getValue()); |
| assertEquals("&RRightEvalue1", fE.getValue()); |
| assertEquals("&RRightFvalue1", fF.getValue()); |
| } |
| |
| |
| |
| @Test |
| void testGetSetCenterLeftRight() { |
| |
| assertEquals("", fO.getCenter()); |
| fO.setCenter("My first center section"); |
| assertEquals("My first center section", fO.getCenter()); |
| fO.setCenter("No, let's update the center section"); |
| assertEquals("No, let's update the center section", fO.getCenter()); |
| fO.setLeft("And add a left one"); |
| fO.setRight("Finally the right section is added"); |
| assertEquals("And add a left one", fO.getLeft()); |
| assertEquals("Finally the right section is added", fO.getRight()); |
| |
| // Test changing the three sections value |
| fO.setCenter("Second center version"); |
| fO.setLeft("Second left version"); |
| fO.setRight("Second right version"); |
| assertEquals("Second center version", fO.getCenter()); |
| assertEquals("Second left version", fO.getLeft()); |
| assertEquals("Second right version", fO.getRight()); |
| |
| } |
| } |