|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
4 <head> |
|
5 <title>script.aculo.us Unit test file</title> |
|
6 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> |
|
7 <script src="../../lib/prototype.js" type="text/javascript"></script> |
|
8 <script src="../../src/scriptaculous.js" type="text/javascript"></script> |
|
9 <script src="../../src/unittest.js" type="text/javascript"></script> |
|
10 <link rel="stylesheet" href="../test.css" type="text/css" /> |
|
11 <style type="text/css" media="screen"> |
|
12 /* <![CDATA[ */ |
|
13 #testcss1 { font-size:11px; color: #f00; } |
|
14 #testcss2 { font-size:12px; color: #0f0; display: none; } |
|
15 /* ]]> */ |
|
16 </style> |
|
17 </head> |
|
18 <body> |
|
19 <h1>script.aculo.us Unit test file</h1> |
|
20 <p> |
|
21 This is a preliminary version mostly for testing the unittest library. |
|
22 </p> |
|
23 |
|
24 <!-- Log output --> |
|
25 <div id="testlog"> </div> |
|
26 |
|
27 <!-- Test elements follow --> |
|
28 <div id="test_1" class="a bbbbbbbbbbbb cccccccccc dddd"> </div> |
|
29 |
|
30 <div id="test_2"> <span> </span> |
|
31 |
|
32 |
|
33 |
|
34 <div><div></div> </div><span> </span> |
|
35 </div> |
|
36 |
|
37 <ul id="tlist"><li id="tlist_1">x1</li><li id="tlist_2">x2</li></ul> |
|
38 <ul id="tlist2"><li class="a" id="tlist2_1">x1</li><li id="tlist2_2">x2</li></ul> |
|
39 |
|
40 <div id="testmoveby" style="background-color:#333;width:100px;">XXXX</div> |
|
41 |
|
42 <div id="testcss1">testcss1<span id="testcss1_span" style="display:none;">blah</span></div><div id="testcss2">testcss1</div> |
|
43 |
|
44 <!-- Tests follow --> |
|
45 <script type="text/javascript" language="javascript" charset="utf-8"> |
|
46 // <![CDATA[ |
|
47 |
|
48 var testObj = { |
|
49 isNice: function(){ |
|
50 return true; |
|
51 }, |
|
52 isBroken: function(){ |
|
53 return false; |
|
54 } |
|
55 } |
|
56 |
|
57 new Test.Unit.Runner({ |
|
58 |
|
59 testAssertEqual: function() { with(this) { |
|
60 assertEqual(0, 0); |
|
61 assertEqual(0, 0, "test"); |
|
62 |
|
63 assertEqual(0,'0'); |
|
64 assertEqual(65.0, 65); |
|
65 |
|
66 assertEqual("a", "a"); |
|
67 assertEqual("a", "a", "test"); |
|
68 |
|
69 assertNotEqual(0, 1); |
|
70 assertNotEqual("a","b"); |
|
71 assertNotEqual({},{}); |
|
72 assertNotEqual([],[]); |
|
73 assertNotEqual([],{}); |
|
74 }}, |
|
75 |
|
76 testAssertRespondsTo: function() { with(this) { |
|
77 assertRespondsTo('isNice', testObj); |
|
78 assertRespondsTo('isBroken', testObj); |
|
79 }}, |
|
80 |
|
81 testAssertIndentical: function() { with(this) { |
|
82 assertIdentical(0, 0); |
|
83 assertIdentical(0, 0, "test"); |
|
84 assertIdentical(1, 1); |
|
85 assertIdentical('a', 'a'); |
|
86 assertIdentical('a', 'a', "test"); |
|
87 assertIdentical('', ''); |
|
88 assertIdentical(undefined, undefined); |
|
89 assertIdentical(null, null); |
|
90 assertIdentical(true, true); |
|
91 assertIdentical(false, false); |
|
92 |
|
93 var obj = {a:'b'}; |
|
94 assertIdentical(obj, obj); |
|
95 |
|
96 assertNotIdentical({1:2,3:4},{1:2,3:4}); |
|
97 |
|
98 assertIdentical(1, 1.0); // both are typeof == 'number' |
|
99 |
|
100 assertNotIdentical(1, '1'); |
|
101 assertNotIdentical(1, '1.0'); |
|
102 }}, |
|
103 |
|
104 testAssertMatch: function() { with(this) { |
|
105 assertMatch(/knowmad.jpg$/, 'http://script.aculo.us/images/knowmad.jpg'); |
|
106 assertMatch(/Fuc/, 'Thomas Fuchs'); |
|
107 assertMatch(/^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$/, '$19.95'); |
|
108 assertMatch(/(\d{3}\) ?)|(\d{3}[- \.])?\d{3}[- \.]\d{4}(\s(x\d+)?){0,1}$/, '704-343-9330'); |
|
109 assertMatch(/^(?:(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29)))|(?:(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))))$/, '2001-06-16'); |
|
110 assertMatch(/^((0?[123456789])|(1[012]))\s*:\s*([012345]\d)(\s*:\s*([012345]\d))?\s*[ap]m\s*-\s*((0?[123456789])|(1[012]))\s*:\s*([012345]\d)(\s*:\s*([012345]\d))?\s*[ap]m$/i, '2:00PM-2:15PM'); |
|
111 |
|
112 }}, |
|
113 |
|
114 testAssertInstanceOf: function() { with(this) { |
|
115 assertInstanceOf(Effect.Opacity, new Effect.Opacity('testcss1',{sync:true})); |
|
116 assertNotInstanceOf(String, new Effect.Opacity('testcss1',{sync:true})); |
|
117 |
|
118 // note: fails with firefox 1.0.X (bug, fixed in Deer Park) |
|
119 assertNotInstanceOf(Effect.Parallel, new Effect.Opacity('testcss1',{sync:true}), "(note: fails with firefox 1.0.X, fixed in Deer Park)"); |
|
120 }}, |
|
121 |
|
122 testAssertReturns: function() { with(this) { |
|
123 |
|
124 assertReturnsTrue('isNice',testObj); |
|
125 assertReturnsFalse('isBroken',testObj); |
|
126 |
|
127 assertReturnsTrue('nice',testObj); |
|
128 assertReturnsFalse('broken',testObj); |
|
129 |
|
130 }}, |
|
131 |
|
132 testAssertVisible: function() { with(this) { |
|
133 assertVisible('testcss1'); |
|
134 assertNotVisible('testcss1_span'); |
|
135 assertNotVisible('testcss2', "Due to a Safari bug, this test fails in Safari."); |
|
136 |
|
137 Element.hide('testcss1'); |
|
138 assertNotVisible('testcss1'); |
|
139 assertNotVisible('testcss1_span'); |
|
140 Element.show('testcss1'); |
|
141 assertVisible('testcss1'); |
|
142 assertNotVisible('testcss1_span'); |
|
143 |
|
144 Element.show('testcss1_span'); |
|
145 assertVisible('testcss1_span'); |
|
146 Element.hide('testcss1'); |
|
147 assertNotVisible('testcss1_span'); // hidden by parent |
|
148 }} |
|
149 |
|
150 }, "testlog"); |
|
151 // ]]> |
|
152 </script> |
|
153 </body> |
|
154 </html> |