15.08.2014, 20:18
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
bes,
Сам бред не неси. Одна операция быстрее чем одна + еще одна.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
15.08.2014, 20:19
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Gozar
|
bes,
Сам бред не неси. Одна операция быстрее чем одна + еще одна.
|
логично
|
|
17.08.2014, 15:08
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
melky, я тут продолжаю играться с тестами и вот что получилось учел твой коммент и то что прочитал, именна тестов только не поменял еще.
Так лучше?)
describe('new ModalJS', function() {
var modal;
it( 'new Object', function() {
modal = new ModalJS();
expect( ( typeof modal ).valueOf())
.toBe( "object" );
});
it ( "Create overlay", function () {
expect ( isHTMLElement( modal.overlay) )
.toBe( true );
expect ( modal.overlay.parentElement )
.toBe( document.body );
} );
});
function isHTMLElement( elem ) {
return (typeof elem === "object") &&
(elem.nodeType === 1) && (typeof elem.style === "object") &&
(typeof elem.ownerDocument ==="object");
}
describe ( "Methods", function () {
var modal = modal = new ModalJS( {
NotUseAnimate: true
} );
it( "set window", function () {
var win = document.getElementById( "modal-test-win");
expect ( modal.setWindow ( win ) )
.toBe ( modal );
});
it ( "Show window", function ( done ) {
modal.show();
expect ( isDisplayed ( modal.window ))
.toBe ( true );
expect ( isDisplayed( modal.overlay ) )
.toBe ( true );
setTimeout ( function (){
expect ( isCentered ( modal.window ))
.toBe ( true );
done();
}, 0 );
} );
it ( "Hide window", function ( ) {
modal.hide () ;
expect ( isDisplayed( modal.window ) )
.toBe ( false );
expect ( isDisplayed( modal.overlay ) )
.toBe ( false );
} );
it ( "Window destroy", function ( ) {
expect ( modal.destroy( ) )
.toBe ( true );
expect ( modal.overlay)
.toBeUndefined ();
} );
it ( "Window destroy [remove Window]", function ( ) {
var modal = new ModalJS()
.setWindow( document.getElementById( "modal-test-win") );
expect ( modal.destroy( true ) )
.toBe ( true );
expect ( modal.window )
.toBeUndefined();
} );
} );
function isDisplayed ( elem ) {
var display = getStyle( elem, "display" );
return !display || display !== "none";
};
function isCentered ( win ) {
var y = ( window.innerHeight - win.offsetHeight ) / 2 ,
x = ( window.innerWidth - win.offsetWidth) / 2 ,
winY = Math.round( parseFloat( getStyle( win, "top" ) ) ),
winX = Math.round( parseFloat( getStyle( win, "left" ) ) );
return Math.round( y ) == winY
&& Math.round( x ) == winX;
}
function getStyle ( elem, style ) {
var value = elem.style[ style ];
if ( !value ) {
value = window.getComputedStyle( elem, null).getPropertyValue( style );
}
return value;
}
describe ( "Async animate", function ( ) {
var win2 = document.getElementById( "modal-test-win2"),
modal = new ModalJS().setWindow ( win2 );
beforeEach( function ( done ) {
modal.on ( "showed", function () {
expect ( isDisplayed ( modal.window ))
.toBe ( true );
expect ( isCentered ( modal.window ))
.toBe ( true );
expect ( isDisplayed( modal.overlay ) )
.toBe ( true );
}, done );
modal.show();
} );
it ( "Hide window", function ( done ) {
modal.on ( "closed", function () {
expect ( isDisplayed( modal.window ) )
.toBe ( false );
expect ( isDisplayed( modal.overlay ) )
.toBe ( false );
}, done );
modal.hide();
} );
});
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
17.08.2014, 16:56
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
cyber, а что изменилось?
|
|
17.08.2014, 17:08
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от melky
|
а что изменилось?
|
вот прошлый вариант Обсуждений тред
Добавлена проверка на отображение окна,
function isDisplayed ( elem ) {
var display = getStyle( elem, "display" );
return !display || display !== "none";
};
Так же отображено оно там где нужно или нет
function isCentered ( win ) {
var y = ( window.innerHeight - win.offsetHeight ) / 2 ,
x = ( window.innerWidth - win.offsetWidth) / 2 ,
winY = Math.round( parseFloat( getStyle( win, "top" ) ) ),
winX = Math.round( parseFloat( getStyle( win, "left" ) ) );
return Math.round( y ) == winY
&& Math.round( x ) == winX;
}
it ( "Show window", function ( done ) {
modal.show();
expect ( isDisplayed ( modal.window ))
.toBe ( true );
expect ( isDisplayed( modal.overlay ) )
.toBe ( true );
setTimeout ( function (){
expect ( isCentered ( modal.window ))
.toBe ( true );
done();
}, 0 );
После закрытие проверяется спрятано ли окно
it ( "Hide window", function ( ) {
modal.hide () ;
expect ( isDisplayed( modal.window ) )
.toBe ( false );
expect ( isDisplayed( modal.overlay ) )
.toBe ( false );
} );
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
18.08.2014, 09:54
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
cyber, хз. абстрактному примеру абстрактный тест
попробуй сделать мелкое приложение иоттестировать его
|
|
18.08.2014, 11:16
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Пожалуй соглашусь с методолгией ангуляра, с dom элементами в тестах каша
__________________
Научу себя плохому
|
|
18.08.2014, 11:29
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от melky
|
абстрактному примеру абстрактный тест
|
Почему абстрактный?) Я с этим скриптом работаю и мне достало вылавливать ошибки в работе)
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
18.08.2014, 13:11
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от l-liava-l
|
Пожалуй соглашусь с методолгией ангуляра, с dom элементами в тестах каша
|
да, у них ништячные тесты
|
|
|
|