window).clipboardData = null;
contentElement.triggerHandler({
type: 'paste'
});
$scope.$digest();
}));
//it('Borde klistra in text i DOM om elementet är ett DOM-element', inject(function () {
// var textToPaste = 'testing this text';
// var tmp = document.queryCommandSupported;
// document.queryCommandSupported = function (type) { return false; };
// var domToPasteIn = 'abcdefghijklmnopqrstuvwxyz
';
// var elementToPasteIn = angular.element(domToPasteIn)[0];
// fbWindow.getSelection = function () {
// return {
// focusNode: elementToPasteIn,
// focusOffset: 10
// };
// };
// contentElement.triggerHandler({
// type: 'paste',
// clipboardData: { getData: function (properties) { return textToPaste; } }
// });
// $scope.$digest();
// expect(elementToPasteIn.innerHTML).toContain(textToPaste);
// expect(elementToPasteIn.innerHTML.substring(0, 10)).toBe(domToPasteIn.substring(5, 15));
// expect(elementToPasteIn.innerHTML.substring(10, 27)).toBe(textToPaste);
// expect(elementToPasteIn.innerHTML.substring(28, 43)).toBe(domToPasteIn.substring(16, 31));
// document.queryCommandSupported = tmp;
//}));
//it('Borde klistra in text i elementet om elementet är ett text-element', inject(function () {
// var textToPaste = 'testing this text';
// var tmp = document.queryCommandSupported;
// document.queryCommandSupported = function (type) { return false; };
// var text = 'abcdefghijklmnopqrstuvwxyz';
// var elementToPasteIn = {
// text: text,
// insertData: function (offset, data) {
// this.text = this.text.substring(0, offset) + data + this.text.substring(offset, this.text.length);
// }
// };
// fbWindow.getSelection = function () {
// return {
// focusNode: elementToPasteIn,
// focusOffset: 10
// };
// };
// contentElement.triggerHandler({
// type: 'paste',
// clipboardData: { getData: function (properties) { return textToPaste; } }
// });
// $scope.$digest();
// expect(elementToPasteIn.text).toContain(textToPaste);
// expect(elementToPasteIn.text.substring(0, 10)).toBe(text.substring(0, 10));
// expect(elementToPasteIn.text.substring(10, 27)).toBe(textToPaste);
// expect(elementToPasteIn.text.substring(28, 43)).toBe(text.substring(11, 26));
// document.queryCommandSupported = tmp;
//}));
});
describe('radindelning', function () {
it('Borde göra radjusteringar vid focusout-event om texten är för lång', inject(function () {
//expect(innerScope.editing).toBe(false);
//angular.element(link[2].lastChild).triggerHandler('focusin');
//expect(innerScope.editing).toBe(true);
//innerScope.dokumentVaerde.Vaerde = 'Tacosgatan är en gata som inte är som andra gator då den gatan är en gata med tacos';
//innerScope.$digest();
//angular.element(link[2].lastChild).triggerHandler('focusout');
//expect(innerScope.editing).toBe(false);
//expect(innerScope.dokumentVaerde.Vaerde).toContain('
');
}));
it('Borde inte ta bort radjusteringar vid focusin-event om vaerde är null', inject(function () {
//innerScope.dokumentVaerde.Vaerde = '';
//angular.element(link[2].lastChild).triggerHandler('focusin');
//innerScope.$digest();
//expect(innerScope.dokumentVaerde.Vaerde).toBe(innerScope.originalVaerde);
}));
it('Borde inte göra radjusteringar vid focusout-event om inte maxWidth är satt', inject(function () {
//$scope.maxWidth = 0;
//$scope.$digest();
//expect(innerScope.editing).toBe(false);
//angular.element(link[2].lastChild).triggerHandler('focusin');
//expect(innerScope.editing).toBe(true);
//innerScope.dokumentVaerde.Vaerde = 'Tacosgatan är en gata som inte är som andra gator då den gatan är en gata med tacos';
//innerScope.$digest();
//angular.element(link[2].lastChild).triggerHandler('focusout');
//expect(innerScope.editing).toBe(false);
//expect(innerScope.dokumentVaerde.Vaerde).not.toContain('
');
}));
});
});
describe('sidindelning', function () {
var innerScope: fb.IFbDokumentFieldScope;
var divMedText: any;
var pageSplitDiv: any;
var contentElement: any;
beforeEach(inject(function ($compile, $rootScope, $httpBackend) {
$scope = $rootScope;
$scope.dokumentVaerden = {};
$scope.dokumentVaerden[dokumentVaerde.VaerdeNamn] = dokumentVaerde
$scope.pageSplit = [];
$scope.vaerdeHoejdData = {};
$scope.maxWidth = 20;
$scope.originalText = 'Granstigen 22';
var DOM = ''
element = angular.element(DOM);
link = $compile(element)($scope);
$scope.$digest();
innerScope = $scope.$$childTail;
// Hämtar div-taggen som innehåller värdet som bearbetas av directivet
contentElement = element.find('.fb-dokument-field-editable-field');
fbWindow = window;
}));
afterEach(function () {
$scope.$destroy();
innerScope.$destroy();
});
it('borde inte göra någonting ifall pageSplit inte är satt', inject(function ($timeout: ng.ITimeoutService) {
}));
it('borde dela in vaerdet i sidor om pageSplit är satt och vaerdet överlappar sidbrytningen', inject(function ($timeout: ng.ITimeoutService) {
}));
it('borde dela in vaerdet i sidor beroende på font-storlek', inject(function ($timeout: ng.ITimeoutService) {
}));
it('borde dela in vaerdet i sidor beroende på line-height', inject(function ($timeout: ng.ITimeoutService) {
}));
it('borde dela in vaerdet i mer än 2 sidor om pageSplit är satt och vaerdet överlappar sidbrytningen', inject(function ($timeout: ng.ITimeoutService) {
}));
it('borde kalla på att uppdatera sidindelning ifall vaerdeOffset ändras', inject(function ($timeout: ng.ITimeoutService) {
}));
it('borde kalla på att uppdatera sidindelning ifall dokumentVaerdet ändras', inject(function ($timeout: ng.ITimeoutService) {
}));
});
describe('med felaktiga attribut', function () {
describe('utan ng-model satt i DOM', function () {
var innerScope;
var contentElement: any;
beforeEach(inject(function ($compile, $rootScope, $httpBackend) {
$scope = $rootScope;
$scope.dokumentVaerden = {};
$scope.dokumentVaerden[dokumentVaerde.VaerdeNamn] = dokumentVaerde;
$scope.pageSplit = [];
$scope.vaerdeHoejdData = {};
$scope.maxWidth = 20;
$scope.originalText = 'Granstigen 22';
var DOM = '';
element = angular.element(DOM);
link = $compile(element)($scope);
$scope.$digest();
innerScope = $scope.$$childTail;
// Hämtar div-taggen som innehåller värdet som bearbetas av directivet
contentElement = element.find('.fb-dokument-field-editable-field');
fbWindow = window;
}));
afterEach(function () {
$scope.$destroy();
innerScope.$destroy();
});
it('borde skapa elementet ', function () {
expect(element).not.toBe(null);
});
it('borde inte ha någon funktionalitet i scope', function () {
expect(innerScope.setBold).toBeUndefined();
expect(innerScope.setItalic).toBeUndefined();
expect(innerScope.setUnderline).toBeUndefined();
expect(innerScope.setFontSize).toBeUndefined();
});
it('borde ladda in rätt html, men inte skapa några bindningar', inject(function () {
expect(contentElement[0].innerHTML).toContain(dokumentVaerde.Vaerde);
$scope.dokumentVaerden[dokumentVaerde.VaerdeNamn].Vaerde = 'Tacogatan 34';
$scope.$digest();
expect(contentElement[0].innerHTML).toContain('Tacosgatan 33');
}));
});
describe('med ett dokument-vaerde som inte existerar', function () {
var innerScope;
var contentElement: any;
beforeEach(inject(function ($compile, $rootScope, $httpBackend) {
$scope = $rootScope;
$scope.dokumentVaerden = {};
$scope.dokumentVaerden[dokumentVaerde.VaerdeNamn] = dokumentVaerde;
$scope.pageSplit = [];
$scope.vaerdeHoejdData = {};
$scope.maxWidth = 20;
$scope.originalText = 'Granstigen 22';
var DOM = '';
element = angular.element(DOM);
link = $compile(element)($scope);
$scope.$digest();
innerScope = $scope.$$childTail;
// Hämtar div-taggen som innehåller värdet som bearbetas av directivet
contentElement = element.find('.fb-dokument-field-editable-field');
fbWindow = window;
}));
afterEach(function () {
$scope.$destroy();
innerScope.$destroy();
});
it('borde skapa elementet ', function () {
expect(element).not.toBe(null);
});
it('borde skapa det icke existerande dokument-vaerdet som ett scope-objekt', function () {
expect(innerScope.dokumentVaerde).not.toBeUndefined();
expect($scope.dokumentVaerden.OA5).not.toBeUndefined();
});
it('borde visa originalvärdet', function () {
expect(contentElement[0].innerHTML).toContain('Granstigen 22');
});
});
describe('utan ngModel och med ett dokument-vaerde som inte existerar', function () {
var innerScope;
var contentElement: any;
beforeEach(inject(function ($compile, $rootScope, $httpBackend) {
$scope = $rootScope;
$scope.dokumentVaerden = {};
$scope.dokumentVaerden[dokumentVaerde.VaerdeNamn] = dokumentVaerde;
$scope.pageSplit = [];
$scope.vaerdeHoejdData = {};
$scope.maxWidth = 20;
$scope.originalText = 'Granstigen 22';
var DOM = '';
element = angular.element(DOM);
link = $compile(element)($scope);
$scope.$digest();
innerScope = $scope.$$childTail;
// Hämtar div-taggen som innehåller värdet som bearbetas av directivet
contentElement = element.find('.fb-dokument-field-editable-field');
fbWindow = window;
}));
afterEach(function () {
$scope.$destroy();
innerScope.$destroy();
});
it('borde skapa elementet ', function () {
expect(element).not.toBe(null);
});
it('borde visa originalvärdet', function () {
expect(contentElement[0].innerHTML).toContain('Granstigen 22');
});
});
});
});