summaryrefslogtreecommitdiff
path: root/bin/wiki/ImportarDesdeURL/node_modules/cheerio-advanced-selectors/test.js
diff options
context:
space:
mode:
Diffstat (limited to 'bin/wiki/ImportarDesdeURL/node_modules/cheerio-advanced-selectors/test.js')
-rw-r--r--bin/wiki/ImportarDesdeURL/node_modules/cheerio-advanced-selectors/test.js162
1 files changed, 162 insertions, 0 deletions
diff --git a/bin/wiki/ImportarDesdeURL/node_modules/cheerio-advanced-selectors/test.js b/bin/wiki/ImportarDesdeURL/node_modules/cheerio-advanced-selectors/test.js
new file mode 100644
index 00000000..3d63bb95
--- /dev/null
+++ b/bin/wiki/ImportarDesdeURL/node_modules/cheerio-advanced-selectors/test.js
@@ -0,0 +1,162 @@
+'use strict'
+
+var test = require('tape')
+var cheerio = require('cheerio')
+var cheerioAdv = require('./')
+
+test('#compile()', function (t) {
+ t.test('Non-advanced selector', function (t) {
+ var compiled = cheerioAdv.compile('div')
+ var html, $
+
+ html = '<div>foo1</div><div>bar1</div>'
+ $ = cheerio.load(html)
+ t.equal(compiled($).text(), 'foo1bar1')
+
+ html = '<div>foo2</div><div>bar2</div>'
+ $ = cheerio.load(html)
+ t.equal(compiled($).text(), 'foo2bar2')
+
+ t.end()
+ })
+
+ t.test('Simple selector ending in :first()', function (t) {
+ var compiled = cheerioAdv.compile('div:first')
+ var html, $
+
+ html = '<div>foo1</div><div>bar1</div>'
+ $ = cheerio.load(html)
+ t.equal(compiled($).text(), 'foo1')
+
+ html = '<div>foo2</div><div>bar2</div>'
+ $ = cheerio.load(html)
+ t.equal(compiled($).text(), 'foo2')
+
+ t.end()
+ })
+
+ t.test('Custom context', function (t) {
+ var compiled = cheerioAdv.compile('div:eq(1)')
+ var html
+
+ html = '<div>foo1</div><div>bar1</div>'
+ t.equal(compiled(cheerio, html).text(), 'bar1')
+
+ html = '<div>foo2</div><div>bar2</div>'
+ t.equal(compiled(cheerio, html).text(), 'bar2')
+
+ t.end()
+ })
+
+ t.test('Custom root', function (t) {
+ var compiled = cheerioAdv.compile('span:eq(1)')
+ var html
+
+ html = '<div><span>foo1</span></div><div><span>bar1</span></div>'
+ t.equal(compiled(cheerio, 'div', html).text(), 'bar1')
+
+ html = '<div><span>foo2</span></div><div><span>bar2</span></div>'
+ t.equal(compiled(cheerio, 'div', html).text(), 'bar2')
+
+ t.end()
+ })
+})
+
+var testCases = [
+ ['Non-advanced selector', '<div>foo</div><div>bar</div>', 'div', 'foobar'],
+ ['Simple selector ending in :first()', '<div>foo</div><div>bar</div>', 'div:first', 'foo'],
+ ['Simple selector ending in :last()', '<div>foo</div><div>bar</div>', 'div:last', 'bar'],
+ ['Simple selector ending in :first-child()', '<div><span>foo</span><span>bar</span></div>', 'div span:first-child', 'foo'],
+ ['Simple selector ending in :last-child()', '<div><span>foo</span><span>bar</span></div>', 'div span:last-child', 'bar'],
+ ['Simple selector ending in :eq()', '<div>foo</div><div>bar</div>', 'div:eq(1)', 'bar'],
+ ['Simple selector with :eq() in the middle', '<div><span>foo</span></div><div><span>bar</span></div>', 'div:eq(0) span', 'foo'],
+ ['Complex selector', '<div><span><h1>foo</h1></span><span><h1>bar</h1></span></div>', 'div:first span:eq(1) h1', 'bar']
+]
+
+test('#find()', function (t) {
+ testCases.forEach(function (testCase) {
+ t.test(testCase[0], function (t) {
+ var $ = cheerio.load(testCase[1])
+ t.equal(cheerioAdv.find($, testCase[2]).text(), testCase[3])
+ t.end()
+ })
+ })
+
+ t.test('Custom context', function (t) {
+ var html = '<div>foo</div><div>bar</div>'
+ t.equal(cheerioAdv.find(cheerio, 'div:eq(1)', html).text(), 'bar')
+ t.end()
+ })
+
+ t.test('Custom root', function (t) {
+ var html = '<div><span>foo</span></div><div><span>bar</span></div>'
+ t.equal(cheerioAdv.find(cheerio, 'span:eq(1)', 'div', html).text(), 'bar')
+ t.end()
+ })
+})
+
+test('#wrap() -> call static cheerio function', function (t) {
+ var html = '<div>foo</div><div>bar</div>'
+ var $ = cheerio.load(html)
+ var $adv = cheerioAdv.wrap(cheerio).load(html)
+
+ t.equal(typeof $.html(), 'string')
+ t.ok($.html().length > 0)
+ t.equal($adv.html(), $.html())
+ t.end()
+})
+
+test('#wrap() -> call prototype cheerio function', function (t) {
+ var html = '<div>foo</div><div>bar</div>'
+ var $ = cheerio.load(html)
+ var $adv = cheerioAdv.wrap(cheerio).load(html)
+
+ t.equal(typeof $('div').splice, 'function')
+ t.equal(typeof $adv('div').splice, 'function')
+ t.end()
+})
+
+test('#wrap() -> #load()', function (t) {
+ testCases.forEach(function (testCase) {
+ t.test(testCase[0], function (t) {
+ var wrapped = cheerioAdv.wrap(cheerio)
+ var $ = wrapped.load(testCase[1])
+ t.equal($(testCase[2]).text(), testCase[3])
+ t.end()
+ })
+ })
+
+ t.test('this as selector', function (t) {
+ t.plan(2)
+
+ var wrapped = cheerioAdv.wrap(cheerio)
+ var $ = wrapped.load('<div>foo</div><div>bar</div>')
+ var results = ['foo', 'bar']
+
+ $('div').each(function () {
+ t.equal($(this).text(), results.shift())
+ })
+ })
+})
+
+test('#wrap() -> #()', function (t) {
+ testCases.forEach(function (testCase) {
+ t.test(testCase[0], function (t) {
+ var wrapped = cheerioAdv.wrap(cheerio)
+ t.equal(wrapped(testCase[2], testCase[1]).text(), testCase[3])
+ t.end()
+ })
+ })
+
+ t.test('this as selector', function (t) {
+ t.plan(2)
+
+ var wrapped = cheerioAdv.wrap(cheerio)
+ var html = '<div>foo</div><div>bar</div>'
+ var results = ['foo', 'bar']
+
+ wrapped('div', html).each(function () {
+ t.equal(wrapped(this).text(), results.shift())
+ })
+ })
+})