source: Dev/trunk/src/client/dojox/gfx/tests/test_textbbox.html

Last change on this file was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 5.2 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2<html>
3<head>
4        <title>Test text bbox</title>
5        <script type="text/javascript" src="../../../dojo/dojo.js" data-dojo-config="isDebug: true, packageMap:[{name:'doh',location:'util/doh'}]"></script>
6        <script type="text/javascript">
7                require([
8                        "doh/runner",
9                        "dojo/ready",
10            "dojo/_base/window",
11                        "dojox/gfx",
12                        "dojox/gfx/shape",
13                        "dojox/gfx/matrix"],
14                                function(doh, ready, win, gfx, gfxshape, matrix){
15
16                                        var textShape = { x:20, y:40, text:"Hello !"};
17
18                                        ready(function(){
19                                                var surface, r,
20                                                                checkSurface = function(){
21                                                                        if(!surface){
22                                                                                surface = gfx.createSurface("gfxObject", 300, 300);
23                                                                        }
24                                                                };
25
26                                                doh.register("text.getBoundingBox", [
27                                                        {
28                                                                name: "text.getBoundingBox",
29                                                                timeout: 1000,
30                                                                setUp: function(){
31                                                                        if(surface){
32                                                                                surface.destroy();
33                                                                                surface = null;
34                                                                        }
35                                                                        checkSurface();
36                                                                },
37                                                                runTest: function(t){
38                                                                        var text = surface.createText(textShape).setFill("black");
39                                                                        var bbox = text.getBoundingBox();
40                                                                        t.assertTrue(bbox !== null, "Unexpected null bbox.");
41                                                                        // it's impossible to test for bbox coordinates as it varies depending on the browser...
42                                                                },
43                                                                tearDown: function(){
44                                                                        surface.clear();
45                                                                }
46                                                        },{
47                                                                name: "getBoundingBox (empty string)",
48                                                                timeout: 1000,
49                                                                setUp: function(){
50                                                                        if(surface){
51                                                                                surface.destroy();
52                                                                                surface = null;
53                                                                        }
54                                                                        checkSurface();
55                                                                },
56                                                                runTest: function(t){
57                                                                        var text = surface.createText().setFill("black");
58                                                                        var bbox = text.getBoundingBox();
59                                                                        t.assertTrue(bbox == null, "Unexpected non-null bbox.");
60                                                                },
61                                                                tearDown: function(){
62                                                                        surface.clear();
63                                                                }
64                                                        },{
65                                name: "getBoundingBox (orphan)",
66                                timeout: 1000,
67                                setUp: function(){
68                                    if(surface){
69                                        surface.destroy();
70                                        surface = null;
71                                    }
72                                    checkSurface();
73                                },
74                                runTest: function(t){
75                                    var text = surface.createText(textShape).setFill("black");
76                                    text.removeShape();
77                                    var bbox = text.getBoundingBox();
78                                    t.assertTrue(bbox != null, "Unexpected bbox.");
79                                    t.assertTrue(bbox.x==0 && bbox.y==0 && bbox.width==0 && bbox.height==0, "Unexpected non empty bbox.");
80                                    var g = surface.createGroup();
81                                    text = g.createText(textShape);
82                                    g.removeShape();
83                                    bbox = text.getBoundingBox();
84                                    t.assertTrue(bbox != null, "Unexpected bbox [2].");
85                                    t.assertTrue(bbox.x==0 && bbox.y==0 && bbox.width==0 && bbox.height==0, "Unexpected non empty bbox.[2]");
86                                },
87                                tearDown: function(){
88                                    surface.clear();
89                                }
90                            },{
91                                name: "_getTextBox",
92                                timeout: 1000,
93                                runTest: function(t){
94                                    var bbox = gfx._base._getTextBox(textShape.text);
95                                    t.assertTrue(bbox !== null, "Unexpected null bbox.");
96                                    // it's impossible to test for bbox coordinates as it varies depending on the browser...
97                                    // but at least verify that it is a {l,t,w,h} object
98                                    t.assertTrue("l" in bbox, "Not a bbox");
99                                    t.assertTrue("t" in bbox, "Not a bbox");
100                                    t.assertTrue("w" in bbox, "Not a bbox");
101                                    t.assertTrue("h" in bbox, "Not a bbox");
102                                    t.assertTrue(bbox.w > 0, "Not a bbox");
103                                    t.assertTrue(bbox.h > 0, "Not a bbox");
104                                    // and that the measuring node is invisible and empty after calling the function
105                                    t.assertEqual("hidden", win.body().lastChild.style.visibility,
106                                            "Document's last child should be invisible");
107                                    t.assertEqual("", win.body().lastChild.innerHTML,
108                                            "Document's last child should be empty");
109                                }
110                            }
111
112
113                                                ]);
114                                                doh.run();
115                                        });
116                                });
117        </script>
118</head>
119<body>
120<div id="gfxObject" style="width: 500px; height: 500px;font-weight:bold;"></div>
121</body>
122</html>
Note: See TracBrowser for help on using the repository browser.