Commit 3faa86cd authored by Valentin Hervieu's avatar Valentin Hervieu

test(unit tests): Start refactoring the unit tests

The final goal is to split tests in several files
parent c0a3fc58
This source diff could not be displayed because it is too large. You can view the blob instead.
var module = angular.module('test-helper', ['rzModule', 'appTemplates']);
module.factory('TestHelper', function(RzSlider, RzSliderOptions, $rootScope, $compile, $timeout, $window, $document) {
var h = {
RzSlider: RzSlider,
RzSliderOptions: RzSliderOptions,
$rootScope: $rootScope,
$compile: $compile,
$timeout: $timeout,
$window: $window,
$document: $document
};
h.createSlider = function(sliderObj) {
var template = '';
if (sliderObj.options)
template = '<rzslider rz-slider-model="slider.value" rz-slider-options="slider.options"></rzslider>';
else
template = '<rzslider rz-slider-model="slider.value"></rzslider>';
h.initSlider(sliderObj, template);
};
h.createRangeSlider = function(sliderObj) {
var template = '';
if (sliderObj.options)
template = '<rzslider rz-slider-model="slider.min" rz-slider-high="slider.max"' +
'rz-slider-options="slider.options"></rzslider>';
else
template = '<rzslider rz-slider-model="slider.min" rz-slider-high="slider.max"></rzslider>';
h.initSlider(sliderObj, template);
};
h.initSlider = function(sliderObj, template) {
h.scope = $rootScope.$new();
h.scope.slider = sliderObj;
h.parent = angular.element('<div style="width: 1000px; height:1000px;"></div>');
h.element = $compile(template)(h.scope);
h.parent.append(h.element);
angular.element(document).find('body').append(h.parent);
h.scope.$digest();
h.slider = h.element.isolateScope().slider;
};
h.clean = function() {
//simulate to $destroy event to clean everything
if (h.scope)
h.scope.$broadcast('$destroy');
//clean the element we append at each test
if (h.parent)
h.parent.remove();
};
h.fireMousedown = function(element, position, vertical) {
var positionProp = vertical ? 'clientY' : 'clientX';
var event = {
type: 'mousedown',
preventDefault: sinon.stub(),
stopPropagation: sinon.stub()
};
event[positionProp] = position;
element.triggerHandler(event);
return event;
};
h.fireMousemove = function(position, vertical) {
var positionProp = vertical ? 'clientY' : 'clientX';
var event = {
type: 'mousemove'
};
event[positionProp] = position;
$document.triggerHandler(event);
};
h.fireMouseup = function() {
var event = {
type: 'mouseup'
};
$document.triggerHandler(event);
};
h.pressKeydown = function(element, key, oldAPI) {
key = key.toUpperCase();
var event = {
type: 'keydown'
};
var keys = {
'UP': 38,
'DOWN': 40,
'LEFT': 37,
'RIGHT': 39,
'PAGEUP': 33,
'PAGEDOWN': 34,
'HOME': 36,
'END': 35,
'SPACE': 32
};
var keyCode = keys[key];
if (oldAPI)
event.which = keyCode;
else event.keyCode = keyCode;
element.triggerHandler(event);
};
return h;
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment