2 // Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
4 // This program is free software; you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation; either version 3 of the License, or
7 // (at your option) any later version.
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with this program; if not, write to the Free Software
16 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 // This counts calls to toString() and valueOf() regularly to check that native
19 // methods are correctly applied. So it saves much effort if new tests are added
20 // after the end of the present ones.
26 #if OUTPUT_VERSION
> 5
28 createEmptyMovieClip
("a", 5);
29 a
.beginFill
(0xff00ff);
36 check_equals
(a
.hitTest
(19, 19, false), false);
37 check_equals
(a
.hitTest
(20, 20, false), true);
38 check_equals
(a
.hitTest
(21, 21, false), true);
39 check_equals
(a
.hitTest
(25, 25, false), true);
40 check_equals
(a
.hitTest
(60, 60, false), true);
41 check_equals
(a
.hitTest
(61, 61, false), false);
43 check_equals
(a
.hitTest
(19, 19, true), false);
44 #if OUTPUT_VERSION
< 8
45 check_equals
(a
.hitTest
(20, 20, true), true);
47 xcheck_equals
(a
.hitTest
(20, 20, true), false);
49 check_equals
(a
.hitTest
(21, 21, true), true);
50 check_equals
(a
.hitTest
(25, 25, true), true);
51 check_equals
(a
.hitTest
(60, 60, true), false);
52 check_equals
(a
.hitTest
(61, 61, true), false);
55 check_equals
(a
.hitTest
(25, 25, false), true);
56 check_equals
(a
.hitTest
(85, 25, false), false);
57 xcheck_equals
(a
.hitTest
(25, 25, true), true);
58 xcheck_equals
(a
.hitTest
(85, 25, true), false);
64 check_equals
(a
.hitTest
(25, 25, false), true);
65 check_equals
(a
.hitTest
(41, 25, false), true);
66 check_equals
(a
.hitTest
(25, 25, true), false);
67 check_equals
(a
.hitTest
(41, 25, true), false);
71 check_equals
(a
.hitTest
(25, 25, false), true);
72 check_equals
(a
.hitTest
(41, 25, false), true);
73 xcheck_equals
(a
.hitTest
(25, 25, true), false);
74 #if OUTPUT_VERSION
< 8
75 xcheck_equals
(a
.hitTest
(41, 25, true), true);
77 check_equals
(a
.hitTest
(41, 25, true), false);
81 b
= a
.createEmptyMovieClip
("b", 10);
82 b
.beginFill
(0x0000ff);
89 check_equals
(b
.hitTest
(99, 99, false), false);
90 check_equals
(b
.hitTest
(100, 100, false), true);
91 check_equals
(b
.hitTest
(101, 101, false), true);
92 check_equals
(b
.hitTest
(120, 120, false), true);
93 check_equals
(b
.hitTest
(110, 110, false), true);
94 check_equals
(b
.hitTest
(151, 150, false), false);
95 check_equals
(b
.hitTest
(151, 151, false), false);
96 check_equals
(b
.hitTest
(151, 152, false), false);
98 check_equals
(b
.hitTest
(99, 99, true), false);
99 xcheck_equals
(b
.hitTest
(100, 100, true), false);
100 check_equals
(b
.hitTest
(101, 101, true), true);
101 check_equals
(b
.hitTest
(120, 120, true), true);
102 check_equals
(b
.hitTest
(110, 110, true), true);
103 check_equals
(b
.hitTest
(151, 150, true), false);
104 check_equals
(b
.hitTest
(151, 151, true), false);
105 check_equals
(b
.hitTest
(151, 152, true), false);
107 /// Altering a's properties changes the hitTest for b.
110 /// Test where it was before
111 check_equals
(b
.hitTest
(99, 99, false), false);
112 check_equals
(b
.hitTest
(100, 100, false), false);
113 check_equals
(b
.hitTest
(101, 101, false), false);
114 check_equals
(b
.hitTest
(120, 120, false), false);
115 check_equals
(b
.hitTest
(110, 110, false), false);
116 check_equals
(b
.hitTest
(151, 150, false), false);
118 check_equals
(b
.hitTest
(99, 99, true), false);
119 check_equals
(b
.hitTest
(100, 100, true), false);
120 check_equals
(b
.hitTest
(101, 101, true), false);
121 check_equals
(b
.hitTest
(120, 120, true), false);
122 check_equals
(b
.hitTest
(110, 110, true), false);
123 check_equals
(b
.hitTest
(151, 150, true), false);
125 /// Test new position
126 check_equals
(b
.hitTest
(99, 199, false), false);
127 check_equals
(b
.hitTest
(100, 200, false), true);
128 check_equals
(b
.hitTest
(101, 201, false), true);
129 check_equals
(b
.hitTest
(120, 220, false), true);
130 check_equals
(b
.hitTest
(110, 210, false), true);
131 check_equals
(b
.hitTest
(151, 250, false), false);
132 check_equals
(b
.hitTest
(151, 251, false), false);
133 check_equals
(b
.hitTest
(151, 252, false), false);
135 /// (Where is it?!) Checking every pixel in +/- _width by +/- _height
136 /// comes up with "true" in the shifted area, but doing it directly
138 check_equals
(b
.hitTest
(99, 199, true), false);
139 xcheck_equals
(b
.hitTest
(100, 200, true), false);
140 xcheck_equals
(b
.hitTest
(101, 201, true), false);
141 xcheck_equals
(b
.hitTest
(120, 220, true), false);
142 xcheck_equals
(b
.hitTest
(110, 210, true), false);
143 check_equals
(b
.hitTest
(151, 250, true), false);
144 check_equals
(b
.hitTest
(151, 251, true), false);
145 check_equals
(b
.hitTest
(151, 252, true), false);
147 /// Changing _root's matrix does nothing.
151 check_equals
(b
.hitTest
(99, 99, false), false);
152 check_equals
(b
.hitTest
(100, 100, false), false);
153 check_equals
(b
.hitTest
(101, 101, false), false);
154 check_equals
(b
.hitTest
(120, 120, false), false);
155 check_equals
(b
.hitTest
(110, 110, false), false);
156 check_equals
(b
.hitTest
(151, 150, false), false);
158 check_equals
(b
.hitTest
(99, 199, false), false);
159 check_equals
(b
.hitTest
(100, 200, false), true);
160 check_equals
(b
.hitTest
(101, 201, false), true);
161 check_equals
(b
.hitTest
(120, 220, false), true);
162 check_equals
(b
.hitTest
(110, 210, false), true);
163 xcheck_equals
(b
.hitTest
(151, 250, false), true);
164 check_equals
(b
.hitTest
(151, 251, false), false);
165 check_equals
(b
.hitTest
(151, 252, false), false);