Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #411 (permalink)  
Старый 15.08.2014, 20:15
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от bes
программирование в машинных кодах/на ассемблере
чтобы не быть голословным
Intel® 64 and IA-32 Architectures Software Developer’s Manuals
проясняет лучше, чем книжки Юрова
Ответить с цитированием
  #412 (permalink)  
Старый 15.08.2014, 20:18
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

bes,
Сам бред не неси. Одна операция быстрее чем одна + еще одна.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #413 (permalink)  
Старый 15.08.2014, 20:19
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Gozar
bes,
Сам бред не неси. Одна операция быстрее чем одна + еще одна.
логично
Ответить с цитированием
  #414 (permalink)  
Старый 17.08.2014, 15:08
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 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();

    } );

});
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #415 (permalink)  
Старый 17.08.2014, 16:56
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

cyber, а что изменилось?
Ответить с цитированием
  #416 (permalink)  
Старый 17.08.2014, 17:08
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 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 );
    } );
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #417 (permalink)  
Старый 18.08.2014, 09:54
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

cyber, хз. абстрактному примеру абстрактный тест
попробуй сделать мелкое приложение иоттестировать его
Ответить с цитированием
  #418 (permalink)  
Старый 18.08.2014, 11:16
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Пожалуй соглашусь с методолгией ангуляра, с dom элементами в тестах каша
__________________
Научу себя плохому
Ответить с цитированием
  #419 (permalink)  
Старый 18.08.2014, 11:29
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от melky
абстрактному примеру абстрактный тест
Почему абстрактный?) Я с этим скриптом работаю и мне достало вылавливать ошибки в работе)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #420 (permalink)  
Старый 18.08.2014, 13:11
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от l-liava-l
Пожалуй соглашусь с методолгией ангуляра, с dom элементами в тестах каша
да, у них ништячные тесты
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смишных картинок тред megaupload Оффтопик 3448 03.07.2023 09:47
React'а тред melky Оффтопик 246 13.11.2016 08:07
Webpack'а тред nerv_ Сборка проекта, утилиты 58 07.05.2016 13:46
Смешных историй тред monolithed Оффтопик 11 04.03.2015 04:20
Смишных видео с намеком тред godofjavascript Оффтопик 4 30.12.2012 23:50