| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- var request = require("request");
- var qs = require("querystring");
- var uuid = require("uuid");
- var should = require("should");
- var sinon = require("sinon");
- var url = require("url");
- var ua = require("../lib/index.js");
- var utils = require("../lib/utils.js")
- var config = require("../lib/config.js")
- describe("ua", function () {
- it("should be usable as a function", function () {
- ua("foo").should.be.instanceof(ua.Visitor);
- });
- it("should be usable as a constructor", function () {
- new ua("foo").should.be.instanceof(ua.Visitor);
- });
- it("should accept arguments (tid, cid, options)", function () {
- var tid = "UA-XXXXX-XX"
- var cid = uuid.v4()
- var options = {};
- var visitor = ua(tid, cid, options)
- visitor.tid.should.equal(tid)
- visitor.cid.should.equal(cid)
- visitor.options.should.equal(options)
- });
- it("should accept arguments (tid, cid)", function () {
- var tid = "UA-XXXXX-XX"
- var cid = uuid.v4()
- var visitor = ua(tid, cid)
- visitor.tid.should.equal(tid)
- visitor.cid.should.equal(cid)
- visitor.options.should.eql({}, "An empty options hash should've been created")
- });
- it("should accept arguments (tid, options)", function () {
- var tid = Math.random().toString();
- var options = {}
- var visitor = ua(tid, options)
- visitor.tid.should.equal(tid)
- utils.isUuid(visitor.cid).should.equal(true, "A valid random UUID should have been generated")
- visitor.options.should.eql(options)
- });
- it("should accept arguments (options)", function () {
- var options = {}
- var visitor = ua(options);
- visitor.should.have.property('tid', undefined);
- utils.isUuid(visitor.cid).should.equal(true, "A valid random UUID should have been generated")
- visitor.options.should.eql(options)
- });
- it("should accept tid and cid via the options arguments", function () {
- var options = {
- tid: "UA-XXXXX-XX",
- cid: uuid.v4()
- };
- var visitor = ua(options);
- visitor.tid.should.equal(options.tid)
- visitor.cid.should.equal(options.cid)
- visitor.options.should.equal(options)
- });
- it("should generate new cid (UUID) if provided one is in wrong format", function () {
- var options = {
- tid: "UA-XXXXX-XX",
- cid: "custom-format-cid"
- };
- var next = sinon.spy(uuid, 'v4')
- var visitor = ua(options);
- next.calledOnce.should.equal(true, "next() should've been called once")
- var generatedCid = next.returnValues[0]
- uuid.v4.restore()
- visitor.cid.should.not.equal(options.cid)
- visitor.cid.should.equal(generatedCid)
- });
- it("should accept custom cid format when strictCidFormat is false", function () {
- var options = {
- tid: "UA-XXXXX-XX",
- cid: "custom-format-cid",
- strictCidFormat: false
- };
- var next = sinon.spy(uuid, 'v4')
- var visitor = ua(options);
- next.called.should.equal(false, "next() should't be called")
- uuid.v4.restore()
- visitor.cid.should.equal(options.cid)
- });
- describe("params", function () {
- var visitor;
- before(function () {
- var tid = "UA-XXXXX-XX";
- var cid = uuid.v4();
- visitor = ua(tid, cid);
- });
- it('should not translate params', function(){
- var params = {
- tid: 1,
- cid: 1,
- somefake: 1,
- v: 'a'
- };
- visitor._translateParams(params).should.eql(params);
- })
- it('should match all parameters and each should be in the list of accepted', function(){
- var res = visitor._translateParams(config.parametersMap);
- for (var i in res) {
- if (res.hasOwnProperty(i)) {
- res[i].should.equal(i);
- config.acceptedParameters.should.containEql(i);
- }
- }
- })
- });
- });
|