all files / modules/headers/__tests__/ AcceptEncoding-test.js

100% Statements 44/44
100% Branches 0/0
100% Functions 18/18
100% Lines 44/44
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79                                                                     
/* jshint -W058 */
const assert = require("assert");
const expect = require("expect");
const AcceptEncoding = require("../AcceptEncoding");
 
describe("AcceptEncoding", function () {
    let header;
 
    describe("with no value", function () {
        beforeEach(function () {
            header = new AcceptEncoding();
        });
 
        it("has the correct toString representation", function () {
            expect(header.toString()).toEqual("Accept-Encoding: ");
        });
 
        it("has the correct quality factors", function () {
            expect(header.qualityFactorForEncoding("identity")).toEqual(1);
            expect(header.qualityFactorForEncoding("compress")).toEqual(0);
            expect(header.qualityFactorForEncoding("gzip")).toEqual(0);
        });
 
        it("accepts identity", function () {
            assert(header.accepts("identity"));
        });
 
        it("does not accept other encodings", function () {
            assert(!header.accepts("compress"));
            assert(!header.accepts("gzip"));
        });
    });
 
    describe("with a value of \"*;q=0\"", function () {
        beforeEach(function () {
            header = new AcceptEncoding("*;q=0");
        });
 
        it("has the correct quality factors", function () {
            expect(header.qualityFactorForEncoding("identity")).toEqual(1);
            expect(header.qualityFactorForEncoding("compress")).toEqual(0);
            expect(header.qualityFactorForEncoding("gzip")).toEqual(0);
        });
 
        it("accepts identity", function () {
            assert(header.accepts("identity"));
        });
 
        it("does not accept other encodings", function () {
            assert(!header.accepts("compress"));
            assert(!header.accepts("gzip"));
        });
    });
 
    describe("with a value of \"gzip, *;q=0.5\"", function () {
        beforeEach(function () {
            header = new AcceptEncoding("gzip, *;q=0.5");
        });
 
        it("has the correct quality factors", function () {
            expect(header.qualityFactorForEncoding("identity")).toEqual(1);
            expect(header.qualityFactorForEncoding("gzip")).toEqual(1);
            expect(header.qualityFactorForEncoding("compress")).toEqual(0.5);
        });
 
        it("accepts identity", function () {
            assert(header.accepts("identity"));
        });
 
        it("accepts gzip", function () {
            assert(header.accepts("gzip"));
        });
 
        it("accepts compress", function () {
            assert(header.accepts("compress"));
        });
    });
});