text: describe('ContextMenu', function () {
    describe('Cursor', function () {
      it('should initialize internal properties on construct (object literal)', function() {
        var coords = {
          top: 10,
          left: 50,
          width: 100,
          height: 200
        };
        var cursor = new Handsontable.plugins.utils.Cursor(coords);
  
        expect(cursor.top).toBe(coords.top);
        expect(cursor.topRelative).toBeLessThan(coords.top + 1);
        expect(cursor.left).toBe(coords.left);
        expect(cursor.leftRelative).toBeLessThan(coords.left + 1);
        expect(cursor.scrollLeft).toBeGreaterThan(-1);
        expect(cursor.scrollTop).toBeGreaterThan(-1);
        expect(cursor.cellHeight).toBe(coords.height);
        expect(cursor.cellWidth).toBe(coords.width);
      });
  
      it('should returns boolean value related to if element fits above the cursor', function() {
        var coords = {
          top: 10,
          left: 50,
          width: 100,
          height: 200
        };
        var cursor = new Handsontable.plugins.utils.Cursor(coords);
        var fakeElement = {
          offsetHeight: 9
        };
  
        expect(cursor.fitsAbove(fakeElement)).toBe(true);
  
        fakeElement.offsetHeight = 10;
  
        expect(cursor.fitsAbove(fakeElement)).toBe(true);
  
        fakeElement.offsetHeight = 11;
  
        expect(cursor.fitsAbove(fakeElement)).toBe(false);
      });
  
      it('should returns boolean value related to if element fits below the cursor', function() {
        var coords = {
          top: 10,
          left: 50,
          width: 100,
          height: 200
        };
        var cursor = new Handsontable.plugins.utils.Cursor(coords);
        var fakeElement = {
          offsetHeight: 9
        };
        var viewportHeight = 100;
  
        expect(cursor.fitsBelow(fakeElement, viewportHeight)).toBe(true);
  
        fakeElement.offsetHeight = 90;
  
        expect(cursor.fitsBelow(fakeElement, viewportHeight)).toBe(true);
  
        fakeElement.offsetHeight = 91;
  
        expect(cursor.fitsBelow(fakeElement, viewportHeight)).toBe(false);
      });
  
      it('should returns boolean value related to if element fits on the right of the cursor', function() {
        var coords = {
          top: 10,
          left: 20,
          width: 30,
          height: 200
        };
        var cursor = new Handsontable.plugins.utils.Cursor(coords);
        var fakeElement = {
          offsetWidth: 9
        };
        var viewportWidth = 100;
  
        expect(cursor.fitsOnRight(fakeElement, viewportWidth)).toBe(true);
  
        fakeElement.offsetWidth = 50;
  
        expect(cursor.fitsOnRight(fakeElement, viewportWidth)).toBe(true);
  
        fakeElement.offsetWidth = 51;
  
        expect(cursor.fitsOnRight(fakeElement, viewportWidth)).toBe(false);
      });
  
      it('should returns boolean value related to if element fits on the left of the cursor', function() {
        var coords = {
          top: 10,
          left: 50,
          width: 100,
          height: 200
        };
        var cursor = new Handsontable.plugins.utils.Cursor(coords);
        var fakeElement = {
          offsetWidth: 9
        };
  
        expect(cursor.fitsOnLeft(fakeElement)).toBe(true);
  
        fakeElement.offsetWidth = 50;
  
        expect(cursor.fitsOnLeft(fakeElement)).toBe(true);
  
        fakeElement.offsetWidth = 51;
  
        expect(cursor.fitsOnLeft(fakeElement)).toBe(false);
      });
    });
  });
  