diff options
Diffstat (limited to 'toolkit/components/microformats/test/interface-tests/getParent-test.js')
-rw-r--r-- | toolkit/components/microformats/test/interface-tests/getParent-test.js | 220 |
1 files changed, 220 insertions, 0 deletions
diff --git a/toolkit/components/microformats/test/interface-tests/getParent-test.js b/toolkit/components/microformats/test/interface-tests/getParent-test.js new file mode 100644 index 000000000..56ccbb2ba --- /dev/null +++ b/toolkit/components/microformats/test/interface-tests/getParent-test.js @@ -0,0 +1,220 @@ +/* +Unit test for getParent +*/ + +assert = chai.assert; + + +describe('Microformat.getParent', function() { + + var HTML = '<div class="h-event"><span class="p-name">Pub</span><span class="dt-start">2015-07-01t17:30z</span></div>'; + var emptyExpected = { + "items": [], + "rels": {}, + "rel-urls": {} + }; + var expected = { + "items": [ + { + "type": [ + "h-event" + ], + "properties": { + "name": [ + "Pub" + ], + "start": [ + "2015-07-01 17:30Z" + ] + } + } + ], + "rels": {}, + "rel-urls": {} + }; + var options = {'dateFormat': 'html5'}; + + + + + it('getParent with parent', function(){ + + var doc, + node, + span, + result; + + doc = document.implementation.createHTMLDocument('New Document'); + node = document.createElement('div'); + node.innerHTML = HTML; + doc.body.appendChild(node); + span = doc.querySelector('.dt-start'); + + result = Microformats.getParent(span,options); + assert.deepEqual( result, expected ); + + }); + + + + it('getParent without parent', function(){ + + var doc, + node, + parser, + result; + + doc = document.implementation.createHTMLDocument('New Document'); + node = document.createElement('div'); + node.innerHTML = HTML; + doc.body.appendChild(node); + + result = Microformats.getParent(node,options); + assert.deepEqual( result, emptyExpected ); + + }); + + + it('getParent found with option.filters', function(){ + + var doc, + node, + span, + result; + + doc = document.implementation.createHTMLDocument('New Document'); + node = document.createElement('div'); + node.innerHTML = HTML; + doc.body.appendChild(node); + span = doc.querySelector('.dt-start'); + + result = Microformats.getParent( span, {'filters': ['h-event'], 'dateFormat': 'html5'} ); + assert.deepEqual( result, expected ); + + }); + + + it('getParent not found with option.filters', function(){ + + var doc, + node, + span, + result; + + doc = document.implementation.createHTMLDocument('New Document'); + node = document.createElement('div'); + node.innerHTML = HTML; + doc.body.appendChild(node); + span = doc.querySelector('.dt-start'); + + result = Microformats.getParent( span, {'filters': ['h-card'], 'dateFormat': 'html5'} ); + assert.deepEqual( result, emptyExpected ); + + }); + + + it('getParent use option.filters to up through h-*', function(){ + + var doc, + node, + span, + result; + + var altHTML = '<div class="h-entry"><h1 class="p-name">test</h1><div class="e-content">this</div><a class="p-author h-card" href="http://glennjones.net"><span class="p-name">Glenn Jones</span></a><span class="dt-publish">2015-07-01t17:30z</span></div>'; + var altExpected = { + "items": [ + { + "type": [ + "h-entry" + ], + "properties": { + "name": [ + "test" + ], + "content": [ + { + "value": "this", + "html": "this" + } + ], + "author": [ + { + "value": "Glenn Jones", + "type": [ + "h-card" + ], + "properties": { + "name": [ + "Glenn Jones" + ], + "url": [ + "http://glennjones.net" + ] + } + } + ], + "publish": [ + "2015-07-01 17:30Z" + ] + } + } + ], + "rels": {}, + "rel-urls": {} + }; + + + doc = document.implementation.createHTMLDocument('New Document'); + node = document.createElement('div'); + node.innerHTML = altHTML; + doc.body.appendChild(node); + span = doc.querySelector('.h-card .p-name'); + + result = Microformats.getParent( span, {'filters': ['h-entry'], 'dateFormat': 'html5'} ); + assert.deepEqual( result, altExpected ); + + }); + + + it('getParent stop at first h-* parent', function(){ + + var doc, + node, + span, + result; + + var altHTML = '<div class="h-entry"><h1 class="p-name">test</h1><div class="e-content">this</div><a class="p-author h-card" href="http://glennjones.net"><span class="p-name">Glenn Jones</span></a><span class="dt-publish">2015-07-01t17:30z</span></div>'; + var altExpected = { + "items": [ + { + "type": [ + "h-card" + ], + "properties": { + "name": [ + "Glenn Jones" + ], + "url": [ + "http://glennjones.net" + ] + } + } + ], + "rels": {}, + "rel-urls": {} + }; + + + doc = document.implementation.createHTMLDocument('New Document'); + node = document.createElement('div'); + node.innerHTML = altHTML; + doc.body.appendChild(node); + span = doc.querySelector('.h-card .p-name'); + + result = Microformats.getParent( span, options ); + assert.deepEqual( result, altExpected ); + + }); + + +}); |