text: 'use strict';
  describe('basic mark in large documents', function() {
    var $ctx, err, start, end, diff;
  
    var browser = {
      isIe: function() {
        return navigator.appVersion.indexOf('MSIE') !== -1;
      },
      navigator: navigator.appVersion,
      getVersion: function() {
        var version = 999; // we assume a sane browser
        if (navigator.appVersion.indexOf('MSIE') !== -1) {
          version = parseFloat(navigator.appVersion.split('MSIE')[1]);
        }
        return version;
      }
    };
    var time = browser.isIe() && browser.getVersion() <= 9 ? 30000 : 10000;
  
    beforeEach(function(done) {
      loadFixtures('basic/large-document.html');
  
      $ctx = $('.basic-large-document');
      err = false;
      start = new Date();
      try {
        new Mark($ctx[0]).mark('lorem', {
          'diacritics': false,
          'separateWordSearch': false,
          'done': function() {
            end = new Date();
            diff = end.getTime() - start.getTime();
            done();
          }
        });
      } catch (e) {
        err = true;
      }
    }, 60000);
  
    it('should not throw a recursion error', function() {
      expect(err).toBe(false);
    });
    it('should wrap matches', function() {
      expect($ctx.find('mark')).toHaveLength(9569);
    });
    it('should be faster than ' + time + ' ms', function() {
      expect(diff).toBeLessThan(time);
    });
  });
  