appName = $appName; $this->request = $request; // default responders $this->responders = [ 'json' => function ($data) { if ($data instanceof DataResponse) { $response = new JSONResponse( $data->getData(), $data->getStatus() ); $dataHeaders = $data->getHeaders(); $headers = $response->getHeaders(); // do not overwrite Content-Type if it already exists if (isset($dataHeaders['Content-Type'])) { unset($headers['Content-Type']); } $response->setHeaders(array_merge($dataHeaders, $headers)); if ($data->getETag() !== null) { $response->setETag($data->getETag()); } if ($data->getLastModified() !== null) { $response->setLastModified($data->getLastModified()); } if ($data->isThrottled()) { $response->throttle($data->getThrottleMetadata()); } return $response; } return new JSONResponse($data); } ]; } /** * Parses an HTTP accept header and returns the supported responder type * @param string $acceptHeader * @param string $default * @return string the responder type * @since 7.0.0 * @since 9.1.0 Added default parameter */ public function getResponderByHTTPHeader($acceptHeader, $default = 'json') { $headers = explode(',', $acceptHeader); // return the first matching responder foreach ($headers as $header) { $header = strtolower(trim($header)); $responder = str_replace('application/', '', $header); if (array_key_exists($responder, $this->responders)) { return $responder; } } // no matching header return default return $default; } /** * Registers a formatter for a type * @param string $format * @param \Closure $responder * @since 7.0.0 */ protected function registerResponder($format, \Closure $responder) { $this->responders[$format] = $responder; } /** * Serializes and formats a response * @param mixed $response the value that was returned from a controller and * is not a Response instance * @param string $format the format for which a formatter has been registered * @throws \DomainException if format does not match a registered formatter * @return Response * @since 7.0.0 */ public function buildResponse($response, $format = 'json') { if (array_key_exists($format, $this->responders)) { $responder = $this->responders[$format]; return $responder($response); } throw new \DomainException('No responder registered for format ' . $format . '!'); } } ions'>fop-0_14_0_regions Apache XML Graphics FOP: https://github.com/apache/xmlgraphics-fopwww-data
aboutsummaryrefslogtreecommitdiffstats
path: root/test/layoutengine/standard-testcases/marker_font-size.xml
blob: c4a7baba15afa17bf8bd5f9e367da58d1c640dc7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?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 markers and font-size inheritance.
      This is currently incorrectly handled in that for relative font sizes
      the base value of the fo:marker context is used and not the font size
      from the fo:retrieve-marker context.
    </p>
  </info>
  <fo>
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <fo:layout-master-set>
        <fo:simple-page-master master-name="normal" page-width="5in" page-height="5in">
          <fo:region-body margin-top="1in" margin-bottom="1in"/>
          <fo:region-before extent="1in"/>
          <fo:region-after extent="1in"/>
        </fo:simple-page-master>
      </fo:layout-master-set>
      <fo:page-sequence master-reference="normal">
        <fo:static-content flow-name="xsl-region-before">
          <fo:block background-color="yellow" font-size="16pt">
            1. Marker <fo:retrieve-marker retrieve-class-name="m1" 
                          retrieve-boundary="page"
                          retrieve-position="first-starting-within-page" />
          </fo:block>
        </fo:static-content>
        <fo:static-content flow-name="xsl-region-after">
          <fo:block background-color="yellow" font-size="10pt">
            2. Marker <fo:retrieve-marker retrieve-class-name="m2" />
          </fo:block>
        </fo:static-content>
        <fo:flow flow-name="xsl-region-body">
          <fo:block background-color="red">
            <fo:marker marker-class-name="m1">
              <fo:block font-size=".5em">
                First marker with small font 
              </fo:block>
            </fo:marker>
          </fo:block>
          <fo:block background-color="green">
            <fo:marker marker-class-name="m2">
              <fo:block font-size="2em">
                Second marker big font
              </fo:block>
            </fo:marker>
          </fo:block>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </fo>
  <checks>
    <!-- font-size relative to the retrieve-marker context? -->
    <eval expected="8000" xpath="//regionBefore/block[1]/block/lineArea/text/@font-size"/>
    <eval expected="20000" xpath="//regionAfter/block[1]/block/lineArea/text/@font-size"/>
    
  </checks>
</testcase>