From bf9d5280769a5679febdfd957dfc17d84fb5caec Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Mon, 23 Oct 2023 16:30:58 +0000 Subject: [PATCH] fix tests --- Utils/Parser/Calendar/ICalParser.php | 34 ++++++++++++------- tests/Stdlib/Tree/BinarySearchTreeTest.php | 10 ++++++ tests/Utils/Parser/Calendar/data/1.json | 12 +++---- tests/Utils/Parser/Markdown/MarkdownTest.php | 22 +++++++++--- .../Parser/Presentation/data/Powerpoint.html | 2 +- 5 files changed, 56 insertions(+), 24 deletions(-) diff --git a/Utils/Parser/Calendar/ICalParser.php b/Utils/Parser/Calendar/ICalParser.php index dc0c8bc05..6d3b7c791 100755 --- a/Utils/Parser/Calendar/ICalParser.php +++ b/Utils/Parser/Calendar/ICalParser.php @@ -43,28 +43,28 @@ class ICalParser $event = []; \preg_match('/UID:(.*?)\n/', $match[1], $uidMatch); - $event['uid'] = \DateTime::createFromFormat('Ymd\THis', $uidMatch[1] ?? ''); + $event['uid'] = $uidMatch[1] ?? null; \preg_match('/STATUS:(.*?)\n/', $match[1], $statusMatch); - $event['status'] = \DateTime::createFromFormat('Ymd\THis', $statusMatch[1] ?? ''); + $event['status'] = $statusMatch[1] ?? null; \preg_match('/DTSTART:(.*?)\n/', $match[1], $startMatch); - $event['start'] = \DateTime::createFromFormat('Ymd\THis', $startMatch[1] ?? ''); + $event['start'] = $startMatch[1] ?? null; \preg_match('/DTEND:(.*?)\n/', $match[1], $endMatch); - $event['end'] = \DateTime::createFromFormat('Ymd\THis', $endMatch[1] ?? ''); + $event['end'] = $endMatch[1] ?? null; \preg_match('/ORGANIZER:(.*?)\n/', $match[1], $organizerMatch); - $event['organizer'] = $organizerMatch[1] ?? ''; + $event['organizer'] = $organizerMatch[1] ?? null; \preg_match('/SUMMARY:(.*?)\n/', $match[1], $summaryMatch); - $event['summary'] = $summaryMatch[1] ?? ''; + $event['summary'] = $summaryMatch[1] ?? null; \preg_match('/DESCRIPTION:(.*?)\n/', $match[1], $descriptionMatch); - $event['description'] = $descriptionMatch[1] ?? ''; + $event['description'] = $descriptionMatch[1] ?? null; \preg_match('/LOCATION:(.*?)\n/', $match[1], $locationMatch); - $event['location'] = $locationMatch[1] ?? ''; + $event['location'] = $locationMatch[1] ?? null; \preg_match('/GEO:(.*?)\n/', $match[1], $geo); $temp = \explode(';', $geo[1]); @@ -74,7 +74,7 @@ class ICalParser ]; \preg_match('/URL:(.*?)\n/', $match[1], $url); - $event['url'] = $url[1] ?? ''; + $event['url'] = $url[1] ?? null; // Check if this event is recurring if (\preg_match('/RRULE:(.*?)\n/', $match[1], $rruleMatch)) { @@ -102,17 +102,27 @@ class ICalParser $rrule = []; \preg_match('/FREQ=(.*?);/', $rruleString, $freqMatch); - $rrule['freq'] = $freqMatch[1] ?? ''; + $rrule['freq'] = $freqMatch[1] ?? null; \preg_match('/INTERVAL=(.*?);/', $rruleString, $intervalMatch); - $rrule['interval'] = (int) ($intervalMatch[1] ?? 0); + $rrule['interval'] = $intervalMatch[1] ?? null; + + \preg_match('/BYMONTH=(.*?);/', $rruleString, $monthMatch); + $rrule['bymonth'] = $monthMatch[1] ?? null; + + \preg_match('/BYMONTHDAY=(.*?);/', $rruleString, $monthdayMatch); + $rrule['bymonthday'] = $monthdayMatch[1] ?? null; if (\preg_match('/COUNT=(.*?);/', $rruleString, $countMatch)) { $rrule['count'] = (int) ($countMatch[1] ?? 0); + } else { + $rrule['count'] = null; } if (\preg_match('/UNTIL=(.*?);/', $rruleString, $untilMatch)) { - $rrule['until'] = \DateTime::createFromFormat('Ymd\THis', $untilMatch[1] ?? ''); + $rrule['until'] = $untilMatch[1] ?? null; + } else { + $rrule['until'] = null; } return $rrule; diff --git a/tests/Stdlib/Tree/BinarySearchTreeTest.php b/tests/Stdlib/Tree/BinarySearchTreeTest.php index adc01a2eb..c64a2876a 100644 --- a/tests/Stdlib/Tree/BinarySearchTreeTest.php +++ b/tests/Stdlib/Tree/BinarySearchTreeTest.php @@ -35,6 +35,16 @@ final class BinarySearchTreeTest extends \PHPUnit\Framework\TestCase $bst->insert(new Node('A', 'A')); $bst->insert(new Node('U', 'U')); $bst->insert(new Node('R', 'R')); + + self::assertEquals( + [ + 'key' => 'D', + 0 => ['key' => 'I'], + 1 => ['key' => 'I'], + ], + $bst->toArray() + ); + $bst->delete($bst->search('I')); $bst->insert(new Node('Z', 'Z')); diff --git a/tests/Utils/Parser/Calendar/data/1.json b/tests/Utils/Parser/Calendar/data/1.json index 9aeaa8621..1ddc70f1e 100644 --- a/tests/Utils/Parser/Calendar/data/1.json +++ b/tests/Utils/Parser/Calendar/data/1.json @@ -4,18 +4,18 @@ "status": "CONFIRMED", "start": "20080212", "end": "20080213", - "organizer": "", + "organizer": null, "summary": "Abraham Lincoln", - "description": "Born February 12, 1809\nSixteenth President (1861-1865)\n\n\n\nhttp://AmericanHistoryCalendar.com", + "description": "Born February 12, 1809\nSixteenth President (1861-1865)\\n\\n\\n\\nhttp://AmericanHistoryCalendar.com", "location": "Hodgenville, Kentucky", "geo": { - "lat": -85.7399606, - "lon": 37.5739497 + "lat": 37.5739497, + "lon": -85.7399606 }, "url": "http://americanhistorycalendar.com/peoplecalendar/1,328-abraham-lincoln", "freq": "YEARLY", "interval": "1", - "count": "", - "until": "" + "count": null, + "until": null } ] \ No newline at end of file diff --git a/tests/Utils/Parser/Markdown/MarkdownTest.php b/tests/Utils/Parser/Markdown/MarkdownTest.php index a8ec9ed6a..a8fbf2a6f 100755 --- a/tests/Utils/Parser/Markdown/MarkdownTest.php +++ b/tests/Utils/Parser/Markdown/MarkdownTest.php @@ -50,7 +50,10 @@ final class MarkdownTest extends \PHPUnit\Framework\TestCase $parser = new Markdown(); $parser->setSafeMode(true); - self::assertTrue(\file_get_contents(__DIR__ . '/manualdata/xss_bad_url.html') === ($parsed = $parser->text(\file_get_contents(__DIR__ . '/manualdata/xss_bad_url.md'))), $parsed); + self::assertEquals( + \file_get_contents(__DIR__ . '/manualdata/xss_bad_url.html'), + $parser->text(\file_get_contents(__DIR__ . '/manualdata/xss_bad_url.md')) + ); } public function testTablespan() : void @@ -61,7 +64,10 @@ final class MarkdownTest extends \PHPUnit\Framework\TestCase ] ]); - self::assertTrue(\file_get_contents(__DIR__ . '/manualdata/tablespan.html') === ($parsed = $parser->text(\file_get_contents(__DIR__ . '/manualdata/tablespan.md'))), $parsed); + self::assertEquals( + \file_get_contents(__DIR__ . '/manualdata/tablespan.html'), + $parser->text(\file_get_contents(__DIR__ . '/manualdata/tablespan.md')) + ); } public function testMath() : void @@ -70,7 +76,10 @@ final class MarkdownTest extends \PHPUnit\Framework\TestCase 'math' => true ]); - self::assertTrue(\file_get_contents(__DIR__ . '/manualdata/katex.html') === ($parsed = $parser->text(\file_get_contents(__DIR__ . '/manualdata/katex.md'))), $parsed); + self::assertEquals( + \file_get_contents(__DIR__ . '/manualdata/katex.html'), + $parser->text(\file_get_contents(__DIR__ . '/manualdata/katex.md')) + ); } public function testTOC() : void @@ -79,7 +88,10 @@ final class MarkdownTest extends \PHPUnit\Framework\TestCase 'toc' => true ]); - self::assertTrue(\file_get_contents(__DIR__ . '/manualdata/toc.html') === ($parsed = $parser->text(\file_get_contents(__DIR__ . '/manualdata/toc.md'))), $parsed); - self::assertTrue('' === $parser->contentsList()); + self::assertEquals( + \file_get_contents(__DIR__ . '/manualdata/toc.html'), + $parser->text(\file_get_contents(__DIR__ . '/manualdata/toc.md')) + ); + self::assertEquals('', $parser->contentsList()); } } diff --git a/tests/Utils/Parser/Presentation/data/Powerpoint.html b/tests/Utils/Parser/Presentation/data/Powerpoint.html index 1267a631d..76023bf04 100644 --- a/tests/Utils/Parser/Presentation/data/Powerpoint.html +++ b/tests/Utils/Parser/Presentation/data/Powerpoint.html @@ -1 +1 @@ -
  • folder_open PhpPresentation
    • info Info "PhpPresentation"
    • indeterminate_check_box Slide
      • info Info "Slide"
      • Shape "Drawing\Gd"
      • Shape "RichText"
    • indeterminate_check_box Slide
      • info Info "Slide"
      • Shape "RichText"
      • \ No newline at end of file +
        • folder_open PhpPresentation
          • info Info "PhpPresentation"
          • indeterminate_check_box Slide
            • info Info "Slide"
            • Shape "Drawing\Gd"
            • Shape "RichText"
          • indeterminate_check_box Slide
            • info Info "Slide"
            • Shape "RichText"
            • Shape "RichText"
            • Shape "Drawing\Gd"
          • indeterminate_check_box Slide
            • info Info "Slide"
            • Shape "RichText"
            • Shape "RichText"
            • Shape "Drawing\Gd"
          • indeterminate_check_box Slide
            • info Info "Slide"
            • Shape "RichText"
            • Shape "RichText"
            • Shape "Drawing\Gd"
          • indeterminate_check_box Slide
            • info Info "Slide"
            • Shape "Drawing\Gd"
            • Shape "RichText"
        Number of slides
        5
        Document Layout Name
        screen4x3
        Document Layout Height
        190.5 mm
        Document Layout Width
        254 mm
        Properties : Category
        demo
        Properties : Company
        Microsoft Corporation
        Properties : Created
        1608365230
        Properties : Creator
        Orange Management
        Properties : Description
        Demo
        Properties : Keywords
        demo helper report
        Properties : Last Modified By
        Orange Management
        Properties : Modified
        1608365230
        Properties : Subject
        Orange Management - Demo Report
        Properties : Title
        Orange Management - Demo Report
        HashCode
        5473d00752162f63ef1106e28d53f116
        Offset X
        180
        Offset Y
        120
        Extent X
        780
        Extent Y
        750
        Background Color
        #434a51
        HashCode
        bfa8d66e658147e79162f47fbcb8b67a
        Offset X
        320
        Offset Y
        120
        Height
        300
        Width
        319
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        Name
        Company Logo
        Description
        Company Logo
        Mime-Type
        image/png
        Image
        HashCode
        872e49519eb64c92926c23d868b2d63d
        Offset X
        180
        Offset Y
        450
        Height
        300
        Width
        600
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        # of paragraphs
        1
        Inset (T / R / B / L)
        4.8px / 9.6px / 4.8px / 9.6px
        Text
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_CENTER
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        0 px / 0px
        Alignment Indent
        0 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_NONE
        Line Spacing
        100
        RichText
        TextElement
        Demo Report
        Font Name
        Calibri
        Font Size
        35
        Font Color
        #FF3697db
        Font Transform
        Bold : Y - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        HashCode
        c7b2cb235a43f11b6f2ca6d3165d8c5a
        Offset X
        10
        Offset Y
        65
        Extent X
        940
        Extent Y
        770
        HashCode
        dd5d9a65362968b071b8bfa8a63bf497
        Offset X
        50
        Offset Y
        65
        Height
        75
        Width
        860
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        # of paragraphs
        1
        Inset (T / R / B / L)
        4.8px / 9.6px / 4.8px / 9.6px
        Text
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        0 px / 0px
        Alignment Indent
        0 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_NONE
        Line Spacing
        100
        RichText
        TextElement
        Demo Report - 2020-12-01
        Font Name
        Calibri
        Font Size
        35
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        HashCode
        cdcf6214a499846d79f3d6049606824e
        Offset X
        10
        Offset Y
        170
        Height
        600
        Width
        930
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        # of paragraphs
        13
        Inset (T / R / B / L)
        4.8px / 9.6px / 4.8px / 9.6px
        Text
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        Create custom localized reports
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        They are 100% customizable in terms of style, layout and content
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        You can export them as:
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        Excel
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        PDF
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        Print
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        PowerPoint
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        CSV
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        Word
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        HashCode
        5753a442448e9f6f03a089322cf23219
        Offset X
        880
        Offset Y
        650
        Height
        50
        Width
        53
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        Name
        Company Logo
        Description
        Company Logo
        Mime-Type
        image/png
        Image
        HashCode
        7df9c52d3eb7b4c23c36cfcc7f7b89a9
        Offset X
        10
        Offset Y
        65
        Extent X
        940
        Extent Y
        770
        HashCode
        edbd71a9b845d4a99963e8112cb86776
        Offset X
        50
        Offset Y
        65
        Height
        75
        Width
        860
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        # of paragraphs
        1
        Inset (T / R / B / L)
        4.8px / 9.6px / 4.8px / 9.6px
        Text
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        0 px / 0px
        Alignment Indent
        0 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_NONE
        Line Spacing
        100
        RichText
        TextElement
        Ideas for helpers
        Font Name
        Calibri
        Font Size
        35
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        HashCode
        6b19e52dd9b7e450602d6813afecb67a
        Offset X
        10
        Offset Y
        170
        Height
        600
        Width
        930
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        # of paragraphs
        11
        Inset (T / R / B / L)
        4.8px / 9.6px / 4.8px / 9.6px
        Text
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        Reports (e.g. sales, finance marketing
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        Mailing generator based on pre-defined layouts
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        Document generator based on pre-defined layouts
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        Calculators (e.g. margin calculator)
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        HashCode
        1a404662c6d64bec647979f186708bdc
        Offset X
        880
        Offset Y
        650
        Height
        50
        Width
        53
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        Name
        Company Logo
        Description
        Company Logo
        Mime-Type
        image/png
        Image
        HashCode
        30e10df209968d6d7bec3606e5aa4adc
        Offset X
        10
        Offset Y
        65
        Extent X
        940
        Extent Y
        770
        HashCode
        a96da89c95fca5c8551dec6687c42792
        Offset X
        50
        Offset Y
        65
        Height
        75
        Width
        860
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        # of paragraphs
        1
        Inset (T / R / B / L)
        4.8px / 9.6px / 4.8px / 9.6px
        Text
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        0 px / 0px
        Alignment Indent
        0 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_NONE
        Line Spacing
        100
        RichText
        TextElement
        Data Source
        Font Name
        Calibri
        Font Size
        35
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        HashCode
        80b93448d037c9583c528a8c0ad574c4
        Offset X
        10
        Offset Y
        170
        Height
        600
        Width
        930
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        # of paragraphs
        7
        Inset (T / R / B / L)
        4.8px / 9.6px / 4.8px / 9.6px
        Text
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        50 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        You can provide data for the helpers in many different ways
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        Manual user input
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        File upload (e.g. excel, csv)
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        Database upload (e.g. sqlite)
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        Database connection to local or remote database
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        External APIs
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_GENERAL
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        150 px / 0px
        Alignment Indent
        -25 px
        Alignment Level
        1
        Bullet Style
        Bullet::TYPE_BULLET
        Bullet Font
        Calibri
        Bullet Color
        FF000000
        Bullet Char
        Line Spacing
        100
        RichText
        TextElement
        Internal APIs (everything from the Orange Management backend)
        Font Name
        Calibri
        Font Size
        21
        Font Color
        #FF000000
        Font Transform
        Bold : N - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        HashCode
        8f18ffdb8c9371cdfa5093f87c08a3f6
        Offset X
        880
        Offset Y
        650
        Height
        50
        Width
        53
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        Name
        Company Logo
        Description
        Company Logo
        Mime-Type
        image/png
        Image
        HashCode
        6785ef4f1168f66db3142f2fc74399a5
        Offset X
        180
        Offset Y
        120
        Extent X
        780
        Extent Y
        750
        Background Color
        #434a51
        HashCode
        cf83e9bf79d09d1c570a528c2a4a020f
        Offset X
        320
        Offset Y
        120
        Height
        300
        Width
        319
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        Name
        Company Logo
        Description
        Company Logo
        Mime-Type
        image/png
        Image
        HashCode
        f7940b69c864380686e3c9357c78bec5
        Offset X
        180
        Offset Y
        450
        Height
        300
        Width
        600
        Rotation
        Hyperlink
        False
        Fill
        None
        Border
        @Todo
        IsPlaceholder
        false
        # of paragraphs
        1
        Inset (T / R / B / L)
        4.8px / 9.6px / 4.8px / 9.6px
        Text
        Paragraph
        Alignment Horizontal
        Alignment::HORIZONTAL_CENTER
        Alignment Vertical
        Alignment::VERTICAL_BASE
        Alignment Margin (L / R)
        0 px / 0px
        Alignment Indent
        0 px
        Alignment Level
        0
        Bullet Style
        Bullet::TYPE_NONE
        Line Spacing
        100
        RichText
        TextElement
        Thank You!
        Font Name
        Calibri
        Font Size
        42
        Font Color
        #FF3697db
        Font Transform
        Bold : Y - Italic : N - Underline : Underline::UNDERLINE_NONE - Strikethrough : N - SubScript : N - SuperScript : N
        \ No newline at end of file