UNPKG

2.8 kBtext/coffeescriptView Raw
1{ tmpdir } = require 'os'
2{ join } = require 'path'
3endl = require '../src/index'
4
5waitTime = 20000
6urls = [
7 'http://dogancelik.com'
8 'http://lame.buanzo.org/'
9 'https://github.com/request/request/archive/master.zip'
10 'http://codecguide.com/download_k-lite_codec_pack_mega.htm'
11]
12
13describe 'endl test #1', ->
14 @timeout waitTime
15
16 it 'should load page', (done) ->
17 extractorInstance = endl.page(urls[0])
18 extractorInstance._scraper.onStatusCode (code) ->
19 code.should.be.equal 200
20 done()
21
22 it 'should find element', (done) ->
23 extractorInstance = endl.page(urls[0])
24 extractorInstance.find '#gif', (container) ->
25 container._getAttr('alt').should.be.equal ':3'
26 done()
27
28 it 'should download src', (done) ->
29 extractorInstance = endl.page(urls[0])
30 containerPromise = extractorInstance.find('#gif')
31 containerPromise.then((container) ->
32 attrInstance = container.attr('src')
33 attrInstance.download {filenameMode: {predefined: 'gif.gif'}, directory: tmpdir()}, -> done()
34 )
35
36describe 'endl test #2', ->
37 @timeout waitTime
38
39 qsa = 'a[href^="http://lame.buanzo.org/Lame_"]'
40 downloadOpts = {pageUrlAsReferrer: true, directory: tmpdir(), filenameMode: { urlBasename: true }}
41
42 it 'should download', (done) ->
43 endl.page(urls[1])
44 .find(qsa)
45 .then (container) ->
46 container.download downloadOpts, -> done()
47
48 it 'should download all files with .all', (done) ->
49 i = 0
50 endl.page(urls[1])
51 .find(qsa)
52 .then (container) ->
53 container.all().forEach (attr) ->
54 attr.download downloadOpts, ->
55 i++
56 done() if i == 4
57
58describe 'endl test #3', ->
59 @timeout waitTime
60
61 it 'should download and unzip', (done) ->
62 endl.file(urls[2])
63 .download({pageUrlAsReferrer: true, filenameMode: { contentDisposition: true }, directory: tmpdir()})
64 .extract {to: join(tmpdir(), '/unzip'), cd: 'request-master', fileGlob: '*.js', maintainEntryPath: false}, (extracted) ->
65 if extracted.length == 0 then throw new Error('Zip is empty?')
66 done()
67
68describe 'endl test #4', ->
69
70 it 'should use previousUrl', (done) ->
71 endl.page(urls[3])
72 .find('a[href^="http://www.majorgeeks.com/"]')
73 .then (container) ->
74 container.page({ pageUrlAsReferrer: true })
75 .find('a[href*="getmirror/k_lite_mega_codec_pack"]',
76 (container) ->
77 referer = container._scraper.scraper.response.request.headers.referer
78 if referer == urls[3]
79 done()
80 else
81 throw new Error "Referrer is not initial URL: #{referer}"
82 )
83
84describe 'endl test #5', ->
85 @timeout waitTime
86
87 it 'should parse json', (done) ->
88 endl.load(join(__dirname, 'test.json'), null, -> done())