﻿$engine JScript
$uname testTextWindow_EmptyDoc
$dname Тесты для класса TextWindow
$addin global
$addin stdcommands
$addin stdlib

/* Отправная точка тестов - пустой текстовый документ. */

stdlib.require('jsUnitCore.js', SelfScript);

var TWW = stdlib.require('TextWindow.js');

var textDoc = null;
var twnd = null;
    
function setUp()
{
    textDoc = v8New("TextDocument");

    textDoc.Show();
    
    twnd = TWW.GetTextWindow();
}

function tearDown()
{
    if (twnd)
        delete twnd;
    
    // Чтобы при закрытии не выдавалось сообщение "Записать?", сохраним документ во временный файл.
    var tempFile = globalContext("{4A993AB7-2F75-43CF-B34A-0AD9FFAEE7E3}").GetTempFileName();
    textDoc.Write(tempFile);
    
    // Закроем окно текстового документа.
    stdcommands.Frame.FileClose.send();    
    
    // Удалим временный файл.
    var f = v8New("File", tempFile);
    globalContext("{22A21030-E1D6-46A0-9465-F0A5427BE011}").DeleteFiles(f.Path, f.Name);
}

function macrosTestAddLine1()
{
    assertTrue('Нет активного текстового окна!', twnd.IsActive());
    
    twnd.AddLine("Строка текста");
    assertEquals("Строка текста", textDoc.GetText());
}

function macrosTestAddLine2()
{
    assertTrue('Нет активного текстового окна!', twnd.IsActive());
    
    twnd.AddLine("Строка текста");
    twnd.AddLine("Еще одна строка");
    twnd.AddLine("Третья строчка");
    
    assertEquals("Строка текста\nЕще одна строка\nТретья строчка", textDoc.GetText());
}
