1--TEST--
2Unit test for HTML-like labels
3--FILE--
4<?php
5
6/**
7 * Test 4: "HTML-like labels"
8 *
9 * Graph definition taken from GraphViz documentation
10 *
11 * @category Image
12 * @package  Image_GraphViz
13 * @author   Philippe Jausions <jausions@php.net>
14 */
15require_once 'Image/GraphViz.php';
16
17$graph = new Image_GraphViz(true, array('rankdir' => 'LR'), 'G', false);
18
19$graph->addNode('a', array('shape' => 'plaintext',
20                           'label' => '<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
21  <TR><TD ROWSPAN="3" BGCOLOR="yellow">class</TD></TR>
22  <TR><TD PORT="here" BGCOLOR="lightblue">qualifier</TD></TR>
23</TABLE>'));
24
25$graph->addNode('b', array('shape' => 'ellipse',
26                           'style' => 'filled',
27                           'label' => '<TABLE BGCOLOR="bisque">
28  <TR><TD COLSPAN="3">elephant</TD>
29      <TD ROWSPAN="2" BGCOLOR="chartreuse"
30          VALIGN="bottom" ALIGN="right">two</TD> </TR>
31  <TR><TD COLSPAN="2" ROWSPAN="2">
32        <TABLE BGCOLOR="grey">
33          <TR> <TD>corn</TD> </TR>
34          <TR> <TD BGCOLOR="yellow">c</TD> </TR>
35          <TR> <TD>f</TD> </TR>
36        </TABLE> </TD>
37      <TD BGCOLOR="white">penguin</TD>
38  </TR>
39  <TR> <TD COLSPAN="2" BORDER="4" ALIGN="right" PORT="there">4</TD> </TR>
40</TABLE>
41  '), 'subgraph');
42
43$graph->addNode('c', array('shape' => 'plaintext',
44                           'label' => 'long line 1<BR/>line 2<BR ALIGN="LEFT"/>line 3<BR ALIGN="RIGHT"/>'), 'subgraph');
45
46$graph->addSubgraph('subgraph', '', array('rank' => 'same'));
47
48$graph->addEdge(array('c' => 'b'));
49
50$graph->addNode('d', array('shape' => 'triangle'));
51
52$graph->addEdge(array('d' => 'c'), array('label' => '<TABLE>
53  <TR><TD BGCOLOR="red" WIDTH="10"> </TD>
54      <TD>Edge labels<BR/>also</TD>
55      <TD BGCOLOR="blue" WIDTH="10"> </TD>
56  </TR>
57</TABLE>'));
58
59$graph->addEdge(array('a' => 'b'), array('arrowtail' => 'diamond'),
60                array('a' => 'here', 'b' => 'there'));
61
62echo $graph->parse();
63
64?>
65--EXPECT--
66digraph G {
67    rankdir=LR;
68    a [ shape=plaintext,label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
69  <TR><TD ROWSPAN="3" BGCOLOR="yellow">class</TD></TR>
70  <TR><TD PORT="here" BGCOLOR="lightblue">qualifier</TD></TR>
71</TABLE>> ];
72    d [ shape=triangle ];
73    subgraph "subgraph" {
74        graph [ rank=same ];
75        b [ shape=ellipse,style=filled,label=<<TABLE BGCOLOR="bisque">
76  <TR><TD COLSPAN="3">elephant</TD>
77      <TD ROWSPAN="2" BGCOLOR="chartreuse"
78          VALIGN="bottom" ALIGN="right">two</TD> </TR>
79  <TR><TD COLSPAN="2" ROWSPAN="2">
80        <TABLE BGCOLOR="grey">
81          <TR> <TD>corn</TD> </TR>
82          <TR> <TD BGCOLOR="yellow">c</TD> </TR>
83          <TR> <TD>f</TD> </TR>
84        </TABLE> </TD>
85      <TD BGCOLOR="white">penguin</TD>
86  </TR>
87  <TR> <TD COLSPAN="2" BORDER="4" ALIGN="right" PORT="there">4</TD> </TR>
88</TABLE>
89  > ];
90        c [ shape=plaintext,label=<long line 1<BR/>line 2<BR ALIGN="LEFT"/>line 3<BR ALIGN="RIGHT"/>> ];
91    }
92    c -> b;
93    d -> c [ label=<<TABLE>
94  <TR><TD BGCOLOR="red" WIDTH="10"> </TD>
95      <TD>Edge labels<BR/>also</TD>
96      <TD BGCOLOR="blue" WIDTH="10"> </TD>
97  </TR>
98</TABLE>> ];
99    a:here -> b:there [ arrowtail=diamond ];
100}