###
Module dependencies.
###
should = require 'should'
parseCookies = require '../libs/cookie-parser'

describe 'Lib', ->

  describe '#parseCookies()', ->

  it 'should exist as a public function', (done) ->
    parseCookies.should.be.a.Function
    done()

  it 'should return an object with all cookies from request', (done) ->

    cookies = "cookie1=19ciFA90fAUDJoi==; cookie2=dJAS)(uAIJ23878(AhHDAHdiu19"
    req =
      headers:
        cookie: cookies

    cookieList = parseCookies req
    cookieList.should.have.keys ['cookie1', 'cookie2']
    cookieList.cookie1.should.be.equal '19ciFA90fAUDJoi=='
    cookieList.cookie2.should.be.equal 'dJAS)(uAIJ23878(AhHDAHdiu19'
    done()

  it 'should ignore cookies that have bad encoding', (done) ->
    cookies = "cookie1=19ciFA90fAUDJoi==; cookie2=dJAS)(uAIJ23878(AhHDAHdiu19; cookie3=dasye%'ff'"
    req =
      headers:
        cookie: cookies

    cookieList = parseCookies req
    cookieList.should.have.keys ['cookie1', 'cookie2']
    cookieList.cookie1.should.be.equal '19ciFA90fAUDJoi=='
    cookieList.cookie2.should.be.equal 'dJAS)(uAIJ23878(AhHDAHdiu19'
    done()

  it 'should return an empty object if there are no cookies', (done) ->

    cookieList = parseCookies headers: {}
    cookieList.should.be.an.Object
    cookieList.should.be.empty
    done()

