/** * @ngdoc fbDroppableSpec * @name fasit.directiveTest.#fbDroppableSpec * @fbDroppableSpec * * @description * testning av fbDroppable directive. * */ describe("fbDroppable", function () { var element; var $scope; var link; var innerScope: fb.IFbDroppableScope; var dropValues; beforeEach(angular.mock.module('fasit', 'fbMocks')); afterEach(function () { $scope.$destroy(); }); beforeEach(inject(function ($compile, $rootScope) { $scope = $rootScope; $scope.dropValues = ''; $scope.dropCallback = function (itemId, binId, left) { $scope.dropValues = '' + itemId + '-' + binId + '-' + left; }; var DOM = '
hej
'; element = angular.element(DOM); link = $compile(element)($scope); $scope.$digest(); innerScope = $scope.$$childHead; })); it('borde skapa elementet ', function () { expect(element).not.toBe(null); }); it('borde inte visa röda strecket vid dragleave eventet', function () { element.addClass("right-drop"); var testEvent = { clientX: 100 } innerScope.dragleaveHandler(testEvent); expect(element.hasClass("right-drop")).toBe(false); expect(element.hasClass("left-drop")).toBe(false); element.addClass("right-drop"); var testEvent2 = { clientY: 100 } innerScope.dragleaveHandler(testEvent2); expect(element.hasClass("right-drop")).toBe(false); expect(element.hasClass("left-drop")).toBe(false); }); it('borde inte ta bort röda strecket vid dragleave-event när muspekaren fortfarande över elementet', function () { element[0].getBoundingClientRect = function () { return { left: 100, right: 200, top: 100, bottom: 200 } } element.addClass("right-drop"); var testEvent = { clientX: 150, clientY: 150 } innerScope.dragleaveHandler(testEvent); expect(element.hasClass("right-drop")).toBe(true); }); it('borde hantera drop eventet korrekt...', function () { element.addClass("right-drop"); var testEvent = { clientX: 100, dataTransfer: { getData: function (text) { return 'item-1'}} } innerScope.dropHandler(testEvent); expect(element.hasClass("right-drop")).toBe(false); expect(element.hasClass("left-drop")).toBe(false); //expect($scope.dropValues).toBe('item-1-bin-1-false'); element.addClass("left-drop"); var testEvent2 = { stopPropagation: function () { }, clientX: -100, preventDefault: function () { }, dataTransfer: { getData: function (text) { return 'item-1' } } } $scope.$digest(); innerScope.dropHandler(testEvent2); expect(element.hasClass("right-drop")).toBe(false); expect(element.hasClass("left-drop")).toBe(false); expect($scope.dropValues).toBe('item-1-bin-1-true'); element.addClass("left-drop"); $scope.dropValues = ''; $scope.dropCallback = undefined; innerScope.dropHandler(testEvent2); expect(element.hasClass("right-drop")).toBe(false); expect(element.hasClass("left-drop")).toBe(false); expect($scope.dropValues).toBe(''); }); });