diff options
author | Simon Steiner <ssteiner@apache.org> | 2018-07-13 10:29:57 +0000 |
---|---|---|
committer | Simon Steiner <ssteiner@apache.org> | 2018-07-13 10:29:57 +0000 |
commit | e6748b4ed1522214915b2e3cd4df2db9f2b7b3b2 (patch) | |
tree | b75f62ef1a16e363f01b0ddc2cb7f4daf9ad587d /fop | |
parent | a53d9972f9aa1f7dcff8db4a0922113f6974681f (diff) | |
download | xmlgraphics-fop-e6748b4ed1522214915b2e3cd4df2db9f2b7b3b2.tar.gz xmlgraphics-fop-e6748b4ed1522214915b2e3cd4df2db9f2b7b3b2.zip |
FOP-1760: Add change bar generation
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1835810 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'fop')
9 files changed, 1045 insertions, 1 deletions
diff --git a/fop/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd b/fop/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd index e25556f9b..e4865f2d2 100644 --- a/fop/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd +++ b/fop/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-datatypes.xsd @@ -67,6 +67,8 @@ </xs:simpleType> <xs:simpleType name="borderStyle"> <xs:restriction base="xs:string"> + <xs:enumeration value="none"/> + <xs:enumeration value="hidden"/> <xs:enumeration value="solid"/> <xs:enumeration value="dotted"/> <xs:enumeration value="dashed"/> @@ -79,6 +81,8 @@ </xs:simpleType> <xs:simpleType name="ruleStyle"> <xs:restriction base="xs:string"> + <xs:enumeration value="none"/> + <xs:enumeration value="hidden"/> <xs:enumeration value="solid"/> <xs:enumeration value="dotted"/> <xs:enumeration value="dashed"/> @@ -92,7 +96,7 @@ <!-- TODO refine me: \w+ will not be good enough for CMYK color, for example <xs:pattern value="\((solid|dotted|dashed|double|groove|ridge|inset|outset),\w+,\d+(,collapse-(inner|outer))?"/> --> - <xs:pattern value="\((solid|dotted|dashed|double|groove|ridge|inset|outset),.+\)"/> + <xs:pattern value="\((none|hidden|solid|dotted|dashed|double|groove|ridge|inset|outset),.+\)"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="lengthListType"> diff --git a/fop/test/layoutengine/standard-testcases/change-bar_block.xml b/fop/test/layoutengine/standard-testcases/change-bar_block.xml new file mode 100644 index 000000000..9277343b5 --- /dev/null +++ b/fop/test/layoutengine/standard-testcases/change-bar_block.xml @@ -0,0 +1,73 @@ +<?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 fo:change-bar-* on block elements.</p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master page-height="145mm" page-width="210mm" margin="10mm" + master-name="master"> + <fo:region-body column-count="2" column-gap="10mm"/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="master"> + <fo:flow flow-name="xsl-region-body"> + + <fo:block change-bar-style="solid" change-bar-color="red" change-bar-offset="3mm" + change-bar-width="0.3mm"> + + <fo:change-bar-begin change-bar-class="global"/> + <fo:block id="red-01" color="red">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-begin change-bar-class="local-blue" change-bar-color="blue" + change-bar-offset="2mm"/> + <fo:block id="blue-01" color="blue">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="local-blue"/> + <fo:change-bar-begin change-bar-class="local-green" change-bar-color="green" + change-bar-offset="2mm"/> + <fo:block id="green-01" color="green">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="local-green"/> + <fo:block id="red-02" color="red">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="global"/> + + </fo:block> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='red-01']/block[1]/@border-start"/> + <eval expected="-9353" xpath="//block[@prod-id='red-01']/block[1]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='blue-01']/block[1]/@border-start"/> + <eval expected="-9353" xpath="//block[@prod-id='blue-01']/block[1]/@left-offset"/> + <eval expected="(solid,#0000ff,850)" xpath="//block[@prod-id='blue-01']/block[2]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='blue-01']/block[2]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='green-01']/block[1]/@border-start"/> + <eval expected="-9353" xpath="//block[@prod-id='green-01']/block[1]/@left-offset"/> + <eval expected="(solid,#008000,850)" xpath="//block[@prod-id='green-01']/block[2]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='green-01']/block[2]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='red-02']/block[1]/@border-start"/> + <eval expected="-9353" xpath="//block[@prod-id='red-02']/block[1]/@left-offset"/> + </checks> +</testcase> diff --git a/fop/test/layoutengine/standard-testcases/change-bar_inline.xml b/fop/test/layoutengine/standard-testcases/change-bar_inline.xml new file mode 100644 index 000000000..d90500db8 --- /dev/null +++ b/fop/test/layoutengine/standard-testcases/change-bar_inline.xml @@ -0,0 +1,81 @@ +<?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 fo:change-bar-* on inline elements.</p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master page-height="145mm" page-width="210mm" margin="10mm" + master-name="master"> + <fo:region-body column-count="2" column-gap="10mm"/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="master"> + <fo:flow flow-name="xsl-region-body"> + + <fo:block change-bar-style="solid" change-bar-color="red" change-bar-offset="2mm" + change-bar-width="0.3mm"> + + <fo:block>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + <fo:change-bar-begin change-bar-class="red-01"/><fo:inline id="red-01" + color="red">tempor incididunt</fo:inline><fo:change-bar-end + change-bar-class="red-01"/> ut labore et dolore magna aliqua.</fo:block> + + <fo:block>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + <fo:change-bar-begin change-bar-class="red-02"/><fo:inline id="red-02" + color="red">tempor incididunt</fo:inline><fo:change-bar-end + change-bar-class="red-02"/> ut labore et <fo:change-bar-begin + change-bar-color="blue" change-bar-offset="3mm" change-bar-class="blue-02" + /><fo:inline id="blue-02" color="blue">dolore + magna</fo:inline><fo:change-bar-end change-bar-class="blue-02"/> + aliqua.</fo:block> + + <fo:block>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + <fo:change-bar-begin change-bar-class="red-03"/><fo:inline id="red-03-a" + color="red">tempor incididunt ut </fo:inline><fo:change-bar-begin + change-bar-color="blue" change-bar-offset="3mm" change-bar-class="blue-03" + /><fo:inline id="blue-03" color="blue">labore</fo:inline><fo:change-bar-end + change-bar-class="blue-03"/><fo:inline id="red-03-b" color="red"> et dolore + magna</fo:inline><fo:change-bar-end change-bar-class="red-03"/> + aliqua.</fo:block> + + </fo:block> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <eval expected="(solid,#ff0000,850)" xpath="//inlineparent[@prod-id='red-01']/inlineblock[1]/@border-start"/> + <eval expected="-6519" xpath="//inlineparent[@prod-id='red-01']/inlineblock[1]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//inlineparent[@prod-id='red-02']/inlineblock[1]/@border-start"/> + <eval expected="-6519" xpath="//inlineparent[@prod-id='red-02']/inlineblock[1]/@left-offset"/> + <eval expected="(solid,#0000ff,850)" xpath="//inlineparent[@prod-id='blue-02']/inlineblock[1]/@border-start"/> + <eval expected="-9353" xpath="//inlineparent[@prod-id='blue-02']/inlineblock[1]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//inlineparent[@prod-id='red-03-a']/inlineblock[1]/@border-start"/> + <eval expected="-6519" xpath="//inlineparent[@prod-id='red-03-a']/inlineblock[1]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//inlineparent[@prod-id='blue-03']/inlineblock[1]/@border-start"/> + <eval expected="-6519" xpath="//inlineparent[@prod-id='blue-03']/inlineblock[1]/@left-offset"/> + <eval expected="(solid,#0000ff,850)" xpath="//inlineparent[@prod-id='blue-03']/inlineblock[2]/@border-start"/> + <eval expected="-9353" xpath="//inlineparent[@prod-id='blue-03']/inlineblock[2]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//inlineparent[@prod-id='red-03-b']/inlineblock[1]/@border-start"/> + <eval expected="-6519" xpath="//inlineparent[@prod-id='red-03-b']/inlineblock[1]/@left-offset"/> + </checks> +</testcase> diff --git a/fop/test/layoutengine/standard-testcases/change-bar_list.xml b/fop/test/layoutengine/standard-testcases/change-bar_list.xml new file mode 100644 index 000000000..f1219fc84 --- /dev/null +++ b/fop/test/layoutengine/standard-testcases/change-bar_list.xml @@ -0,0 +1,90 @@ +<?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 fo:change-bar-* on list elements.</p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master page-height="145mm" page-width="210mm" margin="10mm" + master-name="master"> + <fo:region-body column-count="2" column-gap="10mm"/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="master"> + <fo:flow flow-name="xsl-region-body"> + + <fo:block change-bar-style="solid" change-bar-color="red" change-bar-width="0.3mm" + change-bar-offset="3mm"> + <fo:change-bar-begin change-bar-class="list-block"/> + <fo:list-block id="list-block"> + <fo:change-bar-begin change-bar-class="list-item-first" change-bar-offset="2mm" + change-bar-color="green"/> + <fo:list-item id="list-item-first"> + <fo:list-item-label id="list-item-first-label" end-indent="label-end()"> + <fo:block>1</fo:block> + </fo:list-item-label> + <fo:list-item-body id="list-item-first-body" start-indent="body-start()"> + <fo:block>First</fo:block> + </fo:list-item-body> + </fo:list-item> + <fo:change-bar-end change-bar-class="list-item-first"/> + <fo:list-item id="list-item-second"> + <fo:change-bar-begin change-bar-class="list-item-second-label" + change-bar-offset="2mm" change-bar-color="blue"/> + <fo:list-item-label id="list-item-second-label" end-indent="label-end()"> + <fo:block>2</fo:block> + </fo:list-item-label> + <fo:change-bar-end change-bar-class="list-item-second-label"/> + <fo:change-bar-begin change-bar-class="list-item-second-body" change-bar-offset="1mm" + change-bar-color="magenta"/> + <fo:list-item-body id="list-item-second-body" start-indent="body-start()"> + <fo:block>Second</fo:block> + </fo:list-item-body> + <fo:change-bar-end change-bar-class="list-item-second-body"/> + </fo:list-item> + </fo:list-block> + <fo:change-bar-end change-bar-class="list-block"/> + </fo:block> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <!-- the first --> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='list-item-first-label']/block[1]/block[1]/@border-start"/> + <eval expected="-9353" xpath="//block[@prod-id='list-item-first-label']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#008000,850)" xpath="//block[@prod-id='list-item-first-label']/block[1]/block[2]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='list-item-first-label']/block[1]/block[2]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='list-item-first-body']/block[1]/block[1]/@border-start"/> + <eval expected="-9353" xpath="//block[@prod-id='list-item-first-body']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#008000,850)" xpath="//block[@prod-id='list-item-first-body']/block[1]/block[2]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='list-item-first-body']/block[1]/block[2]/@left-offset"/> + <!-- the second --> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='list-item-second-label']/block[1]/block[1]/@border-start"/> + <eval expected="-9353" xpath="//block[@prod-id='list-item-second-label']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#0000ff,850)" xpath="//block[@prod-id='list-item-second-label']/block[1]/block[2]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='list-item-second-label']/block[1]/block[2]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='list-item-second-body']/block[1]/block[1]/@border-start"/> + <eval expected="-9353" xpath="//block[@prod-id='list-item-second-body']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#ff00ff,850)" xpath="//block[@prod-id='list-item-second-body']/block[1]/block[2]/@border-start"/> + <eval expected="-3684" xpath="//block[@prod-id='list-item-second-body']/block[1]/block[2]/@left-offset"/> + </checks> +</testcase> diff --git a/fop/test/layoutengine/standard-testcases/change-bar_overlapped.xml b/fop/test/layoutengine/standard-testcases/change-bar_overlapped.xml new file mode 100644 index 000000000..240670773 --- /dev/null +++ b/fop/test/layoutengine/standard-testcases/change-bar_overlapped.xml @@ -0,0 +1,95 @@ +<?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 fo:change-bar-* on list elements.</p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master page-height="145mm" page-width="210mm" margin="10mm" + master-name="master"> + <fo:region-body column-count="2" column-gap="10mm"/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="master"> + <fo:flow flow-name="xsl-region-body"> + + <fo:block change-bar-style="solid" change-bar-color="red" change-bar-offset="2mm" + change-bar-width="0.3mm"> + + <fo:block> + <fo:change-bar-begin change-bar-class="first-half"/><fo:inline color="red" + id="first-half">January February March April May </fo:inline><fo:change-bar-begin + change-bar-class="summer" change-bar-color="green" change-bar-offset="1mm" + /><fo:inline color="brown" id="june-inline">June</fo:inline><fo:change-bar-end + change-bar-class="first-half"/><fo:inline color="green" id="summer"> July + August</fo:inline><fo:change-bar-end change-bar-class="summer"/> September October + November December</fo:block> + + <fo:change-bar-begin change-bar-class="first-half"/> + <fo:block id="january">January</fo:block> + <fo:block id="february">February</fo:block> + <fo:block id="march">March</fo:block> + <fo:wrapper color="red"> + <fo:block id="april">April</fo:block> + <fo:block id="may">May</fo:block> + </fo:wrapper> + <fo:change-bar-begin change-bar-class="summer" change-bar-color="green" + change-bar-offset="1mm"/> + <fo:wrapper color="brown"> + <fo:block id="june-block">June</fo:block> + </fo:wrapper> + <fo:change-bar-end change-bar-class="first-half"/> + <fo:wrapper color="red"> + <fo:block id="july">July</fo:block> + <fo:block id="august">August</fo:block> + </fo:wrapper> + <fo:change-bar-end change-bar-class="summer"/> + <fo:block id="september">September</fo:block> + <fo:block id="october">October</fo:block> + <fo:block id="november">November</fo:block> + <fo:block id="december">December</fo:block> + + </fo:block> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <!-- inline --> + <eval expected="(solid,#ff0000,850)" xpath="//inlineparent[@prod-id='first-half']/inlineblock[1]/@border-start"/> + <eval expected="-6519" xpath="//inlineparent[@prod-id='first-half']/inlineblock[1]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//inlineparent[@prod-id='june-inline']/inlineblock[1]/@border-start"/> + <eval expected="-6519" xpath="//inlineparent[@prod-id='june-inline']/inlineblock[1]/@left-offset"/> + <eval expected="(solid,#008000,850)" xpath="//inlineparent[@prod-id='june-inline']/inlineblock[2]/@border-start"/> + <eval expected="-3684" xpath="//inlineparent[@prod-id='june-inline']/inlineblock[2]/@left-offset"/> + <eval expected="(solid,#008000,850)" xpath="//lineArea[2]/inlineparent[@prod-id='summer']/inlineblock[1]/@border-start"/> + <eval expected="-3684" xpath="//lineArea[2]/inlineparent[@prod-id='summer']/inlineblock[1]/@left-offset"/> + <!-- block --> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='may']/block[1]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='may']/block[1]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='june-block']/block[1]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='june-block']/block[1]/@left-offset"/> + <eval expected="(solid,#008000,850)" xpath="//block[@prod-id='june-block']/block[2]/@border-start"/> + <eval expected="-3684" xpath="//block[@prod-id='june-block']/block[2]/@left-offset"/> + <eval expected="(solid,#008000,850)" xpath="//block[@prod-id='july']/block[1]/@border-start"/> + <eval expected="-3684" xpath="//block[@prod-id='july']/block[1]/@left-offset"/> + </checks> +</testcase> diff --git a/fop/test/layoutengine/standard-testcases/change-bar_placement-rtl.xml b/fop/test/layoutengine/standard-testcases/change-bar_placement-rtl.xml new file mode 100644 index 000000000..f9b5b197e --- /dev/null +++ b/fop/test/layoutengine/standard-testcases/change-bar_placement-rtl.xml @@ -0,0 +1,226 @@ +<?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 fo:change-bar-start placement.</p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master page-height="145mm" page-width="210mm" margin="10mm" + master-name="master"> + <fo:region-body column-count="2" column-gap="10mm"/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="master" writing-mode="rl-tb"> + <fo:flow flow-name="xsl-region-body"> + + <fo:block change-bar-style="solid" change-bar-color="red" change-bar-offset="2mm" + change-bar-width="0.3mm"> + + <fo:change-bar-begin change-bar-class="left" change-bar-placement="left"/> + <fo:block id="page1-col1-left">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="left"/> + + <fo:change-bar-begin change-bar-class="right" change-bar-placement="right"/> + <fo:block id="page1-col1-right">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="right"/> + + <fo:change-bar-begin change-bar-class="start" change-bar-placement="start"/> + <fo:block id="page1-col1-start">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="start"/> + + <fo:change-bar-begin change-bar-class="end" change-bar-placement="end"/> + <fo:block id="page1-col1-end">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="end"/> + + <fo:change-bar-begin change-bar-class="inside" change-bar-placement="inside"/> + <fo:block id="page1-col1-inside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="inside"/> + + <fo:change-bar-begin change-bar-class="outside" change-bar-placement="outside"/> + <fo:block id="page1-col1-outside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="outside"/> + + <fo:change-bar-begin change-bar-class="left" change-bar-placement="left"/> + <fo:block id="page1-col2-left">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="left"/> + + <fo:change-bar-begin change-bar-class="right" change-bar-placement="right"/> + <fo:block id="page1-col2-right">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="right"/> + + <fo:change-bar-begin change-bar-class="start" change-bar-placement="start"/> + <fo:block id="page1-col2-start">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="start"/> + + <fo:change-bar-begin change-bar-class="end" change-bar-placement="end"/> + <fo:block id="page1-col2-end">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="end"/> + + <fo:change-bar-begin change-bar-class="inside" change-bar-placement="inside"/> + <fo:block id="page1-col2-inside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="inside"/> + + <fo:change-bar-begin change-bar-class="outside" change-bar-placement="outside"/> + <fo:block id="page1-col2-outside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="outside"/> + + <fo:change-bar-begin change-bar-class="left" change-bar-placement="left"/> + <fo:block id="page2-col1-left">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="left"/> + + <fo:change-bar-begin change-bar-class="right" change-bar-placement="right"/> + <fo:block id="page2-col1-right">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="right"/> + + <fo:change-bar-begin change-bar-class="start" change-bar-placement="start"/> + <fo:block id="page2-col1-start">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="start"/> + + <fo:change-bar-begin change-bar-class="end" change-bar-placement="end"/> + <fo:block id="page2-col1-end">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="end"/> + + <fo:change-bar-begin change-bar-class="inside" change-bar-placement="inside"/> + <fo:block id="page2-col1-inside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="inside"/> + + <fo:change-bar-begin change-bar-class="outside" change-bar-placement="outside"/> + <fo:block id="page2-col1-outside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="outside"/> + + <fo:change-bar-begin change-bar-class="left" change-bar-placement="left"/> + <fo:block id="page2-col2-left">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="left"/> + + <fo:change-bar-begin change-bar-class="right" change-bar-placement="right"/> + <fo:block id="page2-col2-right">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="right"/> + + <fo:change-bar-begin change-bar-class="start" change-bar-placement="start"/> + <fo:block id="page2-col2-start">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="start"/> + + <fo:change-bar-begin change-bar-class="end" change-bar-placement="end"/> + <fo:block id="page2-col2-end">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="end"/> + + <fo:change-bar-begin change-bar-class="inside" change-bar-placement="inside"/> + <fo:block id="page2-col2-inside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="inside"/> + + <fo:change-bar-begin change-bar-class="outside" change-bar-placement="outside"/> + <fo:block id="page2-col2-outside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="outside"/> + + <fo:change-bar-begin change-bar-class="alternate" change-bar-placement="alternate"/> + <fo:block id="page3-col1-alternate">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:block id="page3-col2-alternate" break-before="column">Lorem ipsum dolor sit + amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore + et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="alternate"/> + </fo:block> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <eval expected="-6519" xpath="//block[@prod-id='page1-col1-left']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page1-col1-right']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page1-col1-start']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page1-col1-end']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page1-col1-inside']/block[1]/@left-offset"/> + <eval expected="-5669" xpath="//block[@prod-id='page1-col1-outside']/block[1]/@left-offset"/> + + <eval expected="-6519" xpath="//block[@prod-id='page1-col2-left']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page1-col2-right']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page1-col2-start']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page1-col2-end']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page1-col2-inside']/block[1]/@left-offset"/> + <eval expected="-5669" xpath="//block[@prod-id='page1-col2-outside']/block[1]/@left-offset"/> + + <eval expected="-6519" xpath="//block[@prod-id='page2-col1-left']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page2-col1-right']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page2-col1-start']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page2-col1-end']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page2-col1-inside']/block[1]/@left-offset"/> + <eval expected="-5669" xpath="//block[@prod-id='page2-col1-outside']/block[1]/@left-offset"/> + + <eval expected="-6519" xpath="//block[@prod-id='page2-col2-left']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page2-col2-right']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page2-col2-start']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page2-col2-end']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page2-col2-inside']/block[1]/@left-offset"/> + <eval expected="-5669" xpath="//block[@prod-id='page2-col2-outside']/block[1]/@left-offset"/> + + <eval expected="-5669" xpath="//block[@prod-id='page3-col1-alternate']/block[1]/@left-offset"/> + <eval expected="-5669" xpath="//block[@prod-id='page3-col2-alternate']/block[1]/@left-offset"/> + </checks> +</testcase> diff --git a/fop/test/layoutengine/standard-testcases/change-bar_placement.xml b/fop/test/layoutengine/standard-testcases/change-bar_placement.xml new file mode 100644 index 000000000..82d4bd9fa --- /dev/null +++ b/fop/test/layoutengine/standard-testcases/change-bar_placement.xml @@ -0,0 +1,226 @@ +<?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 fo:change-bar-start placement.</p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master page-height="145mm" page-width="210mm" margin="10mm" + master-name="master"> + <fo:region-body column-count="2" column-gap="10mm"/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="master"> + <fo:flow flow-name="xsl-region-body"> + + <fo:block change-bar-style="solid" change-bar-color="red" change-bar-offset="2mm" + change-bar-width="0.3mm"> + + <fo:change-bar-begin change-bar-class="left" change-bar-placement="left"/> + <fo:block id="page1-col1-left">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="left"/> + + <fo:change-bar-begin change-bar-class="right" change-bar-placement="right"/> + <fo:block id="page1-col1-right">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="right"/> + + <fo:change-bar-begin change-bar-class="start" change-bar-placement="start"/> + <fo:block id="page1-col1-start">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="start"/> + + <fo:change-bar-begin change-bar-class="end" change-bar-placement="end"/> + <fo:block id="page1-col1-end">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="end"/> + + <fo:change-bar-begin change-bar-class="inside" change-bar-placement="inside"/> + <fo:block id="page1-col1-inside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="inside"/> + + <fo:change-bar-begin change-bar-class="outside" change-bar-placement="outside"/> + <fo:block id="page1-col1-outside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="outside"/> + + <fo:change-bar-begin change-bar-class="left" change-bar-placement="left"/> + <fo:block id="page1-col2-left">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="left"/> + + <fo:change-bar-begin change-bar-class="right" change-bar-placement="right"/> + <fo:block id="page1-col2-right">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="right"/> + + <fo:change-bar-begin change-bar-class="start" change-bar-placement="start"/> + <fo:block id="page1-col2-start">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="start"/> + + <fo:change-bar-begin change-bar-class="end" change-bar-placement="end"/> + <fo:block id="page1-col2-end">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="end"/> + + <fo:change-bar-begin change-bar-class="inside" change-bar-placement="inside"/> + <fo:block id="page1-col2-inside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="inside"/> + + <fo:change-bar-begin change-bar-class="outside" change-bar-placement="outside"/> + <fo:block id="page1-col2-outside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="outside"/> + + <fo:change-bar-begin change-bar-class="left" change-bar-placement="left"/> + <fo:block id="page2-col1-left">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="left"/> + + <fo:change-bar-begin change-bar-class="right" change-bar-placement="right"/> + <fo:block id="page2-col1-right">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="right"/> + + <fo:change-bar-begin change-bar-class="start" change-bar-placement="start"/> + <fo:block id="page2-col1-start">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="start"/> + + <fo:change-bar-begin change-bar-class="end" change-bar-placement="end"/> + <fo:block id="page2-col1-end">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="end"/> + + <fo:change-bar-begin change-bar-class="inside" change-bar-placement="inside"/> + <fo:block id="page2-col1-inside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="inside"/> + + <fo:change-bar-begin change-bar-class="outside" change-bar-placement="outside"/> + <fo:block id="page2-col1-outside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="outside"/> + + <fo:change-bar-begin change-bar-class="left" change-bar-placement="left"/> + <fo:block id="page2-col2-left">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="left"/> + + <fo:change-bar-begin change-bar-class="right" change-bar-placement="right"/> + <fo:block id="page2-col2-right">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="right"/> + + <fo:change-bar-begin change-bar-class="start" change-bar-placement="start"/> + <fo:block id="page2-col2-start">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="start"/> + + <fo:change-bar-begin change-bar-class="end" change-bar-placement="end"/> + <fo:block id="page2-col2-end">Lorem ipsum dolor sit amet, consectetur adipiscing + elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="end"/> + + <fo:change-bar-begin change-bar-class="inside" change-bar-placement="inside"/> + <fo:block id="page2-col2-inside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="inside"/> + + <fo:change-bar-begin change-bar-class="outside" change-bar-placement="outside"/> + <fo:block id="page2-col2-outside">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:change-bar-end change-bar-class="outside"/> + + <fo:change-bar-begin change-bar-class="alternate" change-bar-placement="alternate"/> + <fo:block id="page3-col1-alternate">Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua.</fo:block> + <fo:block id="page3-col2-alternate" break-before="column">Lorem ipsum dolor sit + amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore + et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="alternate"/> + </fo:block> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <eval expected="-6519" xpath="//block[@prod-id='page1-col1-left']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page1-col1-right']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page1-col1-start']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page1-col1-end']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page1-col1-inside']/block[1]/@left-offset"/> + <eval expected="-5669" xpath="//block[@prod-id='page1-col1-outside']/block[1]/@left-offset"/> + + <eval expected="-6519" xpath="//block[@prod-id='page1-col2-left']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page1-col2-right']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page1-col2-start']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page1-col2-end']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page1-col2-inside']/block[1]/@left-offset"/> + <eval expected="-5669" xpath="//block[@prod-id='page1-col2-outside']/block[1]/@left-offset"/> + + <eval expected="-6519" xpath="//block[@prod-id='page2-col1-left']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page2-col1-right']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page2-col1-start']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page2-col1-end']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page2-col1-inside']/block[1]/@left-offset"/> + <eval expected="-5669" xpath="//block[@prod-id='page2-col1-outside']/block[1]/@left-offset"/> + + <eval expected="-6519" xpath="//block[@prod-id='page2-col2-left']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page2-col2-right']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page2-col2-start']/block[1]/@left-offset"/> + <eval expected="5669" xpath="//block[@prod-id='page2-col2-end']/block[1]/@left-offset"/> + <eval expected="-6519" xpath="//block[@prod-id='page2-col2-inside']/block[1]/@left-offset"/> + <eval expected="-5669" xpath="//block[@prod-id='page2-col2-outside']/block[1]/@left-offset"/> + + <eval expected="-5669" xpath="//block[@prod-id='page3-col1-alternate']/block[1]/@left-offset"/> + <eval expected="-5669" xpath="//block[@prod-id='page3-col2-alternate']/block[1]/@left-offset"/> + </checks> +</testcase> diff --git a/fop/test/layoutengine/standard-testcases/change-bar_style.xml b/fop/test/layoutengine/standard-testcases/change-bar_style.xml new file mode 100644 index 000000000..65203cfeb --- /dev/null +++ b/fop/test/layoutengine/standard-testcases/change-bar_style.xml @@ -0,0 +1,102 @@ +<?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 fo:change-bar-start style.</p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master page-height="145mm" page-width="210mm" margin="10mm" + master-name="master"> + <fo:region-body column-count="2" column-gap="10mm"/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="master"> + <fo:flow flow-name="xsl-region-body"> + + <fo:block change-bar-color="red" change-bar-offset="2mm" change-bar-width="1mm"> + + <fo:change-bar-begin change-bar-class="none" change-bar-style="none"/> + <fo:block id="none">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="none"/> + + <fo:change-bar-begin change-bar-class="hidden" change-bar-style="hidden"/> + <fo:block id="hidden">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="hidden"/> + + <fo:change-bar-begin change-bar-class="dotted" change-bar-style="dotted"/> + <fo:block id="dotted">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="dotted"/> + + <fo:change-bar-begin change-bar-class="dashed" change-bar-style="dashed"/> + <fo:block id="dashed">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="dashed"/> + + <fo:change-bar-begin change-bar-class="solid" change-bar-style="solid"/> + <fo:block id="solid">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="solid"/> + + <fo:change-bar-begin change-bar-class="double" change-bar-style="double"/> + <fo:block id="double">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="double"/> + + <fo:change-bar-begin change-bar-class="groove" change-bar-style="groove"/> + <fo:block id="groove">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="groove"/> + + <fo:change-bar-begin change-bar-class="ridge" change-bar-style="ridge"/> + <fo:block id="ridge">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="ridge"/> + + <fo:change-bar-begin change-bar-class="inset" change-bar-style="inset"/> + <fo:block id="inset">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="inset"/> + + <fo:change-bar-begin change-bar-class="outset" change-bar-style="outset"/> + <fo:block id="outset">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed + do eiusmod tempor incididunt ut labore et dolore magna aliqua.</fo:block> + <fo:change-bar-end change-bar-class="outset"/> + </fo:block> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <eval expected="(none,#ff0000,2834)" xpath="//block[@prod-id='none']/block[1]/@border-start"/> + <eval expected="(hidden,#ff0000,2834)" xpath="//block[@prod-id='hidden']/block[1]/@border-start"/> + <eval expected="(dotted,#ff0000,2834)" xpath="//block[@prod-id='dotted']/block[1]/@border-start"/> + <eval expected="(dashed,#ff0000,2834)" xpath="//block[@prod-id='dashed']/block[1]/@border-start"/> + <eval expected="(solid,#ff0000,2834)" xpath="//block[@prod-id='solid']/block[1]/@border-start"/> + <eval expected="(double,#ff0000,2834)" xpath="//block[@prod-id='double']/block[1]/@border-start"/> + <eval expected="(groove,#ff0000,2834)" xpath="//block[@prod-id='groove']/block[1]/@border-start"/> + <eval expected="(ridge,#ff0000,2834)" xpath="//block[@prod-id='ridge']/block[1]/@border-start"/> + <eval expected="(inset,#ff0000,2834)" xpath="//block[@prod-id='inset']/block[1]/@border-start"/> + <eval expected="(outset,#ff0000,2834)" xpath="//block[@prod-id='outset']/block[1]/@border-start"/> + </checks> +</testcase> diff --git a/fop/test/layoutengine/standard-testcases/change-bar_table.xml b/fop/test/layoutengine/standard-testcases/change-bar_table.xml new file mode 100644 index 000000000..39bd4b8b1 --- /dev/null +++ b/fop/test/layoutengine/standard-testcases/change-bar_table.xml @@ -0,0 +1,147 @@ +<?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 fo:change-bar-* on table elements.</p> + </info> + <fo> + <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> + <fo:layout-master-set> + <fo:simple-page-master page-height="145mm" page-width="210mm" margin="10mm" + master-name="master"> + <fo:region-body column-count="2" column-gap="10mm"/> + </fo:simple-page-master> + </fo:layout-master-set> + <fo:page-sequence master-reference="master"> + <fo:flow flow-name="xsl-region-body"> + + <fo:table change-bar-style="solid" change-bar-color="red" change-bar-offset="2mm" + change-bar-width="0.3mm"> + <fo:table-header> + <fo:change-bar-begin change-bar-class="headerRow" change-bar-offset="0.1mm" + change-bar-color="green"/> + <fo:table-row> + <fo:table-cell id="header-row1-col1"> + <fo:block>header-row1-col1</fo:block> + </fo:table-cell> + <fo:table-cell id="header-row1-col2"> + <fo:block>header-row1-col2</fo:block> + </fo:table-cell> + </fo:table-row> + <fo:change-bar-end change-bar-class="headerRow"/> + <fo:table-row> + <fo:change-bar-begin change-bar-class="headerCell" change-bar-color="blue"/> + <fo:table-cell id="header-row2-col1"> + <fo:block>header-row2-col1</fo:block> + </fo:table-cell> + <fo:change-bar-end change-bar-class="headerCell"/> + <fo:table-cell id="header-row2-col2"> + <fo:change-bar-begin change-bar-class="headerCellBlock" + change-bar-offset="1mm"/> + <fo:block>header-row2-col2</fo:block> + <fo:change-bar-end change-bar-class="headerCellBlock"/> + </fo:table-cell> + </fo:table-row> + </fo:table-header> + <fo:change-bar-begin change-bar-class="footer"/> + <fo:table-footer> + <fo:table-row> + <fo:change-bar-begin change-bar-class="footerRow" change-bar-offset="3mm" + change-bar-color="green"/> + <fo:table-cell id="footer-row1-col1"> + <fo:block>footer-row1-col1</fo:block> + </fo:table-cell> + <fo:change-bar-end change-bar-class="footerRow"/> + <fo:table-cell id="footer-row1-col2"> + <fo:block>footer-row1-col2</fo:block> + </fo:table-cell> + </fo:table-row> + <fo:table-row> + <fo:table-cell id="footer-row2-col1"> + <fo:block>footer-row2-col1</fo:block> + </fo:table-cell> + <fo:table-cell id="footer-row2-col2"> + <fo:block>footer-row2-col2</fo:block> + </fo:table-cell> + </fo:table-row> + </fo:table-footer> + <fo:change-bar-end change-bar-class="footer"/> + <fo:table-body> + <fo:change-bar-begin change-bar-class="bodyRow"/> + <fo:table-row> + <fo:table-cell id="body-row1-col1"> + <fo:block>body-row1-col1</fo:block> + </fo:table-cell> + <fo:table-cell id="body-row1-col2"> + <fo:block>body-row1-col2</fo:block> + </fo:table-cell> + </fo:table-row> + <fo:change-bar-end change-bar-class="bodyRow"/> + <fo:table-row> + <fo:change-bar-begin change-bar-class="bodyCell" change-bar-offset="0.1mm" + change-bar-color="blue"/> + <fo:table-cell id="body-row2-col1"> + <fo:block>body-row2-col1</fo:block> + </fo:table-cell> + <fo:change-bar-end change-bar-class="bodyCell"/> + <fo:table-cell id="body-row2-col2"> + <fo:change-bar-begin change-bar-class="bodyCellBlock" + change-bar-offset="1mm"/> + <fo:block>body-row2-col2</fo:block> + <fo:change-bar-end change-bar-class="bodyCellBlock"/> + </fo:table-cell> + </fo:table-row> + </fo:table-body> + </fo:table> + </fo:flow> + </fo:page-sequence> + </fo:root> + </fo> + <checks> + <!-- header --> + <eval expected="(solid,#008000,850)" xpath="//block[@prod-id='header-row1-col1']/block[1]/block[1]/@border-start"/> + <eval expected="-1133" xpath="//block[@prod-id='header-row1-col1']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#008000,850)" xpath="//block[@prod-id='header-row1-col2']/block[1]/block[1]/@border-start"/> + <eval expected="-1133" xpath="//block[@prod-id='header-row1-col2']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#0000ff,850)" xpath="//block[@prod-id='header-row2-col1']/block[1]/block[1]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='header-row2-col1']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='header-row2-col2']/block[1]/block[1]/@border-start"/> + <eval expected="-3684" xpath="//block[@prod-id='header-row2-col2']/block[1]/block[1]/@left-offset"/> + <!-- body --> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='body-row1-col1']/block[1]/block[1]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='body-row1-col1']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='body-row1-col2']/block[1]/block[1]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='body-row1-col2']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#0000ff,850)" xpath="//block[@prod-id='body-row2-col1']/block[1]/block[1]/@border-start"/> + <eval expected="-1133" xpath="//block[@prod-id='body-row2-col1']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='body-row2-col2']/block[1]/block[1]/@border-start"/> + <eval expected="-3684" xpath="//block[@prod-id='body-row2-col2']/block[1]/block[1]/@left-offset"/> + <!-- footer --> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='footer-row1-col1']/block[1]/block[1]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='footer-row1-col1']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#008000,850)" xpath="//block[@prod-id='footer-row1-col1']/block[1]/block[2]/@border-start"/> + <eval expected="-9353" xpath="//block[@prod-id='footer-row1-col1']/block[1]/block[2]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='footer-row1-col2']/block[1]/block[1]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='footer-row1-col2']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='footer-row2-col1']/block[1]/block[1]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='footer-row2-col1']/block[1]/block[1]/@left-offset"/> + <eval expected="(solid,#ff0000,850)" xpath="//block[@prod-id='footer-row2-col2']/block[1]/block[1]/@border-start"/> + <eval expected="-6519" xpath="//block[@prod-id='footer-row2-col2']/block[1]/block[1]/@left-offset"/> + </checks> +</testcase> |