update: lorem
This commit is contained in:
parent
14e307f3dc
commit
24ecea0244
4 changed files with 853 additions and 201 deletions
|
|
@ -652,8 +652,25 @@ test "renderer - now" {
|
|||
try ctx.set("idade", Value{ .int = 20 });
|
||||
|
||||
const template =
|
||||
// \\{% now \"Y-m-d H:i:s\" %}
|
||||
\\{% now %}
|
||||
\\{% now \"Y-m-d H:i:s\" %}
|
||||
\\{% now \"Y" %}
|
||||
\\{% now \"m\" %}
|
||||
\\{% now \"n\" %}
|
||||
\\{% now \"d\" %}
|
||||
\\{% now \"j\" %}
|
||||
\\{% now \"F\" %}
|
||||
\\{% now \"M\" %}
|
||||
\\{% now \"l\" %}
|
||||
\\{% now \"D\" %}
|
||||
\\{% now \"H:i:s\" %}
|
||||
\\{% now \"H\" %}
|
||||
\\{% now \"G\" %}
|
||||
\\{% now \"i\" %}
|
||||
\\{% now \"s\" %}
|
||||
\\{% now \"a\" %}
|
||||
\\{% now \"A\" %}
|
||||
\\{% now \"P\" %}
|
||||
;
|
||||
|
||||
var buf = std.ArrayList(u8){};
|
||||
|
|
@ -665,3 +682,389 @@ test "renderer - now" {
|
|||
|
||||
// try testing.expect(std.mem.indexOf(u8, buf.items, "Maior") != null);
|
||||
}
|
||||
|
||||
test "renderer - csrf_token in context" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("15 - csrf_token in context\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
const token: []const u8 = "zh5fyUSICjXNsDTtJCjl9A3O2dDSHhYFlIngAEO6PXK9NX56Z1XLEy7doYuPcE0u";
|
||||
|
||||
try ctx.set("csrf_token", token);
|
||||
const template =
|
||||
\\{% csrf_token %}
|
||||
;
|
||||
|
||||
const expected =
|
||||
\\<input type="hidden" name="csrfmiddlewaretoken" value="zh5fyUSICjXNsDTtJCjl9A3O2dDSHhYFlIngAEO6PXK9NX56Z1XLEy7doYuPcE0u">
|
||||
;
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
try testing.expectEqualStrings(expected, buf.items);
|
||||
}
|
||||
|
||||
test "renderer - csrf_token not in context" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("16 - csrf_token not in context\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
const template =
|
||||
\\{% csrf_token %}
|
||||
;
|
||||
|
||||
const expected =
|
||||
\\
|
||||
;
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
// std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
try testing.expectEqualStrings(expected, buf.items);
|
||||
}
|
||||
|
||||
// TODO: add parse filters to variables
|
||||
test "renderer - firstof withtout fallback" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("17 - firstof without fallback\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
try ctx.set("var1", "");
|
||||
try ctx.set("var2", "baz");
|
||||
|
||||
const template =
|
||||
\\{% firstof var1 var2 %}
|
||||
;
|
||||
|
||||
const expected =
|
||||
\\baz
|
||||
;
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
// std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
try testing.expectEqualStrings(expected, buf.items);
|
||||
}
|
||||
|
||||
test "renderer - firstof with fallback" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("18 - firstof with fallback\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
try ctx.set("var1", "");
|
||||
try ctx.set("var2", 0);
|
||||
|
||||
const template =
|
||||
\\{% firstof var1 var2 "Oops no value!" %}
|
||||
;
|
||||
|
||||
const expected =
|
||||
\\Oops no value!
|
||||
;
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
// std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
try testing.expectEqualStrings(expected, buf.items);
|
||||
}
|
||||
|
||||
test "renderer - firstof without value in context" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("19 - firstof without value in context\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
const template =
|
||||
\\{% firstof 0 true "Oops no value!" %}
|
||||
;
|
||||
|
||||
const expected =
|
||||
\\true
|
||||
;
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
// std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
try testing.expectEqualStrings(expected, buf.items);
|
||||
}
|
||||
|
||||
test "renderer - firstof missing vars" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("20 - firstof missing vars\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
const template =
|
||||
\\{% firstof %}
|
||||
;
|
||||
|
||||
const expected =
|
||||
\\
|
||||
;
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
// std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
try testing.expectEqualStrings(expected, buf.items);
|
||||
}
|
||||
|
||||
test "renderer - firstof missing vars with fallback" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("21 - firstof missing vars with fallback\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
const template =
|
||||
\\{% firstof "nothing here" %}
|
||||
;
|
||||
|
||||
const expected =
|
||||
\\nothing here
|
||||
;
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
// std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
try testing.expectEqualStrings(expected, buf.items);
|
||||
}
|
||||
|
||||
test "renderer - lorem" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("22 - lorem\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
const template =
|
||||
\\{% lorem %}
|
||||
;
|
||||
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
try testing.expect(std.mem.indexOf(u8, buf.items, "Lorem ipsum") != null);
|
||||
}
|
||||
|
||||
test "renderer - lorem with count and method words" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("23 - lorem with count and method words\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
const template =
|
||||
\\{% lorem 3 w %}
|
||||
;
|
||||
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
try testing.expectEqualStrings("lorem ipsum dolor", buf.items);
|
||||
}
|
||||
|
||||
test "renderer - lorem with count and method paragraphs" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("24 - lorem with count and method paragraphs\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
const template =
|
||||
\\{% lorem 5 p %}
|
||||
;
|
||||
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
const qty = std.mem.count(u8, buf.items, "<p>");
|
||||
try testing.expect(std.mem.indexOf(u8, buf.items, "Lorem ipsum dolor") != null);
|
||||
try testing.expect(qty == 5);
|
||||
}
|
||||
|
||||
test "renderer - lorem only random" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("25 - lorem only random\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
const template =
|
||||
\\{% lorem true %}
|
||||
;
|
||||
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
try testing.expect(buf.items.len > 0);
|
||||
}
|
||||
|
||||
test "renderer - lorem words random" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("26 - lorem words random\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
const template =
|
||||
\\{% lorem 6 w true %}
|
||||
;
|
||||
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
const spaces = std.mem.count(u8, buf.items, " ");
|
||||
try testing.expect(spaces == 5);
|
||||
}
|
||||
|
||||
test "renderer - lorem paragraphs random" {
|
||||
std.debug.print("____________________________________________________\n", .{});
|
||||
std.debug.print("26 - lorem paragraphs random\n", .{});
|
||||
|
||||
const alloc = testing.allocator;
|
||||
var ctx = Context.init(alloc);
|
||||
defer ctx.deinit();
|
||||
|
||||
var cache = TemplateCache.init(alloc);
|
||||
defer cache.deinit();
|
||||
|
||||
const renderer = Renderer.init(&ctx, &cache);
|
||||
|
||||
const template =
|
||||
\\{% lorem 3 p true %}
|
||||
;
|
||||
|
||||
var buf = std.ArrayList(u8){};
|
||||
defer buf.deinit(alloc);
|
||||
|
||||
try renderer.renderString(template, buf.writer(alloc));
|
||||
|
||||
std.debug.print("OUTPUT:\n\n{s}\n", .{buf.items});
|
||||
|
||||
const spaces = std.mem.count(u8, buf.items, "<p>");
|
||||
try testing.expect(spaces == 3);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue