Esempio n. 1
0
 test('degToRad', function() {
   for (var i = 0; i < tab.length; i++) {
     var deg = tab[i][0], rad = tab[i][1];
     assert(degToRad(deg) === rad);
     assert(degToRad(-deg) === -rad);
   }
 });
Esempio n. 2
0
 test('radToDeg', function() {
   for (var i = 0; i < tab.length; i++) {
     var deg = tab[i][0], rad = tab[i][1];
     assert(radToDeg(rad) === deg);
     assert(radToDeg(-rad) === -deg);
   }
 });
Esempio n. 3
0
 it('should support methods', function() {
   var arr = [];
   var s = stub(arr, 'push');
   s(1, 2, 3);
   assert(equals(arr, []));
   assert(arr.push.calledWith(1, 2, 3));
 });
Esempio n. 4
0
 it('should be true only when the function was called once', function() {
   assert(!s.calledOnce);
   s(1);
   assert(s.calledOnce);
   s(1);
   assert(!s.calledOnce);
 });
Esempio n. 5
0
 test('empty graph', function() {
   var finder = new GraphFinder(equals, hash);
   var neighFun = neighborsFun.bind(null, empty);
   finder.start(0, neighFun, yesFun);
   assert(finder.next() === 0);
   assert(finder.next() === null);
 });
Esempio n. 6
0
 test('zero', function() {
   var fn = chain();
   var spy = sinon.spy();
   fn(1, 2, 3, spy);
   assert(spy.calledOnce);
   assert(spy.calledWith(null, 1, 2, 3));
 });
Esempio n. 7
0
	it('Should log and gracefully handle missing templates', function() {
		dust.onLoad('nonexistent', options, callback);
		assert(mockConfig.log.warn.calledOnce);
		assert.match(mockConfig.log.warn.lastCall.args[0], /nonexistent$/i);
		assert(callback.calledOnce);
		assert.strictEqual(callback.lastCall.args[0], null);
		assert.strictEqual(callback.lastCall.args[1], '');
	});
Esempio n. 8
0
 it('should be true when called twice', function() {
   assert(!s.calledTwice);
   s(1);
   assert(!s.calledTwice);
   s(1);
   assert(s.calledTwice);
   s(1);
   assert(!s.calledTwice);
 });
Esempio n. 9
0
 it('should be true when called three times', function() {
   assert(!s.calledThrice);
   s(1);
   assert(!s.calledThrice);
   s(1);
   assert(!s.calledThrice);
   s(1);
   assert(s.calledThrice);
 });
Esempio n. 10
0
 it('should restore methods with `.restore()`', function() {
   var arr = [];
   var orig = arr.push;
   var s = stub(arr, 'push');
   s(1);
   assert(arr.push.calledWith(1));
   s.restore();
   assert(orig === arr.push);
 });
Esempio n. 11
0
 it('should assert return values correctly', function() {
   var s = stub(window.encodeURIComponent);
   s('testing 4 u');
   assert(s.returned('testing%204%20u'));
   assert(s.returns[0] === 'testing%204%20u');
   s('testing 4 u 2');
   assert(s.returned('testing%204%20u%202'));
   assert(s.returns[1] === 'testing%204%20u%202');
 });
        it('should add a list of unbundled integrations when `addBundledMetadata` and `unbundledIntegrations` are set', function() {
          segment.options.addBundledMetadata = true;
          segment.options.unbundledIntegrations = [ 'other2' ];
          segment.normalize(object);

          assert(object);
          assert(object._metadata);
          assert.deepEqual(object._metadata.unbundled, [ 'other2' ]);
        });
  analytics.compare = function(A, B) {
    var a = new A();
    var b = new B();
    // name
    assert(
      a.name === b.name,
      fmt('Expected name to be "%s", but it was "%s".', b.name, a.name)
    );

    // options
    var aDefaults = a.defaults;
    var bDefaults = b.defaults;
    // TODO(ndhoule): Confirm this can be an `each` call and convert it
    // eslint-disable-next-line guard-for-in
    for (var key in bDefaults) {
      assert(
        aDefaults.hasOwnProperty(key),
        fmt('The integration does not have an option named "%s".', key)
      );
      assert.deepEqual(
        aDefaults[key], bDefaults[key],
        fmt(
          'Expected option "%s" to default to "%s", but it defaults to "%s".',
          key, bDefaults[key], aDefaults[key]
        )
      );
    }

    // globals
    var aGlobals = a.globals;
    var bGlobals = b.globals;
    each(function(key) {
      assert(
        contains(key, aGlobals),
        fmt('Expected global "%s" to be registered.', key)
      );
    }, bGlobals);

    // assumesPageview
    assert(
      a._assumesPageview === b._assumesPageview,
      'Expected the integration to assume a pageview.'
    );

    // readyOnInitialize
    assert(
      a._readyOnInitialize === b._readyOnInitialize,
      'Expected the integration to be ready on initialize.'
    );

    // readyOnLoad
    assert(
      a._readyOnLoad === b._readyOnLoad,
      'Expected integration to be ready on load.'
    );
  };
Esempio n. 14
0
 it('should support custom functions', function() {
   var arr = [];
   var tmp;
   var fn = function() { tmp = [].slice.call(arguments); };
   var s = stub(arr, 'push', fn);
   s(1, 2, 3);
   assert(equals(arr, []));
   assert(equals(tmp, [1, 2, 3]));
   assert(arr.push.calledWith(1, 2, 3));
 });
        it('should add a list of bundled integrations when `addBundledMetadata` is set', function() {
          segment.options.addBundledMetadata = true;
          segment.normalize(object);

          assert(object);
          assert(object._metadata);
          assert.deepEqual(object._metadata.bundled, [
            'Segment.io',
            'other'
          ]);
        });
Esempio n. 16
0
 test('state reset after search', function() {
   // Depends on internals
   var finder = new GraphFinder(equals, hash);
   var neighFun = neighborsFun.bind(empty);
   finder.start(0, neighFun, yesFun);
   finder.next();
   finder.next();
   assert(finder._neighborsFun === null);
   assert(finder._exploreFun === null);
   assert(finder._queue.length === 0);
   assert(finder._visited.size() === 0);
 });
  analytics.didNotReturn = function(spy, value) {
    assert(
      contains(spy, this.spies),
      'You must call `.spy(object, method)` prior to calling `.didNotReturn()`.'
    );
    assert(
      !spy.returned(value),
      fmt('Expected "%s" not to have returned "%o".', spy.name, value)
    );

    return this;
  };
Esempio n. 18
0
 test('explore even', function() {
   var finder = new GraphFinder(equals, hash);
   var neighFun = neighborsFun.bind(null, konigsberg);
   finder.start(0, neighFun, evenFun);
   var node, nodeList = [];
   while ((node = finder.next()) !== null) {
     nodeList.push(node);
   }
   assert(nodeList.indexOf(0) >= 0);
   assert(nodeList.indexOf(2) >= 0);
   assert(nodeList.length === 2);
 });
    it('should move all toplevel keys to the message', function() {
      var date = opts.timestamp = new Date();
      opts.anonymousId = 'anonymous-id';
      opts.integrations = { foo: 1 };
      opts.context = { context: 1 };

      var out = normalize(msg, list);
      assert(out.timestamp.getTime() === date.getTime());
      assert(out.anonymousId === 'anonymous-id');
      assert.deepEqual(out.integrations, { foo: 1 });
      assert.deepEqual(out.context, { context: 1 });
    });
 ajs.ready(function() {
   var segment = ajs._integrations['Segment.io'];
   segment.ontrack = sinon.spy();
   ajs.track('event', {}, { All: false });
   assert(segment.ontrack.calledOnce);
   done();
 });
    it('should retry on HTTP errors', function() {
      var clock = lolex.createClock(0);
      var spy = sinon.spy();

      Schedule.setClock(clock);
      xhr.onCreate = spy;

      segment.enqueue('/i', { userId: '1' });
      assert(spy.calledOnce);

      var req = spy.getCall(0).args[0];
      req.respond(500, null, 'segment machine broke');

      clock.tick(segment._lsqueue.getDelay(1));
      assert(spy.calledTwice);
    });
Esempio n. 22
0
    it('should convert the page to track with event', function() {
      var page = new Page({
        anonymousId: 'anon-id',
        userId: 'user-id',
        timestamp: new Date(1388534400000),
        context: { ip: '0.0.0.0' },
        properties: { prop: true },
        category: 'category',
        name: 'name'
      });

      assert.deepEqual(page.track('event').anonymousId(), 'anon-id');
      assert.deepEqual(page.track('event').userId(), 'user-id');
      assert(page.track('event') instanceof Track);
      assert.deepEqual(page.track().event(), 'Loaded a Page');
      assert.deepEqual(page.track('name').event(), 'Viewed name Page');
      assert.deepEqual(page.track('category').event(), 'Viewed category Page');
      assert.deepEqual(page.track('category').event(), 'Viewed category Page');
      assert.deepEqual(page.track('category').timestamp(), new Date(1388534400000));
      assert.deepEqual(page.track('category').context(), page.context());
      assert.deepEqual(
        page.track('event').properties(),
        { category: 'category', name: 'name', prop: true }
      );
    });
Esempio n. 23
0
 test('initial state', function() {
   var stage = new MockStage();
   var loop = new RenderLoop(stage);
   stage.emit('renderInvalid');
   fakeTickFrame();
   assert(stage.render.notCalled);
 });
Esempio n. 24
0
 test('renderOnNextFrame', function() {
   var stage = new MockStage();
   var loop = new RenderLoop(stage);
   loop.start();
   loop.renderOnNextFrame();
   fakeTickFrame();
   assert(stage.render.called);
 });
Esempio n. 25
0
 test('start', function() {
   var stage = new MockStage();
   var loop = new RenderLoop(stage);
   loop.start();
   stage.emit('renderInvalid');
   fakeTickFrame();
   assert(stage.render.called);
 });
  analytics.loaded = function(integration, str) {
    if (typeof integration === 'string') {
      str = integration;
      integration = this.integration();
    }

    var tags = [];

    assert(
      contains(integration.load, this.spies),
      'You must call `.spy(integration, \'load\')` prior to calling `.loaded()`.'
    );

    // collect all Image or HTMLElement objects
    // in an array of stringified elements, for human-readable assertions.
    each(function(el) {
      var tag = {};
      if (el instanceof HTMLImageElement) {
        tag.type = 'img';
        tag.attrs = { src: el.src };
      } else if (type(el) === 'element') {
        tag.type = el.tagName.toLowerCase();
        tag.attrs = stripAttrs(tag.type, attributes(el));
      }
      if (tag.type) tags.push(stringify(tag.type, tag.attrs));
    }, integration.load.returns);

    // normalize formatting
    var tag = objectify(str);

    // strip unwanted attrs we do not control before we assert
    tag.attrs = stripAttrs(tag.type, tag.attrs);

    var expected = stringify(tag.type, tag.attrs);

    if (!tags.length) {
      assert(false, fmt('No tags were returned.\nExpected %s.', expected));
    } else {
      // show the closest match
      assert(
        contains(expected, tags),
        fmt('\nExpected %s.\nFound %s', expected, tags.join('\n'))
      );
    }
  };
Esempio n. 27
0
 it('should record returned values', function() {
   s(1, 2, 3);
   s(4, 5, 6);
   s(7, 8, 9);
   assert(equals(s.returns, [
     undefined,
     undefined,
     undefined
   ]));
 });
Esempio n. 28
0
 it('should record arguments', function() {
   s(1, 2, 3);
   s(4, 5, 6);
   s(7, 8, 9);
   assert(equals(s.args, [
     [1, 2, 3],
     [4, 5, 6],
     [7, 8, 9]
   ]));
 });
Esempio n. 29
0
	it('Should load a given template from its keyname in the dust cache', function() {
		var templateStub = sinon.stub();
		dust.cache = createMockCache({
			foo: templateStub
		});
		dust.onLoad('foo', options, callback);
		assert(callback.calledOnce);
		assert.strictEqual(callback.lastCall.args[0], null);
		assert.strictEqual(callback.lastCall.args[1], templateStub);
	});
          it('should enqueue to `api.segment.io/v1` by default', sinon.test(function() {
            var spy = sinon.spy();
            xhr.onCreate = spy;

            protocol('https:');
            segment.enqueue('/i', { userId: 'id' });

            assert(spy.calledOnce);
            var req = spy.getCall(0).args[0];
            assert.strictEqual(req.url, 'https://api.segment.io/v1/i');
          }));