moved old experimental code into the sandbox
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package kotlin.template
|
||||
|
||||
import kotlin.*
|
||||
import kotlin.template.io.*
|
||||
import kotlin.io.*
|
||||
import kotlin.util.*
|
||||
import kotlin.test.*
|
||||
import java.util.*
|
||||
|
||||
class EmailTemplate(var name: String = "James", var time: Date = Date()) : TextTemplate() {
|
||||
override fun render() {
|
||||
print("Hello there $name and how are you? Today is $time. Kotlin rocks")
|
||||
}
|
||||
}
|
||||
|
||||
class MoreDryTemplate(var name: String = "James", var time: Date = Date()) : TextTemplate() {
|
||||
override fun render() {
|
||||
+"Hey there $name and how are you? Today is $time. Kotlin rocks"
|
||||
}
|
||||
}
|
||||
|
||||
class TemplateCoreTest() : TestSupport() {
|
||||
fun testDefaultValues() {
|
||||
val text = EmailTemplate().renderToText()
|
||||
assert {
|
||||
println(text)
|
||||
text.startsWith("Hello there James")
|
||||
}
|
||||
}
|
||||
|
||||
fun testDifferentValues() {
|
||||
val text = EmailTemplate("Andrey").renderToText()
|
||||
assert {
|
||||
println(text)
|
||||
text.startsWith("Hello there Andrey")
|
||||
}
|
||||
}
|
||||
|
||||
fun testMoreDryTemplate() {
|
||||
val text = MoreDryTemplate("Alex").renderToText()
|
||||
assert {
|
||||
println(text)
|
||||
text.startsWith("Hey there Alex")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
package kotlin.template.html
|
||||
|
||||
import kotlin.*
|
||||
import kotlin.template.*
|
||||
import kotlin.template.io.*
|
||||
import kotlin.io.*
|
||||
import kotlin.util.*
|
||||
import kotlin.test.*
|
||||
import java.util.*
|
||||
|
||||
val justBody = body {
|
||||
+"Hello world"
|
||||
}
|
||||
|
||||
fun result(args : List<String>) =
|
||||
html {
|
||||
head {
|
||||
title {+"XML encoding with Kotlin"}
|
||||
}
|
||||
body {
|
||||
h1 {+"XML encoding with Kotlin"}
|
||||
p {+"this format can be used as an alternative markup to XML"}
|
||||
|
||||
// an element with attributes and text content
|
||||
a(href = "http://jetbrains.com/kotlin") {+"Kotlin"}
|
||||
|
||||
// mixed content
|
||||
p {
|
||||
+"This is some"
|
||||
b {+"mixed"}
|
||||
+"text. For more see the"
|
||||
a(href = "http://jetbrains.com/kotlin") {+"Kotlin"}
|
||||
+"project"
|
||||
}
|
||||
p {+"some text"}
|
||||
|
||||
// content generated by
|
||||
p {
|
||||
for (arg in args)
|
||||
+arg
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Create a bad element which doesn't have a class object create() method */
|
||||
class BadElem() : BodyTag("bad") {
|
||||
}
|
||||
|
||||
/** Creates a bad body to test out badly defined elements */
|
||||
class BadBody() : BodyTag("badBody") {
|
||||
fun bad(init : BadElem.()-> Unit) = initTag(init)
|
||||
}
|
||||
|
||||
fun badBody(init: BadBody.()-> Unit): BadBody {
|
||||
val elem = BadBody()
|
||||
elem.init()
|
||||
return elem
|
||||
}
|
||||
|
||||
class TemplateHtmlTest() : TestSupport() {
|
||||
|
||||
fun testJustBody() {
|
||||
assertEquals("<body>Hello world<body>", justBody.toString())
|
||||
}
|
||||
|
||||
fun testEmbeddedSimpleBody() {
|
||||
val e = body {
|
||||
+"body with text"
|
||||
}
|
||||
assertEquals("<body>body with text<body>", e.toString())
|
||||
}
|
||||
|
||||
fun testEmbeddedBodyWithNestedBold() {
|
||||
val e = body {
|
||||
b{
|
||||
+"this is bold"
|
||||
}
|
||||
}
|
||||
assertEquals("<body><b>this is bold<b><body>", e.toString())
|
||||
}
|
||||
|
||||
fun testEmbeddedBodyWithNestedLinks() {
|
||||
val e = body {
|
||||
a("http://jetbrains.com/kotlin") {
|
||||
+"link text"
|
||||
}
|
||||
}
|
||||
assertEquals("<body><a href=\"http://jetbrains.com/kotlin\">link text<a><body>", e.toString())
|
||||
}
|
||||
|
||||
fun testHtmlFunction() {
|
||||
val e = result(arrayList("a", "b", "c"))
|
||||
assertEquals("""<html><head><title>XML encoding with Kotlin<title><head><body><h1>XML encoding with Kotlin<h1><p>this format can be used as an alternative markup to XML<p><a href="http://jetbrains.com/kotlin">Kotlin<a><b>mixed<b><a href="http://jetbrains.com/kotlin">Kotlin<a><p>This is sometext. For more see theproject<p><p>some text<p><p>abc<p><body><html>""", e.toString())
|
||||
}
|
||||
|
||||
fun testEmbeddedFunction() {
|
||||
val e = html {
|
||||
head {
|
||||
title {+"XML encoding with Kotlin"}
|
||||
}
|
||||
body {
|
||||
a("http://jetbrains.com/kotlin")
|
||||
}
|
||||
}
|
||||
assertEquals("<html><head><title>XML encoding with Kotlin<title><head><body><a href=\"http://jetbrains.com/kotlin\"/><body><html>", e.toString())
|
||||
}
|
||||
|
||||
fun testBadlyDefinedElement() {
|
||||
failsWith<UnsupportedOperationException>{
|
||||
val e = badBody {
|
||||
bad{
|
||||
+"Bad Element Text"
|
||||
}
|
||||
}
|
||||
println("bad body: $e")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright 2010-2012 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package kotlin.template;
|
||||
|
||||
import kotlin.template.html.*;
|
||||
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
/**
|
||||
*/
|
||||
public class TemplateTestAll {
|
||||
public static TestSuite suite() {
|
||||
return new TestSuite(TemplateCoreTest.class, TemplateHtmlTest.class);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user