~ubuntu-branches/ubuntu/raring/maas/raring-updates

« back to all changes in this revision

Viewing changes to src/maasserver/static/jslibs/yui/3.4.1/tests/dom/tests/dom.html

  • Committer: Package Import Robot
  • Author(s): Andres Rodriguez
  • Date: 2012-07-03 17:42:37 UTC
  • mfrom: (1.1.13)
  • Revision ID: package-import@ubuntu.com-20120703174237-p8l0keuuznfg721k
Tags: 0.1+bzr709+dfsg-0ubuntu1
* New Upstream release
* debian/control:
  - Depends on python-celery, python-tempita, libjs-yui3-{full,min},
    libjs-raphael
* debian/maas.install:
  - Install apiclient, celeryconfig.py, maas-import-pxe-files, preseeds_v2.
  - Update to install various files from chroot, rather tha manually copy
    them from the source.
* debian/maas.links: symlink celeryconfig.py
* debian/maas.maas-celery.upstart: Add job.
* debian/rules:
  - Install celery upstart job.
  - Do not install jslibs as packages are now used.
  - Drop copying of maas_local_settings_sample.py as source now ships
    a maas_local_settings.py
* debian/patches:
  - 04-maas-http-fix.patch: Drop. Merged upstream.
  - 01-fix-database-settings.patch: Refreshed.
  - 99_enums_js.patch: Added until creation of enum.js / build process
    is fixed.
* debian/maas.postinst: Update bzr version to correctly handle upgrades.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
 
<html>
3
 
<head>
4
 
<title>DOM Test Suite</title>
5
 
 
6
 
<script type="text/javascript" src="../../../build/yui/yui-min.js"></script>
7
 
 
8
 
<script type="text/javascript">
9
 
    YUI({ base: '../../../build/', filter: 'raw'}).use('dom', 'dom-deprecated', 'console', 'test', function(Y) {
10
 
        var Assert = Y.Assert,
11
 
            ArrayAssert = Y.ArrayAssert,
12
 
            suite = new Y.Test.Suite("DOM Test Suite");
13
 
 
14
 
        window.Y = Y; // export Y global for Selenium
15
 
        new Y.Console({ height: '50em' }).render();
16
 
        Y.Test.Runner.setName('DOM Tests');
17
 
 
18
 
        var doc = document.getElementById('doc'),
19
 
            hd = document.getElementById('hd'),
20
 
            bd = document.getElementById('bd'),
21
 
            ft = document.getElementById('ft'),
22
 
            mod1 = document.getElementById('mod1'),
23
 
            mod2 = document.getElementById('mod2'),
24
 
            h1 = hd.getElementsByTagName('h1')[0],
25
 
            main = document.getElementById('main'),
26
 
            lorem = document.getElementById('lorem-ipsum'),
27
 
            search = document.getElementById('search'),
28
 
            search_fields = document.getElementById('search-fields'),
29
 
            search_p = document.getElementById('search-p'),
30
 
            foo = document.getElementById('foo'),
31
 
            tmp = document.createElement('div');
32
 
 
33
 
        suite.add( new Y.Test.Case({
34
 
            name: 'DOM',
35
 
 
36
 
            test_byId: function() {
37
 
                var inputs = document.getElementById('test-names').getElementsByTagName('input');
38
 
 
39
 
                Assert.areEqual(doc, Y.DOM.byId('doc'), 'byId("doc")');
40
 
                Assert.isNull(Y.DOM.byId('fake-id'), 'byId("fake-id")');
41
 
                Assert.isNull(Y.DOM.byId(null), 'byId(null)');
42
 
                Assert.isNull(Y.DOM.byId(), 'byId()');
43
 
 
44
 
                Assert.areEqual(
45
 
                    inputs[0],
46
 
                    Y.DOM.byId('test-name-id1'),
47
 
                    "Y.DOM.byId('test-name-id1')"
48
 
                );
49
 
 
50
 
                Assert.areEqual(
51
 
                    inputs[1],
52
 
                    Y.DOM.byId('test-name-id2'),
53
 
                    "Y.DOM.byId('test-name-id2')"
54
 
                );
55
 
            },
56
 
 
57
 
            test_getText: function() {
58
 
                Assert.areEqual(h1.innerHTML, Y.DOM.getText(hd), 'getText("hd")');
59
 
                Assert.areEqual('', Y.DOM.getText(tmp), 'getText(tmp)');
60
 
                Assert.areEqual('', Y.DOM.getText(null), 'getText(null)');
61
 
                Assert.areEqual('', Y.DOM.getText(), 'getText()');
62
 
            },
63
 
 
64
 
            test_setText: function() {
65
 
                var node = document.createElement('div'),
66
 
                    content = 'testing text content';
67
 
 
68
 
                document.body.appendChild(node);
69
 
                Y.DOM.setText(node, content);
70
 
                Assert.areEqual(content, Y.DOM.getText(node, content), 'setText("' + content + '")');
71
 
 
72
 
                content = '<div>testing text content</div>';
73
 
                Y.DOM.setText(node, content);
74
 
                Assert.areEqual(content, Y.DOM.getText(node, content), 'setText("' + content + '")');
75
 
 
76
 
                content = '   testing     text      content    ';
77
 
                Y.DOM.setText(node, content);
78
 
                Assert.areEqual(content, Y.DOM.getText(node, content), 'setText("' + content + '")');
79
 
            },
80
 
 
81
 
            test_children: function() {
82
 
                ArrayAssert.itemsAreEqual([], Y.DOM.children(tmp), 'children(tmp)');
83
 
                ArrayAssert.itemsAreEqual([], Y.DOM.children(null), 'children(null)');
84
 
                ArrayAssert.itemsAreEqual([], Y.DOM.children(), 'children()');
85
 
                ArrayAssert.itemsAreEqual([hd, bd, ft], Y.DOM.children(doc), 'children(doc)');
86
 
 
87
 
/*
88
 
                ArrayAssert.itemsAreEqual([mod1, mod2], Y.DOM.children(main, function(node) {
89
 
                    return node.className === 'mod';
90
 
                }), 'children(main, fn)');
91
 
*/
92
 
            },           
93
 
 
94
 
            test_getStyle: function() {
95
 
                Assert.areEqual('left',
96
 
                        Y.DOM.getStyle(foo, 'float'), 'getStyle(foo, "float")');
97
 
 
98
 
                doc.style.marginBottom = '10px';
99
 
 
100
 
                Assert.areEqual('10px',
101
 
                        Y.DOM.getStyle(doc, 'marginBottom'), 'doc, marginBottom');
102
 
 
103
 
                Assert.areEqual('static',
104
 
                        Y.DOM.getStyle(doc, 'position'), 'doc, position');
105
 
            },            
106
 
 
107
 
            test_setStyle: function() {
108
 
                Y.DOM.setStyle(ft, 'opacity', 0.5);
109
 
                Assert.areEqual(Y.DOM.getStyle(ft, 'opacity'),
110
 
                        0.5, "Y.DOM.getStyle(ft, 'opacity')");
111
 
 
112
 
                Y.DOM.setStyle(main, 'float', 'none');
113
 
                Assert.areEqual('none', Y.DOM.getStyle(main, 'float'),
114
 
                        'wrong style returned');
115
 
 
116
 
                try {
117
 
                    Y.DOM.setStyle(ft, 'width', '-1');
118
 
                } catch(e) {
119
 
                    Assert.fail('setStyle invalid width error');
120
 
                }
121
 
 
122
 
                try {
123
 
                    Y.DOM.setStyle(ft, 'height', '-1');
124
 
                } catch(e) {
125
 
                    Assert.fail('setStyle invalid height error');
126
 
                }
127
 
 
128
 
                Y.DOM.setStyle(ft, 'display', 'none');
129
 
                Assert.areEqual('none', Y.DOM.getStyle(ft, 'display'), "Y.DOM.setStyle(ft, 'display', 'none')");
130
 
 
131
 
                Y.DOM.setStyle(ft, 'display', null);
132
 
                Assert.areEqual('block', Y.DOM.getStyle(ft, 'display'), "Y.DOM.setStyle(ft, 'display', null)");
133
 
 
134
 
                Y.DOM.setStyle(ft, 'display', 'none');
135
 
                Y.DOM.setStyle(ft, 'display', '');
136
 
                Assert.areEqual('block', Y.DOM.getStyle(ft, 'display'), "Y.DOM.setStyle(ft, 'display', '')");
137
 
 
138
 
                Y.DOM.setStyle(ft, 'opacity', null);
139
 
                Assert.areEqual(0.75, Y.DOM.getStyle(ft, 'opacity'), "Y.DOM.setStyle(ft, 'opacity', null)");
140
 
                Y.DOM.setStyle(ft, 'opacity', 0);
141
 
                Y.DOM.setStyle(ft, 'opacity', '');
142
 
                Assert.areEqual(0.75, Y.DOM.getStyle(ft, 'opacity'), "Y.DOM.setStyle(ft, 'opacity', '')");
143
 
 
144
 
                Y.DOM.setStyle(ft, 'height', '100');
145
 
                Assert.areEqual('100px', Y.DOM.getStyle(ft, 'height'),
146
 
                    "Y.DOM.setStyle(ft, 'height', '100')");
147
 
 
148
 
                try {
149
 
                    Y.DOM.setStyle(ft, 'height', '');
150
 
                } catch(e) {
151
 
                    Assert.fail('error thrown setting height: ""');
152
 
                }
153
 
 
154
 
                Assert.areEqual('200px', Y.DOM.getStyle(ft, 'height'),
155
 
                    "Y.DOM.setStyle(ft, 'height', '')");
156
 
 
157
 
                Y.DOM.setStyle(ft, 'height', '100');
158
 
                Y.DOM.setStyle(ft, 'height');
159
 
                Assert.areEqual('100px', Y.DOM.getStyle(ft, 'height'),
160
 
                    "Y.DOM.setStyle(ft, 'height')");
161
 
 
162
 
                Y.DOM.setStyle(ft, 'height', null);
163
 
                Assert.areEqual('200px', Y.DOM.getStyle(ft, 'height'),
164
 
                    "Y.DOM.setStyle(ft, 'height', null)");
165
 
 
166
 
            },
167
 
 
168
 
                test_styleDefaultUnit: function() {
169
 
                    var node = Y.DOM.byId('ft'),
170
 
                        value = '20px',
171
 
                        attr = 'width',
172
 
                        num = 20;
173
 
 
174
 
                    attr = 'borderTopWidth';
175
 
                    Y.DOM.setStyle(node, attr, num);
176
 
                    Assert.areEqual(value, Y.DOM.getStyle(node, attr), attr + ': ' + num);
177
 
 
178
 
                    attr = 'opacity';
179
 
                    value = 0.5;
180
 
                    num = 0.5;
181
 
                    Y.DOM.setStyle(node, attr, num);
182
 
                    Assert.areEqual(value, Y.DOM.getStyle(node, attr), attr + ': ' + num);
183
 
 
184
 
                    attr = 'borderTopWidth';
185
 
                    value = '5px';
186
 
                    num = 5;
187
 
                    Y.DOM.setStyle(node, attr, num);
188
 
                    Assert.areEqual(value, Y.DOM.getStyle(node, attr), attr + ': ' + num);
189
 
 
190
 
                    attr = 'paddingTop';
191
 
                    num = '5';
192
 
                    value = '5px';
193
 
                    Y.DOM.setStyle(node, attr, num);
194
 
                    Assert.areEqual(value, Y.DOM.getStyle(node, attr), attr + ': ' + num);
195
 
                },
196
 
 
197
 
            test_create: function() {
198
 
                var html = '';
199
 
                var el = Y.DOM.create(html);
200
 
                Assert.isNull(el, html);
201
 
 
202
 
                var html = null;
203
 
                var el = Y.DOM.create(html);
204
 
                Assert.isNull(el, html);
205
 
 
206
 
                var html = '<div>fresh</div>';
207
 
                var el = Y.DOM.create(html);
208
 
                Assert.areEqual('DIV', el.tagName, html);
209
 
 
210
 
                html = '<input type="submit">';
211
 
                el = Y.DOM.create(html);
212
 
                Assert.areEqual('INPUT', el.tagName, html);
213
 
 
214
 
                html = '<input name="test-input" type="radio">';
215
 
                el = Y.DOM.create(html);
216
 
                Assert.areEqual('radio', el.type, html);
217
 
                Assert.areEqual('test-input', el.name, html);
218
 
 
219
 
                html = '<form></form>';
220
 
                el = Y.DOM.create(html);
221
 
                Assert.areEqual('FORM', el.tagName, html);
222
 
 
223
 
                html = '<label>fresh</label>';
224
 
                el = Y.DOM.create(html);
225
 
                Assert.areEqual('LABEL', el.tagName, html);
226
 
 
227
 
                html = '<li>fresh</li>';
228
 
                el = Y.DOM.create(html);
229
 
                Assert.areEqual('LI', el.tagName, html);
230
 
 
231
 
                html = '<ul><li>fresh</li></ul>';
232
 
                el = Y.DOM.create(html);
233
 
                Assert.areEqual(1, el.childNodes.length, html);
234
 
 
235
 
                html = '<tr></tr>';
236
 
                el = Y.DOM.create(html);
237
 
                Assert.areEqual('TR', el.tagName, html);
238
 
 
239
 
                html = '<td>fresh</td>';
240
 
                el = Y.DOM.create(html);
241
 
                Assert.areEqual('TD', el.tagName, html);
242
 
 
243
 
                html = '<th>fresh</th>';
244
 
                el = Y.DOM.create(html);
245
 
                Assert.areEqual('TH', el.tagName, html);
246
 
 
247
 
                html = '<thead></thead>';
248
 
                el = Y.DOM.create(html);
249
 
                Assert.areEqual('THEAD', el.tagName, html);
250
 
 
251
 
                html = '<caption>fresh</caption>';
252
 
                el = Y.DOM.create(html);
253
 
                Assert.areEqual('CAPTION', el.tagName, html);
254
 
 
255
 
                /*
256
 
                html = '<col></col>';
257
 
                el = Y.DOM.create(html);
258
 
                Assert.areEqual('COL', el.tagName, html);
259
 
                */
260
 
 
261
 
                html = '<colgroup></colgroup>';
262
 
                el = Y.DOM.create(html);
263
 
                Assert.areEqual('COLGROUP', el.tagName, html);
264
 
 
265
 
                html = '<colgroup><col><col></colgroup>';
266
 
                el = Y.DOM.create(html);
267
 
                Assert.areEqual('COLGROUP', el.tagName, html);
268
 
 
269
 
                html = '<button>fresh</button>';
270
 
                el = Y.DOM.create(html);
271
 
                Assert.areEqual('BUTTON', el.tagName, html);
272
 
 
273
 
                html = '<optgroup></optgroup>';
274
 
                el = Y.DOM.create(html);
275
 
                Assert.areEqual('OPTGROUP', el.tagName, html);
276
 
 
277
 
                html = '<optgroup><option>foo</option></optgroup>';
278
 
                el = Y.DOM.create(html);
279
 
                Assert.areEqual('OPTGROUP', el.tagName, html);
280
 
 
281
 
                html = '<dd>fresh</dd>';
282
 
                el = Y.DOM.create(html);
283
 
                Assert.areEqual('DD', el.tagName, html);
284
 
 
285
 
                html = '<dt>fresh</dt>';
286
 
                el = Y.DOM.create(html);
287
 
                Assert.areEqual('DT', el.tagName, html);
288
 
 
289
 
                html = '<select><option>foo</option><option>bar</option></select>';
290
 
                el = Y.DOM.create(html);
291
 
                Assert.areEqual('SELECT', el.tagName, html);
292
 
                Assert.areEqual(2, el.childNodes.length, html);
293
 
 
294
 
                html = '<table><tr><td>foo</td><td>bar</td></tr></table>';
295
 
                el = Y.DOM.create(html);
296
 
                Assert.areEqual('TABLE', el.tagName, html);
297
 
                Assert.areEqual(1, el.childNodes.length, html);
298
 
 
299
 
                html = '<tr><td>foo</td><td>bar</td></tr>';
300
 
                el = Y.DOM.create(html);
301
 
                Assert.areEqual('TR', el.tagName, html);
302
 
                Assert.areEqual(2, el.childNodes.length, html);
303
 
 
304
 
                html = '<iframe src="http://search.yahoo.com/" id="yui-iframetest"></iframe>';
305
 
                el = Y.DOM.create(html);
306
 
                Assert.areEqual('http://search.yahoo.com/', el.src, html);
307
 
                Assert.areEqual('yui-iframetest', el.id, html);
308
 
 
309
 
/*
310
 
                html = '<scr' + 'ipt src="http://search.yahoo.com/"></scr' + 'ipt>';
311
 
                el = Y.DOM.create(html);
312
 
                Assert.areEqual('SCRIPT', el.tagName, html);
313
 
                Assert.areEqual('http://search.yahoo.com/', el.src, html);
314
 
 
315
 
                html =  '<link href="http://search.yahoo.com/" rel="stylesheet">';
316
 
                el = Y.DOM.create(html);
317
 
                Assert.areEqual('LINK', el.tagName, html);
318
 
                Assert.areEqual('http://search.yahoo.com/', el.href, html);
319
 
                Assert.areEqual(el.rel, 'stylesheet', html);
320
 
 
321
 
*/
322
 
                html = '<option>fresh</option>';
323
 
                el = Y.DOM.create(html);
324
 
                Assert.areEqual('OPTION', el.tagName, html);
325
 
 
326
 
                html = '<legend>fresh</legend>';
327
 
                el = Y.DOM.create(html);
328
 
                Assert.areEqual('LEGEND', el.tagName, html);
329
 
 
330
 
                html = '<fieldset>fresh</fieldset>';
331
 
                el = Y.DOM.create(html);
332
 
                Assert.areEqual('FIELDSET', el.tagName, html);
333
 
 
334
 
                html ='<div id="default-e34f85" class="mod view_default"> <div id="default-e34f85-hd" class="hd"><h2>Yahoo! Mail Preview</h2> <span class="mod-button-wrapper"> </span> </div> <div id="default-e34f85-bd" class="bd type_mail type_mail_default"> <p class="divider-b small text-right"><a href="http://us.lrd.yahoo.com/_ylt=AhQqDwn_HdUEqFrWLI8HTGP1cSkA/SIG=10rfos93v/**http%3A//mail.yahoo.com/">Go to Yahoo! Mail</a></p> <img src="http://l.yimg.com/a/i/ww/met/mail_promo_060608.gif" alt="Yahoo! Mail avatar shows the possibilities of email" class="promo" width="300px"> <p class="x-large sign-in-link"><a href="https://us.lrd.yahoo.com/_ylt=AnGramz3WfSHqLcCWa92OGj1cSkA/SIG=12tb7s4o8/**https%3A//login.yahoo.com/config/mail%3F.intl=us%26.src=ym%26.done=http%3A//mail.yahoo.com">Sign in</a> to preview your email here.</p> <p class="med-small">The all-new Yahoo! Mail:<br>More ways to connect with everyone.</p> </div></div>';
335
 
                el = Y.DOM.create(html);
336
 
                Assert.areEqual('default-e34f85', el.id, html);
337
 
 
338
 
                html = '<thead><tr><td><table><tbody><tr><td>fresh</td></tr></tbody></table></td></tr></thead>';
339
 
                el = Y.DOM.create(html);
340
 
                Assert.areEqual('THEAD', el.tagName, html);
341
 
 
342
 
 
343
 
                html = '<li><a href=""></a></li>';
344
 
                el = Y.DOM.create(html);
345
 
                Assert.areEqual('A', el.firstChild.tagName, html);
346
 
 
347
 
                html = '<option>foo</option>';
348
 
                el = Y.DOM.create(html);
349
 
                document.getElementById('test-select').appendChild(el);
350
 
                Assert.isFalse(el.selected, 'el.selected(false)');
351
 
 
352
 
                html = '<option selected>foo</option>';
353
 
                el = Y.DOM.create(html);
354
 
                document.getElementById('test-select').appendChild(el);
355
 
                Assert.isTrue(el.selected, 'el.selected(true)');
356
 
 
357
 
                // trim leading space
358
 
                html = ' <div>foo</div>';
359
 
                el = Y.DOM.create(html);
360
 
                Assert.isTrue(el.tagName === 'DIV', html);
361
 
 
362
 
                html = '<iframe border="0" frameBorder="0" marginWidth="0" marginHeight="0" leftMargin="0" topMargin="0" allowTransparency="true" width="100%" height="99%"></iframe>';
363
 
                el = Y.DOM.create(html);
364
 
                Assert.areEqual(document, el.ownerDocument, html);
365
 
 
366
 
/*
367
 
                html = '<thead><tr><td><table><thead></thead><tbody><tr><td>fresh</td></tr></tbody></table></td></tr></thead>';
368
 
                el = Y.DOM.create(html);
369
 
                Assert.areEqual('THEAD', el.tagName, html);
370
 
*/
371
 
 
372
 
            },
373
 
 
374
 
            test_createNodes: function() {
375
 
                var html = '<div>foo</div><div id="tmp-bar">bar</div><div>baz</div>';
376
 
                var el = Y.DOM.create(html);
377
 
                Assert.areEqual(3, el.childNodes.length, html);
378
 
                Assert.areEqual('tmp-bar', el.childNodes[1].id, html);
379
 
                Assert.areEqual('foo', el.childNodes[0].innerHTML, html);
380
 
 
381
 
                html = '<option>foo</option><option id="tmp-bar">bar</option><option>baz</option>';
382
 
                el = Y.DOM.create(html);
383
 
                Assert.areEqual(3, el.childNodes.length, html);
384
 
                Assert.areEqual('tmp-bar', el.childNodes[1].id, html);
385
 
 
386
 
                html = '<option>foo</option><option selected>bar</option><option>baz</option>';
387
 
                el = Y.DOM.create(html);
388
 
                Assert.areEqual(3, el.childNodes.length, html);
389
 
                Assert.isTrue(el.childNodes[1].selected, html);
390
 
 
391
 
                html = '<td>foo</td><td id="tmp-bar">bar</td><td>baz</td>';
392
 
                el = Y.DOM.create(html);
393
 
                Assert.areEqual(3, el.childNodes.length, html);
394
 
                Assert.areEqual('tmp-bar', el.childNodes[1].id, html);
395
 
 
396
 
                html = '<tbody></tbody><tbody id="tmp-bar"></tbody><tbody></tbody>';
397
 
                el = Y.DOM.create(html);
398
 
                Assert.areEqual(3, el.childNodes.length, html);
399
 
                Assert.areEqual('tmp-bar', el.childNodes[1].id, html);
400
 
                html = '<thead><tr><td><table><tbody><tr><td>fresh</td></tr></tbody></table></td></tr></thead><tbody></tbody>';
401
 
                el = Y.DOM.create(html);
402
 
                Assert.areEqual(2, el.childNodes.length, html);
403
 
 
404
 
            },
405
 
 
406
 
            test_ancestor: function() {
407
 
                Assert.areEqual(doc, Y.DOM.ancestor(hd), 'ancestor(hd)');
408
 
                Assert.areEqual(doc, Y.DOM.ancestor(bd), 'ancestor(bd)');
409
 
                Assert.areEqual(doc, Y.DOM.ancestor(bd), 'ancestor(bd)');
410
 
                Assert.areEqual(document.body, Y.DOM.ancestor(bd, function(node) { return node.tagName === 'BODY';}), 'ancestor(bd, fn)');
411
 
                Assert.areEqual(bd, Y.DOM.ancestor(bd, null, true), 'ancestor(bd, true)');
412
 
            },
413
 
 
414
 
 
415
 
            test_insertBefore: function() {
416
 
                //Assert.areEqual(Y.DOM.insertBefore(ft, hd), Y.DOM.firstChild(doc), 'insertBefore(ft, hd)');
417
 
                //Assert.areEqual(ft, Y.DOM.firstChild(doc), 'insertBefore(ft, hd)');
418
 
            },
419
 
 
420
 
 
421
 
            test_insertAfter: function() {
422
 
                //Assert.areEqual(Y.DOM.insertAfter(hd, ft), ft.nextSibling, 'insertAfter(hd, ft)');
423
 
                //Assert.areEqual(hd, ft.nextSibling, 'insertAfter(hd, ft)');
424
 
            },
425
 
 
426
 
            test_getAttribute: function() {
427
 
                var node = Y.DOM.byId('doc');
428
 
                Y.DOM.setAttribute(node, 'class', 'foo');
429
 
                Assert.areEqual('foo', node.className, "Y.DOM.setAttribute(node, 'class', 'foo')");
430
 
                Assert.areEqual('foo', Y.DOM.getAttribute(node, 'class'), "Y.DOM.getAttribute(node, 'class')");
431
 
                Assert.areEqual('foo', Y.DOM.getAttribute(node, 'className'), "Y.DOM.getAttribute(node, 'className')");
432
 
 
433
 
                Y.DOM.setAttribute(node, 'className', 'bar');
434
 
                Assert.areEqual('bar', node.className, "node.className");
435
 
 
436
 
                node = Y.DOM.byId('search-p-label');
437
 
                Assert.areEqual('search-p', Y.DOM.getAttribute(node, 'for'), "Y.DOM.setAttribute(node, 'for', 'search-p')");
438
 
                Assert.areEqual('search-p', Y.DOM.getAttribute(node, 'htmlFor'), "Y.DOM.setAttribute(node, 'htmlFor', 'search-p')");
439
 
            },
440
 
 
441
 
            test_getValue: function() {
442
 
                // text
443
 
                var id = 'test-text-value',
444
 
                    val = 'text value';
445
 
 
446
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
447
 
 
448
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
449
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
450
 
 
451
 
                id = 'test-text-novalue';
452
 
                val = '';
453
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
454
 
 
455
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
456
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
457
 
 
458
 
                // textarea
459
 
                id = 'test-textarea-textvalue';
460
 
                val = 'textarea text';
461
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
462
 
 
463
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
464
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
465
 
 
466
 
                id = 'test-textarea-value';
467
 
                val = '';
468
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
469
 
 
470
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
471
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
472
 
 
473
 
                id = 'test-textarea-novalue';
474
 
                val = '';
475
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
476
 
 
477
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
478
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
479
 
 
480
 
                // button
481
 
                id = 'test-button-value';
482
 
                val = 'button value';
483
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
484
 
 
485
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
486
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
487
 
 
488
 
                id = 'test-button-novalue';
489
 
                val = '';
490
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
491
 
 
492
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
493
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
494
 
 
495
 
                id = 'test-button-textvalue';
496
 
                val = '';
497
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
498
 
 
499
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
500
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
501
 
 
502
 
                // select
503
 
                id = 'test-select-value';
504
 
                val = 'option value';
505
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
506
 
 
507
 
                id = 'test-select-novalue';
508
 
                val = '';
509
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
510
 
 
511
 
                id = 'test-select-textvalue';
512
 
                val = 'option text';
513
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
514
 
 
515
 
                id = 'test-select-emptyvalue';
516
 
                val = '';
517
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
518
 
 
519
 
                id = 'test-select-emptyvalue-notext';
520
 
                val = '';
521
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
522
 
 
523
 
                // option
524
 
                id = 'test-option-value';
525
 
                val = 'option value';
526
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
527
 
 
528
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
529
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
530
 
 
531
 
                id = 'test-option-emptyvalue';
532
 
                val = '';
533
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
534
 
 
535
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
536
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
537
 
 
538
 
                id = 'test-option-novalue';
539
 
                val = '';
540
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
541
 
 
542
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
543
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
544
 
 
545
 
                id = 'test-option-emptyvalue-notext';
546
 
                val = '';
547
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
548
 
 
549
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
550
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
551
 
 
552
 
                id = 'test-option-textvalue';
553
 
                val = 'option text';
554
 
 
555
 
                Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
556
 
 
557
 
                Y.DOM.setValue(Y.DOM.byId(id), 'new value');
558
 
                Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
559
 
 
560
 
                id = 'test-text-emptyvalue';
561
 
                Assert.areEqual('""', Y.JSON.stringify(Y.DOM.getValue(Y.DOM.byId(id))),
562
 
                    "Y.JSON.stringify(Y.DOM.getValue(Y.DOM.byId(" + id + ")))");
563
 
            },
564
 
 
565
 
            test_position: function() { // basic position tests
566
 
                var node = document.createElement('div');
567
 
                ArrayAssert.itemsAreEqual([0, 0], Y.DOM.getXY(node), 'off-dom: [0, 0]');
568
 
 
569
 
                // off-dom is unreliable due to cascade when appended
570
 
                //Y.DOM.setXY(node, [100, 200]);
571
 
                //ArrayAssert.itemsAreEqual([100, 200], Y.DOM.getXY(node), 'off-dom: [100, 200]');
572
 
 
573
 
                Assert.isNull(Y.DOM.getXY(null), 'Y.DOM.getXY(null)');
574
 
 
575
 
                document.body.appendChild(node);
576
 
                Y.DOM.setXY(node, [100, 200]);
577
 
                var pos = Y.DOM.getXY(node);
578
 
                ArrayAssert.itemsAreEqual([100, 200], [Math.round(pos[0]), Math.round(pos[1])], 'setXY([100, 200]');
579
 
            },
580
 
 
581
 
            test_region: function() {
582
 
                var node = Y.DOM.byId('doc'),
583
 
                    xy = Y.DOM.getXY(node),
584
 
                    region = Y.DOM.region(node);
585
 
 
586
 
                Assert.isFalse(Y.DOM.region(null), 'Y.DOM.region(null)');
587
 
 
588
 
                Assert.areEqual(xy[0], region.left, 'region.left');
589
 
                Assert.areEqual(xy[1], region.top, 'region.top');
590
 
                Assert.areEqual(xy[0], region[0], 'region[0]');
591
 
                Assert.areEqual(xy[1], region[1], 'region[1]');
592
 
                Assert.areEqual(node.offsetWidth, region.width, 'region.width');
593
 
                Assert.areEqual(node.offsetHeight, region.height, 'region.height');
594
 
                Assert.areEqual(node.offsetHeight + xy[1], region.bottom, 'region.bottom');
595
 
                Assert.areEqual(node.offsetWidth + xy[0], region.right, 'region.right');
596
 
 
597
 
            },
598
 
 
599
 
            test_viewportRegion: function() {
600
 
                var node = Y.DOM.byId('doc'),
601
 
                    scrollX = Y.DOM.docScrollX(node),
602
 
                    scrollY = Y.DOM.docScrollY(node),
603
 
                    winHeight = Y.DOM.winHeight(node),
604
 
                    winWidth = Y.DOM.winWidth(node),
605
 
                    region = Y.DOM.viewportRegion(node);
606
 
 
607
 
                Assert.areEqual(scrollX, region.left, 'region.left');
608
 
                Assert.areEqual(scrollY, region.top, 'region.top');
609
 
                Assert.areEqual(scrollX, region[0], 'region[0]');
610
 
                Assert.areEqual(scrollY, region[1], 'region[1]');
611
 
                Assert.areEqual(winWidth, region.width, 'region.width');
612
 
                Assert.areEqual(winHeight, region.height, 'region.height');
613
 
                Assert.areEqual(scrollY + winHeight, region.bottom, 'region.bottom');
614
 
                Assert.areEqual(scrollX + winWidth, region.right, 'region.right');
615
 
 
616
 
                region = Y.DOM.viewportRegion();
617
 
                Assert.areEqual(scrollX, region.left, 'region.left');
618
 
                Assert.areEqual(scrollY, region.top, 'region.top');
619
 
                Assert.areEqual(scrollX, region[0], 'region[0]');
620
 
                Assert.areEqual(scrollY, region[1], 'region[1]');
621
 
                Assert.areEqual(winWidth, region.width, 'region.width');
622
 
                Assert.areEqual(winHeight, region.height, 'region.height');
623
 
                Assert.areEqual(scrollY + winHeight, region.bottom, 'region.bottom');
624
 
                Assert.areEqual(scrollX + winWidth, region.right, 'region.right');
625
 
 
626
 
            },
627
 
 
628
 
            test_addHTML: function() {
629
 
                var node = Y.DOM.byId('test-add');
630
 
                Y.DOM.addHTML(node, '<em>new content</em>');
631
 
                Assert.areEqual('EM', node.lastChild.nodeName, "Y.DOM.addHTML(node, '<em>new content</em>')");
632
 
 
633
 
                Y.DOM.addHTML(node, '<strong>new content</strong>', node.firstChild);
634
 
                Assert.areEqual('STRONG', node.firstChild.nodeName, "Y.DOM.addHTML(node, '<em>new content</em>', node.firstChild)");
635
 
 
636
 
                Y.DOM.addHTML(node, '<span>new content</span>', node.childNodes[1]);
637
 
                Assert.areEqual('SPAN', node.childNodes[1].nodeName, "Y.DOM.addHTML(node, '<em>new content</em>', node.childNodes[1])");
638
 
 
639
 
                Y.DOM.addHTML(node, 200);
640
 
                Assert.areEqual(3, node.lastChild.nodeType, "Y.DOM.addHTML(node, 200)");
641
 
 
642
 
                Y.DOM.addHTML(node, Y.DOM.create('<p>this is a <em>test</em></p>'));
643
 
                Assert.areEqual('P', node.lastChild.nodeName, "Y.DOM.create('<p>this is a <em>test</em></p>')");
644
 
            },
645
 
 
646
 
            testFirstByTag: function() {
647
 
                var tag = 'div',
648
 
                    root = document;
649
 
 
650
 
                Assert.areEqual(root.getElementsByTagName(tag)[0],
651
 
                    Y.DOM.firstByTag(tag, root),
652
 
                    "Y.DOM.firstByTag(" + tag + " , " + root + ")"
653
 
                );
654
 
 
655
 
                tag = 'input';
656
 
                root = document.getElementById('test-form');
657
 
 
658
 
                Assert.areEqual(root.getElementsByTagName(tag)[0],
659
 
                    Y.DOM.firstByTag(tag, root),
660
 
                    "Y.DOM.firstByTag(" + tag + " , " + root + ")"
661
 
                );
662
 
 
663
 
                tag = null;
664
 
                root = null;
665
 
 
666
 
                Assert.isNull(Y.DOM.firstByTag(tag, root),
667
 
                    "Y.DOM.firstByTag(" + tag + " , " + root + ")"
668
 
                );
669
 
            },
670
 
 
671
 
            testToHex: function() {
672
 
                var rgb = 'rgb(97, 11, 11)',
673
 
                    hex = Y.Color.toHex(rgb);
674
 
 
675
 
                Assert.areEqual("#610B0B", hex, 'toHex(' + rgb + ')');
676
 
 
677
 
                rgb = 'rgb(255, 255, 255)';
678
 
                hex = Y.Color.toHex(rgb);
679
 
 
680
 
                Assert.areEqual("#FFFFFF", hex, 'toHex(' + rgb + ')');
681
 
 
682
 
                rgb = '#fff';
683
 
                hex = Y.Color.toHex(rgb);
684
 
 
685
 
                Assert.areEqual("#FFFFFF", hex, 'toHex(' + rgb + ')');
686
 
 
687
 
                rgb = 'fff';
688
 
                hex = Y.Color.toHex(rgb);
689
 
 
690
 
                Assert.areEqual("#FFFFFF", hex, 'toHex(' + rgb + ')');
691
 
 
692
 
                rgb = '000';
693
 
                hex = Y.Color.toHex(rgb);
694
 
 
695
 
                Assert.areEqual("#000000", hex, 'toHex(' + rgb + ')');
696
 
 
697
 
                rgb = "rgb(97, 56, 11)" ;
698
 
                hex = Y.Color.toHex(rgb);
699
 
                Assert.areSame(hex, "#61380B", " shoudl be #61380B"); 
700
 
 
701
 
                rgb = "rgb(11, 97, 11)" ; // 0B610B
702
 
                hex = Y.Color.toHex(rgb);
703
 
                Assert.areSame(hex, "#0B610B", " shoudl be #0B610B"); 
704
 
 
705
 
                rgb = "rgb(56, 11, 97)" ; //380B61
706
 
                hex = Y.Color.toHex(rgb);
707
 
                Assert.areSame(hex, "#380B61", " shoudl be #380B61"); 
708
 
 
709
 
                rgb = "rgb(97, 11, 56)" ; //610B38
710
 
                hex = Y.Color.toHex(rgb);
711
 
                Assert.areSame(hex, "#610B38", " shoudl be #610B38");
712
 
            },
713
 
 
714
 
            test_inDoc: function() {
715
 
                var node = document.createElement('div');
716
 
                Assert.isFalse(Y.DOM.inDoc(node), 'new off doc');
717
 
 
718
 
                document.body.appendChild(node);
719
 
                Assert.isTrue(Y.DOM.inDoc(node), 'new in doc');
720
 
 
721
 
                document.body.removeChild(node);
722
 
                Assert.isFalse(Y.DOM.inDoc(node), 'removed');
723
 
 
724
 
                // test dupe ID
725
 
                node.id = 'doc';
726
 
                document.body.appendChild(node);
727
 
                Assert.isTrue(Y.DOM.inDoc(node), 'dupe id in doc');
728
 
 
729
 
                document.body.removeChild(node);
730
 
                Assert.isFalse(Y.DOM.inDoc(node), 'dupe if off doc');
731
 
 
732
 
                // test form with input name="id" (IE collision with form.id)
733
 
                Assert.isTrue(Y.DOM.inDoc(Y.DOM.byId('search')), "form.id === 'search'");
734
 
 
735
 
                node = null;
736
 
                Assert.isFalse(Y.DOM.inDoc(node), 'null node');
737
 
 
738
 
                node = document.getElementById('ft');
739
 
                node = node.cloneNode(true);
740
 
                node.id = 'ft-clone';
741
 
                Assert.isFalse(Y.DOM.inDoc(node), "clone inDoc false");
742
 
                document.body.appendChild(node);
743
 
                Assert.isTrue(Y.DOM.inDoc(node), "clone inDoc true");
744
 
            }
745
 
 
746
 
        })); 
747
 
        Y.Test.Runner.add(suite);
748
 
 
749
 
        if (parent && parent != window && Y.Test.Manager) {
750
 
            Y.Test.Manager.load();
751
 
        } else {
752
 
            Y.Test.Runner.run();
753
 
        }
754
 
 
755
 
});
756
 
</script>
757
 
<style>
758
 
 
759
 
h1, h2, h3, h4, h5, h6, p, ul, ol, li {
760
 
    Xmargin:0;
761
 
    Xpadding:0;
762
 
}
763
 
 
764
 
form {
765
 
    width: 30em;
766
 
}
767
 
 
768
 
#doc {
769
 
    border:5px solid #000;
770
 
    margin:10px;
771
 
    padding:10px;
772
 
}
773
 
 
774
 
#hd {
775
 
    background:#ccc;
776
 
}
777
 
 
778
 
#foo {
779
 
    float:left; /* required for getStyle test */
780
 
}
781
 
 
782
 
#ft {
783
 
    height:200px;
784
 
    opacity: 0.75;
785
 
}
786
 
.yui3-skin-sam .yui-console-entry-pass .yui-console-entry-cat {
787
 
    background: #070;
788
 
    color: #fff;
789
 
}
790
 
.yui3-skin-sam .yui-console-entry-fail .yui-console-entry-cat {
791
 
    background: #700;
792
 
    color: #fff;
793
 
}
794
 
</style>
795
 
 
796
 
<style type="text/css">
797
 
 
798
 
</style>
799
 
</head>
800
 
<body class="yui3-skin-sam">
801
 
    <div id="doc">
802
 
        <div id="hd"><h1>Page Header</h1></div>
803
 
        <div id="bd">
804
 
            <div id="main" class="main">
805
 
                <h2 id="foo">Section Header</h2>
806
 
                <select id="test-select"><option>choose</option></select>
807
 
                <em class="lorem ipsum ipsum" id="lorem-ipsum">lorem ipsum</em>
808
 
                <div class="mod" id="mod1">
809
 
                    <div class="hd">
810
 
                        <h3>Module Header</h3>
811
 
                    </div>
812
 
                    <div class="bd">
813
 
                        <p>Fusce feugiat diam. Vestibulum elementum dui in augue. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris pulvinar.</p>
814
 
                    </div>
815
 
                    <div class="ft"><a href="#">more</a></div>
816
 
                </div>
817
 
                <div class="mod" id="mod2">
818
 
                    <div class="hd">
819
 
                        <h3>Module Header</h3>
820
 
                    </div>
821
 
                    <div class="bd">
822
 
                        <form action="#" method="get" id="search">
823
 
                            <fieldset id="search-fields">
824
 
                                <legend>Search</legend>
825
 
                                <label for="search-p" id="search-p-label">Query</label>
826
 
                                <input type="text" name="p" id="search-p">
827
 
                                <input name="id">
828
 
                                <input type="submit" value="search">
829
 
                            </fieldset>
830
 
                        </form>
831
 
                    </div>
832
 
                    <div class="ft"><a href="http://www.developer.yahoo.com">more</a></div>
833
 
                </div>
834
 
            </div>
835
 
            <form id="test-form" class="test-class" action="#">
836
 
                <input id="test-text-value" value="text value">
837
 
                <input id="test-text-novalue" name=>
838
 
                <input id="test-text-emptyvalue">
839
 
 
840
 
 
841
 
                <textarea id="test-textarea-value" value="textarea value"></textarea>
842
 
                <textarea id="test-textarea-novalue"></textarea>
843
 
                <textarea id="test-textarea-textvalue">textarea text</textarea>
844
 
 
845
 
                <button id="test-button-value" value="button value">button</button>
846
 
                <button id="test-button-novalue"></button>
847
 
                <button id="test-button-textvalue">button text</button>
848
 
 
849
 
                <select id="test-select-value">
850
 
                    <option id="test-option-value" value="option value">option text</option>
851
 
                    <option id="test-option-textvalue">option text</option>
852
 
                    <option id="test-option-emptyvalue" value="">empty value</option>
853
 
                    <option id="test-option-emptyvalue-notext" value=""></option>
854
 
                    <option id="test-option-novalue"></option>
855
 
                </select>
856
 
 
857
 
                <select id="test-select-textvalue">
858
 
                    <option>option text</option>
859
 
                </select>
860
 
 
861
 
                <select id="test-select-emptyvalue">
862
 
                    <option value="">option text</option>
863
 
                </select>
864
 
                <select id="test-select-emptyvalue-notext">
865
 
                    <option value=""></option>
866
 
                </select>
867
 
            </form>
868
 
            <form id="test-names">
869
 
                <input id="test-name-id1" name="test-name-id2" >
870
 
                <input id="test-name-id2" name="test-name-id1">
871
 
            </form>
872
 
            <div id="test-add">test</div>
873
 
        </div>
874
 
        <div id="ft">
875
 
            <p>In hac habitasse platea dictumst. Sed sit amet ligula vitae justo consequat facilisis. Integer tortor. Integer erat. In hac habitasse platea dictumst. Phasellus convallis quam vitae turpis aliquam lobortis. Aliquam scelerisque condimentum lectus. Proin semper adipiscing leo. Nulla facilisi.</p>
876
 
        </div>
877
 
    </div>
878
 
</body>
879
 
</html>