summaryrefslogtreecommitdiff
path: root/scalatexApi/src/test/scala/scalatex/BasicTests.scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi@dropbox.com>2014-11-16 18:42:55 -0800
committerLi Haoyi <haoyi@dropbox.com>2014-11-16 18:42:55 -0800
commit85cf9e1849b452da681d11ead314f46ba8be9512 (patch)
tree759c3c6c9164c737cb0b8e0a11e57501a702432e /scalatexApi/src/test/scala/scalatex/BasicTests.scala
parented9c7a7ed304d307736f48c42b057d09ebe880fc (diff)
downloadhands-on-scala-js-85cf9e1849b452da681d11ead314f46ba8be9512.tar.gz
hands-on-scala-js-85cf9e1849b452da681d11ead314f46ba8be9512.tar.bz2
hands-on-scala-js-85cf9e1849b452da681d11ead314f46ba8be9512.zip
Moved some book-data stuff into the scalatex file to take advantage of the new multi-line Scala expressions
Diffstat (limited to 'scalatexApi/src/test/scala/scalatex/BasicTests.scala')
-rw-r--r--scalatexApi/src/test/scala/scalatex/BasicTests.scala868
1 files changed, 434 insertions, 434 deletions
diff --git a/scalatexApi/src/test/scala/scalatex/BasicTests.scala b/scalatexApi/src/test/scala/scalatex/BasicTests.scala
index fc4bff8..4bc362c 100644
--- a/scalatexApi/src/test/scala/scalatex/BasicTests.scala
+++ b/scalatexApi/src/test/scala/scalatex/BasicTests.scala
@@ -1,468 +1,468 @@
-//package scalatex
-//import utest._
-//import scala.collection.mutable.ArrayBuffer
-//import scalatex.stages._
-//import scalatags.Text.all._
+package scalatex
+import utest._
+import scala.collection.mutable.ArrayBuffer
+import scalatex.stages._
+import scalatags.Text.all._
+
+
+/**
+* Created by haoyi on 7/14/14.
+*/
+object BasicTests extends TestSuite{
+ import TestUtil._
+
+ val tests = TestSuite{
+
+ 'helloWorld{
+ object omg {
+ def wtf(s: Frag*): Frag = Seq[Frag]("|", s, "|")
+ }
+ def str = "hear me moo"
+ check(
+ tw("""
+ @omg.wtf
+ i @b{am} cow @str
+ """),
+ "|i<b>am</b>cowhearmemoo|"
+ )
+ }
+ 'interpolation{
+ 'chained-check(
+ tw("omg @scala.math.pow(0.5, 3) wtf"),
+ "omg 0.125 wtf"
+ )
+ 'parens-check(
+ tw("omg @(1 + 2 + 3 + 4) wtf"),
+ "omg 10 wtf"
+ )
+ 'block-check(
+ tw("""
+ @{"lol" * 3}
+ @{
+ val omg = "omg"
+ omg * 2
+ }
+ """),
+ """
+ lollollol
+ omgomg
+ """
+ )
+ }
+ 'definitions{
+ 'imports{
+ object Whee{
+ def func(x: Int) = x * 2
+ }
+ check(
+ tw("""
+ @import math._
+ @import Whee.func
+ @abs(-10)
+ @p
+ @max(1, 2)
+ @func(2)
+ """),
+ """
+ 10
+ <p>
+ 2
+ 4
+ </p>
+ """
+ )
+ }
+ 'valDefVar{
+ check(
+ tw("""
+ Hello
+ @val x = 1
+ World @x
+ @def y = "omg"
+ mooo
+ @y
+ """),
+ """
+ Hello
+ World 1
+ mooo
+ omg
+ """
+ )
+ }
+ 'classObjectTrait{
+ check(
+ tw("""
+ @trait Trait{
+ def tt = 2
+ }
+ Hello
+ @case object moo extends Trait{
+ val omg = "wtf"
+ }
+
+ @moo.toString
+ @moo.omg
+ @case class Foo(i: Int, s: String, b: Boolean)
+ TT is @moo.tt
+ @Foo(10, "10", true).toString
+ """),
+ """
+ Hello
+ moo
+ wtf
+ TT is 2
+ Foo(10, 10, true)
+ """
+ )
+ }
+ }
+ 'parenArgumentLists{
+ 'attributes{
+ check(
+ tw("""
+ @div(id:="my-id"){ omg }
+ @div(id:="my-id")
+ omg
+ """),
+ """
+ <divid="my-id">omg</div>
+ <divid="my-id">omg</div>
+ """
+ )
+ }
+// 'multiline{
//
-//
-///**
-//* Created by haoyi on 7/14/14.
-//*/
-//object BasicTests extends TestSuite{
-// import TestUtil._
-//
-// val tests = TestSuite{
-//
-// 'helloWorld{
-// object omg {
-// def wtf(s: Frag*): Frag = Seq[Frag]("|", s, "|")
-// }
-// def str = "hear me moo"
-// check(
-// tw("""
-// @omg.wtf
-// i @b{am} cow @str
-// """),
-// "|i<b>am</b>cowhearmemoo|"
-// )
-// }
-// 'interpolation{
-// 'chained-check(
-// tw("omg @scala.math.pow(0.5, 3) wtf"),
-// "omg 0.125 wtf"
-// )
-// 'parens-check(
-// tw("omg @(1 + 2 + 3 + 4) wtf"),
-// "omg 10 wtf"
-// )
-// 'block-check(
-// tw("""
-// @{"lol" * 3}
-// @{
-// val omg = "omg"
-// omg * 2
-// }
-// """),
-// """
-// lollollol
-// omgomg
-// """
-// )
-// }
-// 'definitions{
-// 'imports{
-// object Whee{
-// def func(x: Int) = x * 2
-// }
-// check(
-// tw("""
-// @import math._
-// @import Whee.func
-// @abs(-10)
-// @p
-// @max(1, 2)
-// @func(2)
-// """),
-// """
-// 10
-// <p>
-// 2
-// 4
-// </p>
-// """
-// )
-// }
-// 'valDefVar{
// check(
// tw("""
-// Hello
-// @val x = 1
-// World @x
-// @def y = "omg"
-// mooo
-// @y
+// @div(
+// h1("Hello World"),
+// p("I am a ", b{"cow"})
+// )
// """),
// """
-// Hello
-// World 1
-// mooo
-// omg
+// <div>
+// <h1>Hello World</h1>
+// <p>I am a <b>cow</b></p>
+// </div>
// """
// )
// }
-// 'classObjectTrait{
-// check(
-// tw("""
-// @trait Trait{
-// def tt = 2
-// }
-// Hello
-// @case object moo extends Trait{
-// val omg = "wtf"
-// }
+ }
+ 'grouping{
+ 'negative{
+ // The indentation for "normal" text is ignored; we only
+ // create blocks from the indentation following a scala
+ // @xxx expression
+ check(
+ tw("""
+ I am cow hear me moo
+ I weigh twice as much as you
+ And I look good on the barbecue
+ Yoghurt curds cream cheese and butter
+ Comes from liquids from my udder
+ I am cow I am cow hear me moooooo
+ """),
+ """
+ I am cow hear me moo
+ I weigh twice as much as you
+ And I look good on the barbecue
+ Yoghurt curds cream cheese and butter
+ Comes from liquids from my udder
+ I am cow I am cow hear me moooooo
+ """
+ )
+ }
+ 'indentation{
+ 'simple{
+ val world = "World2"
+
+ check(
+ tw("""
+ @h1
+ Hello World
+ @h2
+ hello @world
+ @h3
+ Cow
+ """),
+ """
+ <h1>HelloWorld</h1>
+ <h2>helloWorld2</h2>
+ <h3>Cow</h3>
+ """
+ )
+ }
+ 'linearNested{
+ check(
+ tw("""
+ @h1 @span @a Hello World
+ @h2 @span @a hello
+ @b world
+ @h3 @i
+ @div Cow
+ """),
+ """
+ <h1></h1><span></span><a></a>HelloWorld
+ <h2></h2><span></span><a></a>hello<b></b>world
+ <h3></h3><i></i><div></div>Cow
+ """
+ )
+ }
+ 'crasher{
+ tw("""
+@html
+ @head
+ @meta
+ @div
+ @a
+ @span
+ """)
+ }
+ }
+ 'curlies{
+ 'simple{
+ val world = "World2"
+
+ check(
+ tw("""@div{Hello World}"""),
+ """<div>HelloWorld</div>"""
+ )
+ }
+ 'multiline{
+ check(
+ tw("""
+ @div{
+ Hello
+ }
+ """),
+ """
+ <div>Hello</div>
+ """
+ )
+ }
+ }
+ 'mixed{
+ check(
+ tw("""
+ @div{
+ Hello
+ @div
+ @h1
+ WORLD @b{!!!}
+ lol
+ @p{
+ @h2{Header 2}
+ }
+ }
+ """),
+ """
+ <div>
+ Hello
+ <div>
+ <h1>WORLD<b>!!!</b>lol</h1>
+ <p><h2>Header2</h2></p>
+ </div>
+ </div>
+ """
+ )
+ }
//
-// @moo.toString
-// @moo.omg
-// @case class Foo(i: Int, s: String, b: Boolean)
-// TT is @moo.tt
-// @Foo(10, "10", true).toString
-// """),
-// """
-// Hello
-// moo
-// wtf
-// TT is 2
-// Foo(10, 10, true)
-// """
-// )
-// }
-// }
-// 'parenArgumentLists{
-// 'attributes{
+// 'args{
+// val things = Seq(1, 2, 3)
// check(
// tw("""
-// @div(id:="my-id"){ omg }
-// @div(id:="my-id")
-// omg
-// """),
-// """
-// <divid="my-id">omg</div>
-// <divid="my-id">omg</div>
-// """
-// )
-// }
-//// 'multiline{
-////
-//// check(
-//// tw("""
-//// @div(
-//// h1("Hello World"),
-//// p("I am a ", b{"cow"})
-//// )
-//// """),
-//// """
-//// <div>
-//// <h1>Hello World</h1>
-//// <p>I am a <b>cow</b></p>
-//// </div>
-//// """
-//// )
-//// }
-// }
-// 'grouping{
-// 'negative{
-// // The indentation for "normal" text is ignored; we only
-// // create blocks from the indentation following a scala
-// // @xxx expression
-// check(
-// tw("""
-// I am cow hear me moo
-// I weigh twice as much as you
-// And I look good on the barbecue
-// Yoghurt curds cream cheese and butter
-// Comes from liquids from my udder
-// I am cow I am cow hear me moooooo
+// @ul
+// @things.map { x =>
+// @li
+// @x
+// }
// """),
-// """
-// I am cow hear me moo
-// I weigh twice as much as you
-// And I look good on the barbecue
-// Yoghurt curds cream cheese and butter
-// Comes from liquids from my udder
-// I am cow I am cow hear me moooooo
-// """
-// )
-// }
-// 'indentation{
-// 'simple{
-// val world = "World2"
-//
-// check(
-// tw("""
-// @h1
-// Hello World
-// @h2
-// hello @world
-// @h3
-// Cow
-// """),
-// """
-// <h1>HelloWorld</h1>
-// <h2>helloWorld2</h2>
-// <h3>Cow</h3>
-// """
-// )
-// }
-// 'linearNested{
-// check(
-// tw("""
-// @h1 @span @a Hello World
-// @h2 @span @a hello
-// @b world
-// @h3 @i
-// @div Cow
-// """),
-// """
-// <h1></h1><span></span><a></a>HelloWorld
-// <h2></h2><span></span><a></a>hello<b></b>world
-// <h3></h3><i></i><div></div>Cow
-// """
-// )
-// }
-// 'crasher{
// tw("""
-//@html
-// @head
-// @meta
-// @div
-// @a
-// @span
-// """)
-// }
-// }
-// 'curlies{
-// 'simple{
-// val world = "World2"
+// @ul
+// @things.map x =>
+// @li
+// @x
//
-// check(
-// tw("""@div{Hello World}"""),
-// """<div>HelloWorld</div>"""
-// )
-// }
-// 'multiline{
-// check(
-// tw("""
-// @div{
-// Hello
-// }
-// """),
-// """
-// <div>Hello</div>
-// """
-// )
-// }
-// }
-// 'mixed{
-// check(
-// tw("""
-// @div{
-// Hello
-// @div
-// @h1
-// WORLD @b{!!!}
-// lol
-// @p{
-// @h2{Header 2}
-// }
-// }
// """),
// """
-// <div>
-// Hello
-// <div>
-// <h1>WORLD<b>!!!</b>lol</h1>
-// <p><h2>Header2</h2></p>
-// </div>
-// </div>
+// <ul>
+// <li>1</li>
+// <li>2</li>
+// <li>3</li>
+// </ul>
// """
// )
// }
-////
-//// 'args{
-//// val things = Seq(1, 2, 3)
-//// check(
-//// tw("""
-//// @ul
-//// @things.map { x =>
-//// @li
-//// @x
-//// }
-//// """),
-//// tw("""
-//// @ul
-//// @things.map x =>
-//// @li
-//// @x
-////
-//// """),
-//// """
-//// <ul>
-//// <li>1</li>
-//// <li>2</li>
-//// <li>3</li>
-//// </ul>
-//// """
-//// )
-//// }
-// }
-////
-// 'loops {
-////
-// * - check(
-// tw("""
-// @for(x <- 0 until 3)
-// lol
-// """),
-// tw("""
-// @for(x <- 0 until 3){
-// lol
-// }
-// """),
-// "lollollol"
-// )
+ }
//
+ 'loops {
//
-// * - check(
-// tw("""
-// @p
-// @for(x <- 0 until 2)
-// @for(y <- 0 until 2)
-// lol@x@y
-// """),
-// tw( """
-// @p
-// @for(x <- 0 until 2){
-// @for(y <- 0 until 2)
-// lol@x@y
-// }
-// """),
-// tw("""
-// @p
-// @for(x <- 0 until 2)
-// @for(y <- 0 until 2){
-// lol@x@y
-// }
-// """),
-// "<p>lol00lol01lol10lol11</p>"
-// )
-// check(
-// tw("""
-// @p
-// @for(x <- 0 until 2)
-// @for(y <- 0 until 2)
-// lol@x@y
-// """),
-// "<p>lol00lol01lol10lol11</p>"
-// )
-//
-// * - check(
-// tw(
-// """
-// @for(x <- 0 until 2; y <- 0 until 2)
-// @div{@x@y}
-//
-// """),
-// """<div>00</div><div>01</div><div>10</div><div>11</div>"""
-// )
-// }
-//
-// 'ifElse{
-// 'basicExamples{
+ * - check(
+ tw("""
+ @for(x <- 0 until 3)
+ lol
+ """),
+ tw("""
+ @for(x <- 0 until 3){
+ lol
+ }
+ """),
+ "lollollol"
+ )
+
+
+ * - check(
+ tw("""
+ @p
+ @for(x <- 0 until 2)
+ @for(y <- 0 until 2)
+ lol@x@y
+ """),
+ tw( """
+ @p
+ @for(x <- 0 until 2){
+ @for(y <- 0 until 2)
+ lol@x@y
+ }
+ """),
+ tw("""
+ @p
+ @for(x <- 0 until 2)
+ @for(y <- 0 until 2){
+ lol@x@y
+ }
+ """),
+ "<p>lol00lol01lol10lol11</p>"
+ )
+ check(
+ tw("""
+ @p
+ @for(x <- 0 until 2)
+ @for(y <- 0 until 2)
+ lol@x@y
+ """),
+ "<p>lol00lol01lol10lol11</p>"
+ )
+
+ * - check(
+ tw(
+ """
+ @for(x <- 0 until 2; y <- 0 until 2)
+ @div{@x@y}
+
+ """),
+ """<div>00</div><div>01</div><div>10</div><div>11</div>"""
+ )
+ }
+
+ 'ifElse{
+ 'basicExamples{
+ * - check(
+ tw("""
+ @if(false)
+ Hello
+ @else
+ lols
+ @p
+ """),
+ "lols<p></p>"
+ )
+
+ * - check(
+ tw("""
+ @div
+ @if(true)
+ Hello
+ @else
+ lols
+ """),
+ "<div>Hello</div>"
+ )
+
+ * - check(
+ tw("""
+ @div
+ @if(true)
+ Hello
+ @else
+ lols
+ """),
+ "<div>Hello</div>"
+ )
+ * - check(
+ tw("""
+ @if(false)
+ Hello
+ @else
+ lols
+ """),
+ "lols"
+ )
+ * - check(
+ tw("""
+ @if(false)
+ Hello
+ @else
+ lols
+ @img
+ """),
+ "lols<img/>"
+ )
+ * - check(
+ tw("""
+ @p
+ @if(true)
+ Hello
+ @else
+ lols
+ """),
+ tw("""
+ @p
+ @if(true){
+ Hello
+ }else{
+ lols
+ }
+ """),
+ "<p>Hello</p>"
+ )
+ }
+// 'funkyExpressions{
// * - check(
// tw("""
-// @if(false)
-// Hello
-// @else
-// lols
// @p
-// """),
-// "lols<p></p>"
-// )
-//
-// * - check(
-// tw("""
-// @div
-// @if(true)
-// Hello
+// @if(true == false == (true.==(false)))
+// @if(true == false == (true.==(false)))
+// Hello1
+// @else
+// lols1
// @else
-// lols
+// @if(true == false == (true.==(false)))
+// Hello2
+// @else
+// lols2
// """),
-// "<div>Hello</div>"
-// )
-//
-// * - check(
-// tw("""
-// @div
-// @if(true)
-// Hello
-// @else
-// lols
-// """),
-// "<div>Hello</div>"
-// )
-// * - check(
-// tw("""
-// @if(false)
-// Hello
-// @else
-// lols
-// """),
-// "lols"
-// )
-// * - check(
-// tw("""
-// @if(false)
-// Hello
-// @else
-// lols
-// @img
-// """),
-// "lols<img/>"
+// "<p>Hello1</p>"
// )
// * - check(
// tw("""
// @p
-// @if(true)
-// Hello
+// @if(true == false != (true.==(false)))
+// @if(true == false != (true.==(false)))
+// Hello1
+// @else
+// lols1
// @else
-// lols
+// @if(true == false != (true.==(false)))
+// Hello2
+// @else
+// lols2
// """),
-// tw("""
-// @p
-// @if(true){
-// Hello
-// }else{
-// lols
-// }
-// """),
-// "<p>Hello</p>"
+// "<p>lols2</p>"
// )
// }
-//// 'funkyExpressions{
-//// * - check(
-//// tw("""
-//// @p
-//// @if(true == false == (true.==(false)))
-//// @if(true == false == (true.==(false)))
-//// Hello1
-//// @else
-//// lols1
-//// @else
-//// @if(true == false == (true.==(false)))
-//// Hello2
-//// @else
-//// lols2
-//// """),
-//// "<p>Hello1</p>"
-//// )
-//// * - check(
-//// tw("""
-//// @p
-//// @if(true == false != (true.==(false)))
-//// @if(true == false != (true.==(false)))
-//// Hello1
-//// @else
-//// lols1
-//// @else
-//// @if(true == false != (true.==(false)))
-//// Hello2
-//// @else
-//// lols2
-//// """),
-//// "<p>lols2</p>"
-//// )
-//// }
-// }
-// }
-//
-//}
+ }
+ }
+
+}