TemplateDesigner: Redesign des TemplateSkripts
This commit is contained in:
@@ -70,4 +70,40 @@ public sealed class OverlayEditorTests
|
||||
Assert.Equal(200, viewModel.OverlayPageHeight);
|
||||
Assert.Equal("pt", viewModel.OverlayPageUnit);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FlowSlotVerschieben_AendertNurDasPragmaDerAusgewaehltenSeite()
|
||||
{
|
||||
var viewModel = new DesignerViewModel();
|
||||
var layout = new LehrerApp.Templating.LayoutParser().Parse(viewModel.LayoutSource);
|
||||
var firstSlot = layout.PageTemplates.Single(x => x.Name == "first").FlowSlots.Single();
|
||||
var continuationSlot = layout.PageTemplates.Single(x => x.Name == "continuation").FlowSlots.Single();
|
||||
|
||||
viewModel.ApplyElementGeometry(new(firstSlot.Line, "FLOW", 25, 95, 160, 165));
|
||||
|
||||
var updated = new LehrerApp.Templating.LayoutParser().Parse(viewModel.LayoutSource);
|
||||
var updatedFirst = updated.PageTemplates.Single(x => x.Name == "first").FlowSlots.Single();
|
||||
var updatedContinuation = updated.PageTemplates.Single(x => x.Name == "continuation").FlowSlots.Single();
|
||||
Assert.Equal(25, updatedFirst.X);
|
||||
Assert.Equal(95, updatedFirst.Y);
|
||||
Assert.Equal(continuationSlot.X, updatedContinuation.X);
|
||||
Assert.Equal(continuationSlot.Y, updatedContinuation.Y);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ElementKannGezieltInContentFlowEingefuegtWerden()
|
||||
{
|
||||
var viewModel = new DesignerViewModel
|
||||
{
|
||||
NewElementScope = "Content-Flow", SelectedContentFlow = "body",
|
||||
NewElementType = "TEXT", NewContent = "Nachsatz", NewAttributes = "gap=5",
|
||||
};
|
||||
|
||||
viewModel.AddElement();
|
||||
|
||||
var flow = new LehrerApp.Templating.LayoutParser().Parse(viewModel.LayoutSource).ContentFlows.Single();
|
||||
var text = Assert.IsType<LehrerApp.Templating.TextElement>(flow.Elements.Last());
|
||||
Assert.Equal("Nachsatz", text.Content);
|
||||
Assert.Equal("5", text.Attributes["gap"]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,9 @@ public sealed class ProjectLifecycleTests
|
||||
viewModel.Reset();
|
||||
|
||||
Assert.Equal("neue-vorlage", viewModel.TemplateId);
|
||||
Assert.Equal("PAGE 210 297 mm\n", viewModel.LayoutSource);
|
||||
Assert.Contains("#pragma page-template first", viewModel.LayoutSource);
|
||||
Assert.Contains("#pragma page-template continuation", viewModel.LayoutSource);
|
||||
Assert.Contains("#pragma content-flow body", viewModel.LayoutSource);
|
||||
Assert.Empty(viewModel.Placeholders);
|
||||
Assert.Empty(viewModel.Assets);
|
||||
Assert.Empty(viewModel.AssetItems);
|
||||
@@ -91,6 +93,21 @@ public sealed class ProjectLifecycleTests
|
||||
Assert.Contains("mehrfach", exception.Message);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AlteAbsoluteLayouts_WerdenBeimOeffnenVerlustfreiInSeitentypEingebettet()
|
||||
{
|
||||
const string source = "PAGE 210 297 mm\nTEXT 20 30 \"Altbestand\" size=12\n";
|
||||
var layout = new LehrerApp.Templating.LayoutParser().Parse(source);
|
||||
|
||||
var migrated = DesignerViewModel.MigrateLegacyLayout(source, layout);
|
||||
var parsed = new LehrerApp.Templating.LayoutParser().Parse(migrated);
|
||||
|
||||
Assert.True(parsed.UsesPageTemplates);
|
||||
Assert.Equal("Altbestand", Assert.IsType<LehrerApp.Templating.TextElement>(
|
||||
parsed.PageTemplates.Single(x => x.Name == "first").Elements.Single()).Content);
|
||||
Assert.Empty(parsed.ContentFlows.Single().Elements);
|
||||
}
|
||||
|
||||
private static readonly byte[] OnePixelPng = Convert.FromBase64String(
|
||||
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user