diff options
author | Simon Steiner <ssteiner@apache.org> | 2017-09-28 14:45:41 +0000 |
---|---|---|
committer | Simon Steiner <ssteiner@apache.org> | 2017-09-28 14:45:41 +0000 |
commit | c784e62a58b9f33e56b19198c0cd03ab6a627903 (patch) | |
tree | 6c4fb6e86bfa0b0f779eb77fdf7ceebbd76bb19b | |
parent | 991b446034726979e931c3033ace13344b153a30 (diff) | |
download | xmlgraphics-fop-c784e62a58b9f33e56b19198c0cd03ab6a627903.tar.gz xmlgraphics-fop-c784e62a58b9f33e56b19198c0cd03ab6a627903.zip |
FOP-2744: Allow unmapped flow for repeatable-page-master
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1810008 13f79535-47bb-0310-9956-ffa450edef68
3 files changed, 59 insertions, 1 deletions
diff --git a/fop-core/src/main/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java b/fop-core/src/main/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java index 6b993424c..75bfe5e60 100644 --- a/fop-core/src/main/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java +++ b/fop-core/src/main/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java @@ -205,7 +205,8 @@ public class PageSequenceLayoutManager extends AbstractPageSequenceLayoutManager String psName = getPageSequence().getMainFlow().getFlowName(); Region body = newPage.getSimplePageMaster().getRegion(FO_REGION_BODY); String name = body.getRegionName(); - if (strict && !name.equals(psName) && !name.equals(((RegionBody)body).getDefaultRegionName())) { + if (strict && !name.equals(psName) && !name.equals(((RegionBody)body).getDefaultRegionName()) + && getPageSequence().hasPagePositionLast()) { throw new RuntimeException( "The flow-name \"" + name + "\" could not be mapped to a region-name in the layout-master-set"); } diff --git a/fop-core/src/test/java/org/apache/fop/layoutmgr/PageSequenceLayoutManagerTestCase.java b/fop-core/src/test/java/org/apache/fop/layoutmgr/PageSequenceLayoutManagerTestCase.java index e6a0975a8..a87dc0fa0 100644 --- a/fop-core/src/test/java/org/apache/fop/layoutmgr/PageSequenceLayoutManagerTestCase.java +++ b/fop-core/src/test/java/org/apache/fop/layoutmgr/PageSequenceLayoutManagerTestCase.java @@ -127,6 +127,7 @@ public class PageSequenceLayoutManagerTestCase { when(flow.getFlowName()).thenReturn(MAIN_FLOW_NAME); when(pseq.getRoot()).thenReturn(root); + when(pseq.hasPagePositionLast()).thenReturn(true); when(pseq.getMainFlow()).thenReturn(flow); PageSequenceLayoutManager pageSequenceLayoutManager = new PageSequenceLayoutManager(ath, pseq) { diff --git a/fop/test/layoutengine/standard-testcases/simple-page-master_unmapped_flow-name_2.xml b/fop/test/layoutengine/standard-testcases/simple-page-master_unmapped_flow-name_2.xml new file mode 100644 index 000000000..bf874955a --- /dev/null +++ b/fop/test/layoutengine/standard-testcases/simple-page-master_unmapped_flow-name_2.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + 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. +--> +<!-- $Id$ --> +<testcase> + <info> + <p> + This test checks that when the region-body@region-name of simple-page-master does not map to + the main flow, the PageSequenceLayoutManager treats the generated Page as an empty/blank page. + </p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions"> + <fo:layout-master-set> + <fo:simple-page-master master-name="CoverFront" page-width="8.5in" page-height="11in"> + <fo:region-body region-name="CoverPageBody"/> + </fo:simple-page-master> + <fo:simple-page-master master-name="CoverBack" page-width="8.5in" page-height="11in"> + <fo:region-body region-name="CoverPageBody"/> + </fo:simple-page-master> + <fo:simple-page-master master-name="Invoice_First_Page" page-width="8.5in" page-height="11in"> + <fo:region-body region-name="PageBody"/> + </fo:simple-page-master> + <fo:page-sequence-master master-name="Cover"> + <fo:repeatable-page-master-reference maximum-repeats="1" master-reference="CoverFront"/> + <fo:repeatable-page-master-reference maximum-repeats="1" master-reference="CoverBack"/> + <fo:repeatable-page-master-reference maximum-repeats="1" master-reference="Invoice_First_Page"/> + </fo:page-sequence-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="Cover"> + <fo:flow flow-name="PageBody"> + <fo:block>test</fo:block> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <eval expected="CoverPageBody" xpath="//pageViewport[1]//regionBody/@name"/> + <eval expected="CoverPageBody" xpath="//pageViewport[2]//regionBody/@name"/> + <eval expected="PageBody" xpath="//pageViewport[3]//regionBody/@name"/> + </checks> +</testcase> |