Fixes #551 - <Select> is not working properly

This commit is contained in:
Patrick Steele-Idem 2017-01-28 12:55:50 -07:00
parent eb7fe13474
commit b9871ae422
16 changed files with 78 additions and 5 deletions

View File

@ -172,7 +172,8 @@ VElement.prototype = {
// We don't care about the namespaces since the there
// is no chance that attributes with the same name will have
// different namespaces
return this.$__attributes[name] !== undefined;
var value = this.$__attributes[name];
return value != null && value !== false;
},
getAttribute: function(name) {

View File

@ -0,0 +1 @@
<OPTION selected="">

View File

@ -0,0 +1,9 @@
var expect = require('chai').expect;
module.exports = function(helpers) {
var virtualEl = helpers.vdom.createElement('option', { selected: '' });
expect(virtualEl.hasAttributeNS(null, 'selected')).to.equal(true);
return virtualEl.actualize(helpers.document);
};

View File

@ -0,0 +1 @@
<OPTION>

View File

@ -0,0 +1,9 @@
var expect = require('chai').expect;
module.exports = function(helpers) {
var virtualEl = helpers.vdom.createElement('option', { selected: false });
expect(virtualEl.hasAttributeNS(null, 'selected')).to.equal(false);
return virtualEl.actualize(helpers.document);
};

View File

@ -0,0 +1 @@
<OPTION>

View File

@ -0,0 +1,9 @@
var expect = require('chai').expect;
module.exports = function(helpers) {
var virtualEl = helpers.vdom.createElement('option', { selected: null });
expect(virtualEl.hasAttributeNS(null, 'selected')).to.equal(false);
return virtualEl.actualize(helpers.document);
};

View File

@ -0,0 +1 @@
<OPTION selected="0">

View File

@ -0,0 +1,9 @@
var expect = require('chai').expect;
module.exports = function(helpers) {
var virtualEl = helpers.vdom.createElement('option', { selected: 0 });
expect(virtualEl.hasAttributeNS(null, 'selected')).to.equal(true);
return virtualEl.actualize(helpers.document);
};

View File

@ -0,0 +1 @@
<OPTION selected="1">

View File

@ -0,0 +1,9 @@
var expect = require('chai').expect;
module.exports = function(helpers) {
var virtualEl = helpers.vdom.createElement('option', { selected: 1 });
expect(virtualEl.hasAttributeNS(null, 'selected')).to.equal(true);
return virtualEl.actualize(helpers.document);
};

View File

@ -0,0 +1 @@
<OPTION selected="">

View File

@ -0,0 +1,9 @@
var expect = require('chai').expect;
module.exports = function(helpers) {
var virtualEl = helpers.vdom.createElement('option', { selected: true });
expect(virtualEl.hasAttributeNS(null, 'selected')).to.equal(true);
return virtualEl.actualize(helpers.document);
};

View File

@ -0,0 +1 @@
<OPTION>

View File

@ -0,0 +1,9 @@
var expect = require('chai').expect;
module.exports = function(helpers) {
var virtualEl = helpers.vdom.createElement('option', { selected: undefined });
expect(virtualEl.hasAttributeNS(null, 'selected')).to.equal(false);
return virtualEl.actualize(helpers.document);
};

View File

@ -6,10 +6,12 @@ var toHTML = require('./util/toHTML');
var jsdom = require("jsdom").jsdom;
var document = jsdom('<html><body></body></html>');
var VElement = require('../runtime/vdom/VElement');
var VText = require('../runtime/vdom/VText');
var VComment = require('../runtime/vdom/VComment');
var VDocumentFragment = require('../runtime/vdom/VDocumentFragment');
var vdom = require('../runtime/vdom/vdom');
var VElement = vdom.$__VElement;
var VText = vdom.$__VText;
var VComment = vdom.$__VComment;
var VDocumentFragment = vdom.$__VDocumentFragment;
var vdomHelpers = {
createElement: function(tagName, attrs, childCount, constId) {