Skip to content

Commit 18c11da

Browse files
committed
Merging changes in from master
2 parents 8b5a56b + 3a293f6 commit 18c11da

File tree

5 files changed

+81
-49
lines changed

5 files changed

+81
-49
lines changed

lib/yui3-dom-after.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/**
2+
* Module contains overrides for Y.DOM.
3+
* @module nodejs-dom-after
4+
*/
5+
YUI.add('nodejs-dom-after', function(Y) {
6+
Y.DOM.VALUE_GETTERS.button = function(node) {
7+
return node.getAttribute('value');
8+
}
9+
Y.DOM.VALUE_GETTERS.option = function(opt) {
10+
var val = opt.getAttribute('value');
11+
if (!opt.hasAttribute('value')) {
12+
val = opt.innerHTML;
13+
}
14+
return val;
15+
}
16+
Y.DOM.VALUE_GETTERS.select = function(node) {
17+
var si = node.selectedIndex;
18+
if (!node.options[si]) {
19+
si = 0;
20+
}
21+
var opt = node.options[si];
22+
var val;
23+
if (opt) {
24+
val = opt.getAttribute('value');
25+
if (!opt.hasAttribute('value')) {
26+
val = opt.innerHTML;
27+
}
28+
}
29+
return val;
30+
}
31+
32+
Y.DOM.VALUE_SETTERS.select = function(node, val) {
33+
for (var i = 0, options = node.getElementsByTagName('option'), option;
34+
option = options[i++];) {
35+
if (Y.DOM.getValue(option) === val) {
36+
option.selected = true;
37+
break;
38+
}
39+
}
40+
}
41+
42+
Y.Selector.useNative = false;
43+
Y.Selector._nativeQuery = Y.Selector._bruteQuery;
44+
45+
}, 'NODE' );
46+

lib/yui3-dom.js

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,45 @@
44
*/
55
YUI.add('nodejs-dom', function(Y) {
66
var jsdom = null,
7-
parser = null,
8-
browser, dom;
7+
browser = {}, dom;
98

109
if (!YUI._jsdom) {
1110
YUI._jsdom = YUI.require('jsdom');
1211
}
1312

14-
//Cache the htmlparser require.
15-
if (!YUI._htmlparser) {
16-
YUI._htmlparser = YUI.require('htmlparser');
17-
}
1813
jsdom = YUI._jsdom;
19-
parser = YUI._htmlparser;
20-
2114
dom = jsdom.defaultLevel;
22-
if (!dom.Element.prototype.blur) {
23-
dom.Element.prototype.blur = function() {};
24-
dom.Element.prototype.focus = function() {};
15+
dom.Element.prototype.blur = function() {};
16+
dom.Element.prototype.focus = function() {};
17+
18+
var features = {
19+
FetchExternalResources: [],
20+
ProcessExternalResources : false
2521
}
22+
browser.window = jsdom.jsdom('', null, {features: features}).createWindow();
23+
browser.document = browser.window.document;
2624

25+
browser.document.getElementsByTagName('head').item(0).appendChild(browser.document.createElement('title'));
2726

28-
browser = jsdom.windowAugmentation(dom, {
29-
parser: parser
30-
});
3127

28+
browser.document.scrollTop = browser.document.documentElement.scrollTop = browser.document.body.scrollTop = 0;
29+
browser.document.scrollLeft = browser.document.documentElement.scrollLeft = browser.document.body.scrollLeft = 0;
30+
3231
browser.window.eval = eval;
3332

33+
browser.self = browser.window;
34+
browser.navigator = browser.window.navigator;
35+
browser.location = browser.window.navigator;
36+
37+
3438
if (Y.config.UA) {
3539
browser.window.navigator.userAgent = Y.config.UA;
3640
}
3741

42+
browser.window.focus = function() {};
43+
browser.window.blur = function() {};
44+
browser.window.scrollTo = function() {};
45+
3846
Y.config.doc = browser.window.document;
3947
Y.config.win = browser.window;
4048

tests/dom.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ YUI({
1313
logExclude: {
1414
'attribute': true,
1515
'base': true,
16-
'get': true,
16+
//'get': true,
1717
'loader': true,
1818
'yui': true,
1919
'widget': true,

tests/node.js

Lines changed: 12 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ YUI({
1313
logExclude: {
1414
'attribute': true,
1515
'base': true,
16-
'get': true,
16+
//'get': true,
1717
'loader': true,
1818
'yui': true,
1919
'widget': true,
@@ -62,9 +62,9 @@ var window = Y.config.win;
6262
Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.one('#test-nodes')), 'Y.one("#test-nodes")');
6363
Assert.areEqual('test-nodes', Y.one('#test-nodes').get('id'), 'Y.one("#test-nodes").get("id")');
6464
Assert.areEqual(node, Y.one('#test-nodes'), 'node === Y.one("#test-nodes")');
65-
65+
6666
Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[0],
67-
Y.Node.getDOMNode(Y.one('#test-nodes li:first-child')), 'Y.one("#test-nodes")');
67+
Y.Node.getDOMNode(Y.one('#test-nodes li:first-child')), 'Y.one("#test-nodes li:first-child")');
6868

6969
Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
7070
Y.Node.getDOMNode(Y.one('#test-nodes li:nth-child(2)')), 'Y.one("#test-nodes:nth-child(2)")');
@@ -98,10 +98,12 @@ var window = Y.config.win;
9898
ArrayAssert.itemsAreEqual(Y.Selector.query('input[name]'), Y.all(Y.Selector.query('input[name]'))._nodes, "Y.all(Y.Selector.query('input[name]'))");
9999

100100
ArrayAssert.itemsAreEqual(Y.Selector.query('.foo'), Y.all(Y.Selector.query('.foo'))._nodes, "Y.all(Y.Selector.query('.foo'))");
101-
101+
102+
/*
102103
var frameDoc = Y.one('iframe').get('contentWindow.document');
103104
Assert.areEqual('iframe foo', Y.Lang.trim(frameDoc.one('#demo li').get('innerHTML')),
104105
"frameDoc.one('#demo li').get('innerHTML')");
106+
*/
105107

106108
ArrayAssert.itemsAreEqual([document.body], Y.all(document.body)._nodes, "Y.all(document.body)");
107109
Assert.areSame(Y.one('doc'), Y.one('doc'), "Y.one('doc') === Y.one('doc')");
@@ -309,7 +311,7 @@ var window = Y.config.win;
309311
Y.one('#test-select').set('value', 1);
310312
Assert.areEqual(1, Y.one('#test-select').get('value'), "Y.one('#test-select').set('value', 1)");
311313
Y.one('#test-select').set('value', 'baz');
312-
Assert.areEqual('baz', Y.one('#test-select').get('value'), "Y.one('#test-select').set('value', 1)");
314+
Assert.areEqual('baz', Y.one('#test-select').get('value'), "Y.one('#test-select').set('value', 'baz')");
313315
},
314316

315317
test_dom_methods: function() {
@@ -341,6 +343,8 @@ var window = Y.config.win;
341343
Assert.areEqual(1, clone.get('nodeType'), 'cloneNode()');
342344

343345
// TODO: test deep clone with bound descendant
346+
console.log(node.get('outerHTML'));
347+
console.log(node.cloneNode(true).get('outerHTML'));
344348
Assert.isTrue(node.get('childNodes').size() === node.cloneNode(true).get('childNodes').size(), 'node.get("childNodes").size() === node.cloneNode(true).get("childNodes").size()');
345349

346350
Assert.isTrue(Y.one('.bar').test('.bar'), "Y.one('.bar').test('.bar')");
@@ -420,7 +424,8 @@ var window = Y.config.win;
420424
Assert.areEqual(element, Y.Node.getDOMNode(frag.get('firstChild')), 'frag.appendChild()');
421425
Y.one('body').appendChild(frag);
422426
},
423-
427+
428+
/*
424429
test_screen: function() {
425430
var id = 'test-prop';
426431
var element = byId(id);
@@ -438,7 +443,6 @@ var window = Y.config.win;
438443
var y = Math.round(xy[1]);
439444
ArrayAssert.itemsAreEqual([100, 100], [x, y], 'Node.getXY("foo", "bar")');
440445
},
441-
/*
442446
test_region: function() {
443447
Assert.isTrue(Y.DOM.inRegion(byId('baz'), byId('doc')), 'DOM.inRegion(domNode, domNode)');
444448
Assert.isTrue(Y.one('#get-style').inRegion(byId('doc')), 'node.inRegion(domNode)');
@@ -614,31 +618,6 @@ var window = Y.config.win;
614618
Assert.isNotNull(Y.one('body').get('winHeight'), 'body.get("winHeight")');
615619
},
616620

617-
test_scroll: function() {
618-
Y.one('#test-scroll').set('scrollTop', 100);
619-
Y.one('#test-scroll').set('scrollLeft', 200);
620-
Assert.areEqual(100, byId('test-scroll').scrollTop, 'test-scroll.set("scrollTop", 100)');
621-
Assert.areEqual(200, byId('test-scroll').scrollLeft, 'test-scroll.set("scrollLeft", 200)');
622-
document.body.style.height = '5000px';
623-
document.body.style.width = '5000px';
624-
/*
625-
Y.one(window).set('scrollTop', 100);
626-
Y.one(window).set('scrollLeft', 200);
627-
Assert.areEqual(100, Y.DOM.docScrollY(window), 'window.set("scrollTop", 100)');
628-
Assert.areEqual(200, Y.DOM.docScrollX(window), 'window.set("scrollLeft", 200)');
629-
*/
630-
631-
Y.one(document).set('scrollTop', 200);
632-
Y.one(document).set('scrollLeft', 100);
633-
Assert.areEqual(200, Y.DOM.docScrollY(document), 'document.set("scrollTop", 200)');
634-
Assert.areEqual(100, Y.DOM.docScrollX(document), 'document.set("scrollLeft", 100)');
635-
636-
document.body.style.height = '';
637-
document.body.style.width = '';
638-
639-
window.scrollTo(0, 0);
640-
},
641-
642621
test_setContent: function() {
643622
var content = '<strong>foo</strong>';
644623
Y.one('#test-insert-html').setContent(content);
@@ -758,7 +737,7 @@ var window = Y.config.win;
758737

759738
//console.log(node._node.outerHTML);
760739
node.insert('<strong>baz</strong>', node.one('span'));
761-
console.log(node._node.outerHTML);
740+
//console.log(node._node.outerHTML);
762741
Assert.areEqual('STRONG', node._node.childNodes[1].tagName,
763742
"node.insert('<strong>baz</strong>', node.one('span')");
764743

tests/selector.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,6 @@ var runTests = function() {
446446
paraChildren.push(el);
447447
}
448448
});
449-
450449
ArrayAssert.itemsAreEqual(paraChildren, $('> p', Y.DOM.byId('demo')), '#demo > p');
451450
ArrayAssert.itemsAreEqual($('#demo > p'), $('foo, > p', Y.DOM.byId('demo')), '#demo foo, #demo > p');
452451

0 commit comments

Comments
 (0)